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
执行以下命令:
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