• Gitlab Runner安装和简单使用


    Gitlab Runner安装和简单使用

    1. 安装和配置

    • GitLab-CI

      GitLab-CI就是一套配合GitLab使用的持续集成系统(当然,还有其它的持续集成系统,同样可以配合GitLab使用,比如Jenkins)。而且GitLab8.0以后的版本是默认集成了GitLab-CI并且默认启用的。

    • GitLab-Runner

      GitLab-Runner是配合GitLab-CI进行使用的。一般地,GitLab里面的每一个工程都会定义一个属于这个工程的软件集成脚本,用来自动化地完成一些软件集成工作。当这个工程的仓库代码发生变动时,比如有人push了代码,GitLab就会将这个变动通知GitLab-CI。这时GitLab-CI会找出与这个工程相关联的Runner,并通知这些Runner把代码更新到本地并执行预定义好的执行脚本。
       所以,GitLab-Runner就是一个用来执行软件集成脚本的东西。你可以想象一下:Runner就像一个个的工人,而GitLab-CI就是这些工人的一个管理中心,所有工人都要在GitLab-CI里面登记注册,并且表明自己是为哪个工程服务的。当相应的工程发生变化时,GitLab-CI就会通知相应的工人执行软件集成脚本。如下图所示:

      image-20210430165156706
    • Runner类型

      GitLab-Runner可以分类两种类型:Shared Runner(共享型)和Specific Runner(指定型)。
        Shared Runner:这种Runner是所有工程都能够用的。只有系统管理员能够创建Shared Runner。
        Specific Runner:这种Runner只能为指定的工程服务。拥有该工程访问权限的人都能够为该工程创建Shared Runner。

    • CentOs中GitLab-Runner的安装与使用

    [root@middleware ~]# curl -L https://packages.gitlab.com/install/repositories/runner/gitlab-ci-multi-runner/script.rpm.sh | sudo bash
      % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                     Dload  Upload   Total   Spent    Left  Speed
    100  7012  100  7012    0     0   4636      0  0:00:01  0:00:01 --:--:--  4640
    Detected operating system as centos/7.
    Checking for curl...
    Detected curl...
    Downloading repository file: https://packages.gitlab.com/install/repositories/runner/gitlab-ci-multi-runner/config_file.repo?os=centos&dist=7&source=script
    done.
    Installing pygpgme to verify GPG signatures...
    已加载插件:fastestmirror
    Determining fastest mirrors
     * base: mirrors.163.com
     * extras: ftp.sjtu.edu.cn
     * updates: ftp.sjtu.edu.cn
    base                                                                                                                                                                       | 3.6 kB  00:00:00
    docker-ce-stable                                                                                                                                                           | 3.5 kB  00:00:00
    extras                                                                                                                                                                     | 2.9 kB  00:00:00
    runner_gitlab-ci-multi-runner-source/signature                                                                                                                             |  862 B  00:00:00
    从 https://packages.gitlab.com/runner/gitlab-ci-multi-runner/gpgkey 检索密钥
    导入 GPG key 0x51312F3F:
     用户ID     : "GitLab B.V. (package repository signing key) <packages@gitlab.com>"
     指纹       : f640 3f65 44a3 8863 daa0 b6e0 3f01 618a 5131 2f3f
     来自       : https://packages.gitlab.com/runner/gitlab-ci-multi-runner/gpgkey
    runner_gitlab-ci-multi-runner-source/signature                                                                                                                             |  951 B  00:00:00 !!!
    updates                                                                                                                                                                    | 2.9 kB  00:00:00
    (1/3): extras/7/x86_64/primary_db                                                                                                                                          | 236 kB  00:00:00
    (2/3): docker-ce-stable/x86_64/primary_db                                                                                                                                  |  60 kB  00:00:00
    (3/3): updates/7/x86_64/primary_db                                                                                                                                         | 8.0 MB  00:00:01
    runner_gitlab-ci-multi-runner-source/primary                                                                                                                               |  175 B  00:00:02
    软件包 pygpgme-0.3-9.el7.x86_64 已安装并且是最新版本
    无须任何处理
    Installing yum-utils...
    已加载插件:fastestmirror
    Loading mirror speeds from cached hostfile
     * base: mirrors.163.com
     * extras: ftp.sjtu.edu.cn
     * updates: ftp.sjtu.edu.cn
    软件包 yum-utils-1.1.31-54.el7_8.noarch 已安装并且是最新版本
    无须任何处理
    Generating yum cache for runner_gitlab-ci-multi-runner...
    导入 GPG key 0x51312F3F:
     用户ID     : "GitLab B.V. (package repository signing key) <packages@gitlab.com>"
     指纹       : f640 3f65 44a3 8863 daa0 b6e0 3f01 618a 5131 2f3f
     来自       : https://packages.gitlab.com/runner/gitlab-ci-multi-runner/gpgkey
    https://packages.gitlab.com/runner/gitlab-ci-multi-runner/el/7/x86_64/repodata/42a81582ab8f41cfc311ccaae009dd552d2e372e-primary.xml.gz: [Errno 12] Timeout on https://d20rj4el6vkp4c.cloudfront.net/8/10/el/7/x86_64/repodata/42a81582ab8f41cfc311ccaae009dd552d2e372e-primary.xml.gz?t=1619768494_ee846eb88bd7cd72a2983cae76f24034b201ca4b: (28, 'Operation timed out after 30790 milliseconds with 0 out of 0 bytes received')
    正在尝试其它镜像。
    Generating yum cache for runner_gitlab-ci-multi-runner-source...
    
    The repository is setup! You can now install packages.
    [root@middleware ~]#   yum install gitlab-ci-multi-runner
    已加载插件:fastestmirror
    Loading mirror speeds from cached hostfile
     * base: mirrors.163.com
     * extras: ftp.sjtu.edu.cn
     * updates: ftp.sjtu.edu.cn
    正在解决依赖关系
    --> 正在检查事务
    ---> 软件包 gitlab-ci-multi-runner.x86_64.0.9.5.1-1 将被 安装
    --> 解决依赖关系完成
    
    依赖关系解决
    
    ==================================================================================================================================================================================================
     Package                                             架构                                版本                                    源                                                          大小
    ==================================================================================================================================================================================================
    正在安装:
     gitlab-ci-multi-runner                              x86_64                              9.5.1-1                                 runner_gitlab-ci-multi-runner                               24 M
    
    事务概要
    ==================================================================================================================================================================================================
    安装  1 软件包
    
    总下载量:24 M
    安装大小:46 M
    Is this ok [y/d/N]: y
    Downloading packages:
    gitlab-ci-multi-runner-9.5.1-1.x86_64.rpm                                                                                                                                  |  24 MB  00:00:08
    Running transaction check
    Running transaction test
    Transaction test succeeded
    Running transaction
      正在安装    : gitlab-ci-multi-runner-9.5.1-1.x86_64                                                                                                                                         1/1
    GitLab Runner: creating gitlab-runner...
      验证中      : gitlab-ci-multi-runner-9.5.1-1.x86_64                                                                                                                                         1/1
    
    已安装:
      gitlab-ci-multi-runner.x86_64 0:9.5.1-1
    
    完毕!
    [root@middleware ~]# gitlab-ci-multi-runner register
    Running in system-mode.
    
    Please enter the gitlab-ci coordinator URL (e.g. https://gitlab.com/):
    http://192.168.1.106:82/
    Please enter the gitlab-ci token for this runner:
    CdW2YBWzzDZseoybq89Y
    Please enter the gitlab-ci description for this runner:
    [middleware]: dev
    Please enter the gitlab-ci tags for this runner (comma separated):
    dev
    Whether to run untagged builds [true/false]:
    [false]: false
    Whether to lock Runner to current project [true/false]:
    [false]: true
    Registering runner... succeeded                     runner=CdW2YBWz
    Please enter the executor: docker, shell, ssh, kubernetes, docker-ssh, parallels, virtualbox, docker+machine, docker-ssh+machine:
    shell
    Runner registered successfully. Feel free to start it, but if it's running already the config should be automatically reloaded!
    [root@middleware ~]# gitlab-runner list
    Listing configured runners                          ConfigFile=/etc/gitlab-runner/config.toml
    dev                                                 Executor=shell Token=9RWCR_KAQs7wZAPA7uyp URL=http://192.168.1.106:82/
    [root@middleware ~]# gitlab-runner list
    Listing configured runners                          ConfigFile=/etc/gitlab-runner/config.toml
    dev                                                 Executor=shell Token=9RWCR_KAQs7wZAPA7uyp URL=http://192.168.1.106:82/
    [root@middleware ~]#
    
    

    其中有一个步骤要输入项目的token。

    image-20210430165546383

    配置完成后,runners里面会出现刚才配置的选项:

    image-20210430171420257

    2. 使用

    项目根目录添加文件:.gitlab-ci.yml

    内容如下:

    stages:
      - dev
    dev-job:
      stage: dev
      tags:
        - dev
      only:
        - master
      script:
        - echo 'hello runner'
    

    提交后,会自动触发部署脚本

    image-20210430171621053

    部署日志如下:

    image-20210430171708677
  • 相关阅读:
    C#关键字operator
    .NET中各种相等
    Delphi开发能力自我评测
    Delphi7程序调用C#写的DLL解决办法
    两种类的声明方法
    delphi中 formclose的事件 action:=cafree form:=nil分别是什么意思?
    Delphi的对象注销方法Destroy和free的区别
    Delphi过程函数传递参数的几种方式
    Delphi语句、过程函数
    Delphi用Sender参数实现代码重用
  • 原文地址:https://www.cnblogs.com/dalianpai/p/14722813.html
Copyright © 2020-2023  润新知