1.添加repository

curl -L https://packages.gitlab.com
/install/repositories/runner/gitlab-ci-multi-runner/script.rpm.sh | sudo bash

2.安装包

yum install gitlab-runner

以上两步参考https://blog.csdn.net/weiguang1017/article/details/77720778

3.注册runner

 
sudo gitlab-runner register
执行上述命令之后,之后的流程如下:

第一处红线:输入部署完成的gitlab地址比如http://111.111.111.111:8080/

第二处红线: 输入token,token的值可以在登录gitlab之后,下图所示位置找到,先点击右上方Admin
Settings,再找到左侧列表的runners





剩下的过程按照图示完成即可

自定以一个描述:Tencent

tags这个不填直接回车

是否锁定当前项目填false

执行者填shell

 

最后看到Runner registered successfully表示注册成功。

最后可以登录gitlab进行验证,有如图所有列表说明注册成功



 

常见问题1:
Couldn't connect to Docker daemon at http+docker://localhost - is it running?
 
If it's at a non-standard location, specify the URL with the DOCKER_HOST
environment variable.
 
Got permission denied while trying to connect to the Docker daemon socket at
unix:///var/run/docker.sock: Post
类似以上这三类错误提示,都是因为执行gitlab-runner 的用户没有docker权限导致的

首先使用命令查看当前用户 whoami

可以看到该用户是gitlab-runner

参考这篇文章将该用户加入docker组:
https://blog.csdn.net/baidu_36342103/article/details/69357438
<https://blog.csdn.net/baidu_36342103/article/details/69357438>

执行以下命令:

sudo groupadd docker

sudo gpasswd -a gitlab-runner docker

sudo service docker restart(或者systemctl start docker)

newgrp - docker

执行完毕,以上问题解决

问题2:代码推送到gitlab上之后,一直是pending状态,要等很久才pick到一个runner来执行

 


这个现象一般发生在本机register了好几个runner,之前的都删除了,只留下一个,而且之前删除的哪些runner的gitlab地址和当前正在使用的不一样,比如以前是ip+端口号
现在改成了域名。

发生这个情况的原因是,我们只在gitlab管理平台删除的runner



这种删除方式并没有完全删除记录,

执行如下命令

cd /etc

cd gitlab-runner

ls

vi config.toml

查看如下图



可以看到之前删除的runner在这个配置文件里面仍有记录,

gitlab就会去逐个遍历这些runner,每次尝试因为gitlab的地址已经改变,导致长时间访问不同

一直到最后一个,才能真正开始运行。

所以,我们在管理界面删除runner的同时,还要把这个配置文件对应的runner删除。

删除之后,执行命令 gitlab-ruuner restart 重启runner

这样gitlab才能立即pick到我们制定的runner