Gitlab-Runner部署全过程教程(指定版本安装、注册、卸载、后续配置等)

Gitlab-Runner部署全过程教程,还在为Gitlab-Runner部署而烦恼吗,按照我的教程来,手把手带你走完整个过程~

一、版本确认

在正式进行Gitlab-Runner部署前,请先确认您所使用的Gitlab版本:

3d732f16eab74570968e48fcc74f7267.png

如图所示,本文以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信息填入第二条指令:

62517bcf9fea40bc963fae69c6534810.png

 成功安装后,查看目前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:

162ff8e111064878a03af496179005af.png

c753debfb0d74480875e3113eb3be922.png

【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,如果您在输入注册命令时已经键入的具体的值,直接敲回车即可:

b3baa71b2caa4164b01dc4bbcff87589.png

 注册过程中需要注意如上红框两个地方,tags指的未来在Gitlab流水线.gitlab-ci.yml文件中tags属性对应的值,而executor对应所需要的执行器,一般选择shell即可。

【step3】查看注册状态

使用如下命令查看已注册的runner(s):

gitlab-runner list

在Gitlab的Runners页面上也可以看到刚刚注册好的设备:

cc57a3fbe9d44c54b16bd24a0ab8ecd1.png

显示为绿色则表示这个runner已经可以正常使用了。如果这里没有显示为绿色,可以使用一下命令重启一下runner:

gitlab-runner restart

 您可以点击红色的“Remove runner”旁边的设置按钮,在Gitlab端对runner进行基本配置,我的配置参考如下,这样的配置是可以完成正常的runner功能使用的:

88c31b1e5702404dafe56167609a8789.png

四、后续配置 

您可能会需要对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,您也可以修改为其他的值。

2deeade403104acba39ee4f0c47269b6.png

注意,如果concurrent过大,可能会产生job的警告(job日志超过字节限制):job‘s log exceeded limit of 4194304 bytes或运行速度过慢的问题。

 五、取消对某一个runner的注册或更换当前Gitlab-Runner版本

移除一个已注册的runner

使用如下命令查看已注册的runner(s):

gitlab-runner list

 找到想要移除的runner,复制这个runner的token与URL:

b1afa415e044407bbe5e70e1b8643ed8.png

 使用如下命令移除:

gitlab-runner unregister --url &URL --token &token

成功移除会显示:

a1bc2e898dc34a889f14539b208b6da9.png

 更换当前的Gitlab-Runner版本

首先停止当前Gitlab-Runner服务,然后将已安装的Gitlab-Runner卸载:

# 停止GitLab-Runner服务
sudo systemctl stop gitlab-runner
# 卸载当前GitLab-Runner版本
sudo gitlab-runner uninstall

随后的步骤参考本文第一节到第四节。

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值