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
原文地址:https://www.cnblogs.com/dalianpai/p/14722813.html