gitlab-runner安装与配置
1. 安装前准备工作
1.1. 配置yum源
网上大部分教程是介绍如何安装gitlab-ci-multi-runner如何安装,我也按这些教程中的一种安装了,最终发现,不能和最新的gitlab兼容,网上也很少有文章介绍gitlab-ci-multi-runner和gitlab-runner的区别, 实际上gitlab-ci-multi-runner是一个被废弃了的项目, 最新版本只到9.5.1, 而gitlab-runner已经到14.4.0了,在其gitliab仓库上已经说明 Project ‘gitlab-org/gitlab-ci-multi-runner’ was moved to ‘gitlab-org/gitlab-runner’. Please update any links and bookmarks that may still have the old path.
关于gitlab-runner与gitlab的兼容性原则,gitlab和gitlab-runner在主版本和小版本(major.minor)保持同步,具有相同主版本和小版本号的gitlab和gitlab-runner兼容性最好, 较老的runner可能可以兼容比較新的gitlab,反之亦然,但是不能完全保证.详情请参考官网关于兼容性原文
创建文件/etc/yum.repos.d/gitlab_gitlab-ee.repo,内容如下
1 | [gitlab_gitlab-ee] |
说明上面使用的是清华镜像,如果访问外网速度够快,可以使用gitlab官方镜像下载,配置方法如下
1 | curl -L https://packages.gitlab.com/install/repositories/runner/gitlab-runner/script.rpm.sh | sudo bash |
更新yum cache以便获得最新版本的gitlab-runner
1 | yum makecache fast |
查看可安装版本
1 | yum list gitlab-runner --showduplicates | sort -r |
截至目前06/Nov/2021,最新的版本是14.4.0-1
2. 安装runner
1 | sudo yum install -y gitlab-runner |
说明:
运行此命令, 背后到底做了些什么?
- 安装了gitlab-runner必要的二进制文件, 配置文件
- 创建了gitlab-runner用户
- 将gitlab-runner 注册为服务并设置为开机启动
3. 配置runner
3.1. 注册一个shared runner
注册shared runner之前要启动gitlab-runner, 如果没有启动, 可用使用这条命令启动gitlab-runner
1 | systemctl start gitlab-runner |
向GitLab-CI注册一个Runner需要两样东西:GitLab-CI的url和注册token。
其中,token是为了确定你这个Runner是所有工程都能够使用的Shared Runner还是具体某一个工程才能使用的Specific Runner。
如果要注册Shared Runner,你需要到管理界面的Runners页面里面去找注册token.
打开gitlab页面menue > admin > CICD > runner, 在Setup shared runner一节可以找到相应的url和token
注册完成之后,在页面menue > admin > runner就会多出一条Runner记录
1 | gitlab-runner register |
1 | $gitlab-runner register |
4. 测试Runner
在git库项目主目录,中添加.gitlab-ci.yml
使用以下配置创建一个最简单的pipeline
1 | stages: |
提交代码,到gitlab pipeline界面查看流水线是否创建成功.
5. 常用配置
/etc/gitlab-runner/config.toml
配置默认在 /etc/gitlab-runner/config.toml 下,配置文件更改时不需要重启服务,每隔三秒GitLab Runner 会检查配置修改,并重新加载。
配置项 | 描述 |
---|---|
concurrent | 限制可以同时运行的作业数量 |
log_level | 日志级别 |
log_format | 日志格式 |
check_interval | 检查新作业的间隔长度,默认为3秒 |
sentry_dsn | 启用Sentry错误跟踪 |
listen_address | http服务监听地址 |
6. 常用命令
6.1. 服务管理
1 |
|
7. 注销gitlab-runner
很多安装文档, 只告诉如何安装, 很少讲到如何注销和卸载.
当安装过程中遇到问题, 或使用过程中遇到问题, 可以使用大招卸载,重新安装来解决问题, 所以这里我列出了注销gitlab-runner和卸载gitlab-runner的详细说明, 以备不时之需.
1 | # 取消注册所有runner |
8. 卸载gitlab-runner
1 | !/bin/bash |
9. 关联阅读
10. 问题排查
This job does not have a trace job页面写作这个段信息
经过分析,目前我遇到的情况是由于gitlab和gitlab runner版本不兼容, gitlab 14.4.0 ,而gitlab runner或gitlab-ci-multi-runner是9.5.1.
解决办法,卸载gitlab-ci-multi-runner, 安装gitlab-runner 14.4.0保持和gitlab 版本一致.expected shallow list
1
2
3Reinitialized existing Git repository in /home/gitlab-runner/builds/zBFPsthA/0/root/xxx-project/.git/
fatal: git fetch-pack: expected shallow list
fatal: The remote end hung up unexpectedly
一开始使用的自带git版本是1.8.3.1的,就是版本太低的问题,不支持最新的API, 可用参考我的博客升级git
- Run untagged jobs
新注册的gitlab runner 默认是不pick untagged jobs 要将其打开才能pick untagged jobs
11. 参考文档
GitLab Runner的安装与使用
gitlab+gitlab-runner实现前端项目自动化构建部署
gitlab-runner常用命令
gitlab-runner安装与配置