简介: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
微信公众号:玩转测试开发
欢迎关注,共同进步,谢谢!