Gitlab-Runner部署全过程教程,还在为Gitlab-Runner部署而烦恼吗,按照我的教程来,手把手带你走完整个过程~
一、版本确认
在正式进行Gitlab-Runner部署前,请先确认您所使用的Gitlab版本:

如图所示,本文以Gitlab v14.10.5版本为例。
二、安装
强烈推荐您安装与Gitlab版本一致的Gitlab-Runner版本,如:14.10.5的Gitlab就请安装14.10.0的Gitlab-Runner。如果您发现目前已安装的Gitlab-Runner版本不正确,可以先移步至本文第五节的教程。
【step1】添加官方仓库
(1)基于Deb的系统:
curl -L "https://packages.gitlab.com/install/repositories/runner/gitlab-runner/script.deb.sh" | sudo bash
(2)基于RPM的系统:
curl -L "https://packages.gitlab.com/install/repositories/runner/gitlab-runner/script.rpm.sh" | sudo bash
【step2】安装需要的版本
(1)基于Deb的系统:
apt-cache madison gitlab-runner
# $version填写您所需要安装的Gitlab-Runner版本号,如:14.10.0
sudo apt-get install gitlab-runner=$version
(2)基于RPM的系统:
yum list gitlab-runner --showduplicates | sort -r
# $version填写您所需要安装的Gitlab-Runner版本号,如:14.10.0
sudo yum install gitlab-runner-$version
输入第一条指令后,可以看到目前能够安装的Gitlab-Runner版本列表,从中选择一个作为$version信息填入第二条指令:

成功安装后,查看目前Gitlab-Runner版本并进行一次runner重启:
gitlab-runner -v
gitlab-runner restart
请注意:在 GitLab Runner 的 15.0 版本中,注册请求的格式经历了一次更新。如果 GitLab 实例版本低于 14.8,可能 Runner 无法与其通信。此外,在 GitLab 的 15.6 版本中,使用 Runner 注册令牌的功能已经被标记为弃用,并计划在 17.0 版本中完全移除,这构成了一个破坏性变更。为了应对这一变化,GitLab 正在开发一种新的 GitLab Runner 令牌体系结构,这将引入一种新的注册 Runner 的方法,并逐步淘汰旧的注册令牌机制。因此,在安装 GitLab Runner 时,非常重要的一步是确保你安装的版本与你的 GitLab 实例版本兼容,以避免出现通信问题或其他兼容性相关的障碍。在进行升级或安装时,务必检查版本要求,以确保平滑过渡到新的体系结构。
三、注册
一般来说,在Gitlab的CI/CD设置界面,选择Runnners模块,会给出installation instructions:


【step1】
如上图,只需要执行最后的register部分命令即可。可以将$URL与$REGISTRATION_TOKEN替换为实际值。
Linux系统:
sudo gitlab-runner register --url $URL --registration-token $REGISTRATION_TOKEN
请注意:specific runners、group runners、shared runners本质上都代表着一台可以运行脚本或者执行操作的机器,只是对于不同仓库的可视情况不同。它们的注册方式都一样,只是所使用的token不同。
【step2】信息注册
输入注册命令后,会再次提示输入$URL与$REGISTRATION_TOKEN,如果您在输入注册命令时已经键入的具体的值,直接敲回车即可:

注册过程中需要注意如上红框两个地方,tags指的未来在Gitlab流水线.gitlab-ci.yml文件中tags属性对应的值,而executor对应所需要的执行器,一般选择shell即可。
【step3】查看注册状态
使用如下命令查看已注册的runner(s):
gitlab-runner list
在Gitlab的Runners页面上也可以看到刚刚注册好的设备:

显示为绿色则表示这个runner已经可以正常使用了。如果这里没有显示为绿色,可以使用一下命令重启一下runner:
gitlab-runner restart
您可以点击红色的“Remove runner”旁边的设置按钮,在Gitlab端对runner进行基本配置,我的配置参考如下,这样的配置是可以完成正常的runner功能使用的:

四、后续配置
您可能会需要对runner进行一些需要的配置,比如:runner是以哪位用户的权限进行执行的、runner上任务最大并行数、runner的工作空间等等。
以root权限使用runner/修改runner的工作空间
强烈建议您以root权限使用runner,因为这样可以最高效地使所有执行操作都有权限。输入如下命令:
(1)查看Gitlab-Runner进程,可以查看到Gitlab-Runner的工作目录和默认用户等一系列相关信息。
ps aux | grep gitlab-runner
(2)卸载Gitlab-Runner默认用户
gitlab-runner uninstall
(3)将用户设置为root,同时也可以改变working-directory(工作区,从Gitlab拉取的代码会存放的目录)
gitlab-runner install --working-directory /home/gitlab-runner --user root
(4)重启Gitlab-Runner
gitlab-runner restart
(5)再次查看gitlab-runner进程
ps aux | grep gitlab-runner
注意,一些教程会提到通过修改/etc下的配置文件,例如:/etc/gitlab-runner/config.toml等来对runner的用户和工作区进行修改。我尝试过这种方式,但是并没有实际起作用。
修改runner上任务最大并行数
一般来说,我们会想要runner同一时间只进行一个任务,这里就涉及到修改runner上任务最大并行数。首先打开runner的配置文件:
sudo vim /etc/gitlab-runner/config.toml
修改第一行的concurrent配置为1,即表示runner同一时间只进行一个任务。这个值一般来说默认就是1,您也可以修改为其他的值。

注意,如果concurrent过大,可能会产生job的警告(job日志超过字节限制):job‘s log exceeded limit of 4194304 bytes或运行速度过慢的问题。
五、取消对某一个runner的注册或更换当前Gitlab-Runner版本
移除一个已注册的runner
使用如下命令查看已注册的runner(s):
gitlab-runner list
找到想要移除的runner,复制这个runner的token与URL:

使用如下命令移除:
gitlab-runner unregister --url &URL --token &token
成功移除会显示:

更换当前的Gitlab-Runner版本
首先停止当前Gitlab-Runner服务,然后将已安装的Gitlab-Runner卸载:
# 停止GitLab-Runner服务
sudo systemctl stop gitlab-runner
# 卸载当前GitLab-Runner版本
sudo gitlab-runner uninstall
随后的步骤参考本文第一节到第四节。


1万+

被折叠的 条评论
为什么被折叠?



