简介:gitlab-runner是一个开源项目,用于运行Pipeline作业并将结果发送回GitLab。它与GitLab CI一起使用,GitLab CI是GitLab随附的开源持续集成服务,用于协调作业。gitlab-runner是用Go编写,可以作为单个二进制文件运行,不需要语言特定的要求。

流程图梗概:

图片

gitlab-runner的三种类型:

共享Runner(Shared Runner),所有项目可以使用。

群组Runner(Group Runner),特定群组里的所有项目和子群组。

特定Runner(Specific Runner),用于独立的项目。

gitlab-runner两种状态:

locked:无法运行项目作业

paused:不会运行作业

gitlab-runner安装:支持运行在目前常用的平台上,例如:Linux/Unix、Windows、MacOS、Docker容器内、Kubernetes。此处案例为Linux - centos上安装。

下载安装:需要与gitlab版本基本一致,如:11.0.1 bf968f8a则选择11.1.0-1

# 下载
wget --content-disposition https://packages.gitlab.com/runner/gitlab-runner/packages/ol/7/gitlab-runner-11.1.0-1.x86_64.rpm/download.rpm

# 安装
rpm -ivh gitlab-runner-11.1.0-1.x86_64.rpm

gitlab项目新增:.gitlab-ci.yml,如:

stages:
  - build
  - run
  - clean

build:
  stage: build
  only:
    - master
  script:
    - docker build -t test-cicd:v1.0.0 .

run:
  stage: run
  only:
    - master
  script:
    - docker-compose down
    - docker-compose up -d


clean:
  stage: clean
  only:
    - master
  script:
    - docker image prune -f

为gitlab的项目注册Runner:注册gitlab-runner的前提是必须有一个可以使用的gitlab仓库。

1、gitlab项目 - settings - CICD - Runner - :获取URL和token

图片

2、runner 注册:centos上安装完成gitlab-runner后,执行以下指令。

gitlab-runner register

图片

# 在gitlab的组或项目中的设置-cicd-runner或获取:GitLab 地址
Please enter the gitlab-ci coordinator URL (e.g. https://gitlab.com/):
http://192.168.17.200/

# 输入 GitLab Token
Please enter the gitlab-ci token for this runner:
1Lxq_f1NRfCfeNbE5WRh

# 输入 Runner 的说明
Please enter the gitlab-ci description for this runner:
可以为空

# 设置 Tag,可以用于指定在构建规定的 tag 时触发 ci
Please enter the gitlab-ci tags for this runner (comma separated):
tag

# 这里选择 true ,可以用于代码上传后直接执行
Whether to run untagged builds [true/false]:
true

# 这里选择 false,可以直接回车,默认为 false
Whether to lock Runner to current project [true/false]:
false

# 选择 runner 执行器,选择的是 shell
Please enter the executor: virtualbox, docker+machine, parallels, shell, ssh, docker-ssh+machine, kubernetes, docker, docker-ssh:
shell

依次输入完成后:Runner registered successfully即注册成功。

此时项目内设置的CICD-Runner即会产生。

图片

修改设置:

点击项目内gitlab-runner的编辑按钮,勾选1、3、4, 2不勾选,并保存。

图片

常见问题:

安装gitlab-runner构建机时默认会将用户设置为:gitlab-runner,该设置会使编写.gitlab-ci.yml的脚本,操作带来一些权限上的问题。为了解决这些权限需要将gitlab-runner构建机上的默认用户设置为root。

1、查看gitlab-runner进程:ps aux|grep gitlab-runner 可以查看到gitlab-runner的工作目录和默认用户等一系列相关信息。

2、卸载gitlab-runner默认用户:sudo gitlab-runner uninstall

3、将用户设置为root:gitlab-runner install --working-directory /home/gitlab-runner --user root

4、重启服务:systemctl restart gitlab-runner.service

5、再次查看gitlab-runner进程:ps aux|grep gitlab-runner

图片

如图所示:–syslog --user root 即成功设置用户为root

微信公众号:玩转测试开发
欢迎关注,共同进步,谢谢!

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐