gitlab-ci / gitlab runner遇到的问题

启动命令

gitlab-runner --debug <command>   #调试模式排查错误特别有用。
gitlab-runner <command> --help    #获取帮助信息
**gitlab-runner run       #普通用户模式  配置文件位置 ~/.gitlab-runner/config.toml**
sudo gitlab-runner run  # 超级用户模式  配置文件位置/etc/gitlab-runner/config.tom

注册命令

gitlab-runner register  #默认交互模式下使用,非交互模式添加 --non-interactive
gitlab-runner list      #此命令列出了保存在配置文件中的所有运行程序
**gitlab-runner verify    #此命令检查注册的runner是否可以连接,但不验证GitLab服务是否正在使用runne**r。 --delete 删除
gitlab-runner unregister   #该命令使用GitLab取消已注册的runner。
#使用令牌注销
gitlab-runner unregister --url http://gitlab.example.com/ --token t0k3n
#使用名称注销(同名删除第一个)
gitlab-runner unregister --name test-runner
#注销所有
gitlab-runner unregister --all-runners

服务管理

gitlab-runner install --user=gitlab-runner --working-directory=/home/gitlab-runner
# --user指定将用于执行构建的用户
#`--working-directory  指定将使用**Shell** executor 运行构建时所有数据将存储在其中的根目录
gitlab-runner uninstall #该命令停止运行并从服务中卸载GitLab Runner。
gitlab-runner start     #该命令启动GitLab Runner服务。
gitlab-runner stop      #该命令停止GitLab Runner服务。
gitlab-runner restart   #该命令将停止,然后启动GitLab Runner服务。
gitlab-runner status #此命令显示GitLab Runner服务的状态。当服务正在运行时,退出代码为零;而当服务未运行时,退出代码为非零。

1、Runner未激活问题
有时候管理员注册共享runner后,查看面板上的Runner信息,可能会发现Runner处在未激活状态。
解决方法:
运行以下命令重新启动Runner。
gitlab-runner verify
gitlab-runner restart
2、Job一直挂起,没有Runner来处理,原因:
1)首先考虑的是不是Runner没有激活
2)还可能是tags没有匹配到, Runner注册时是要填写绑定tags的,如果你在YML里面编写Job没有带上tags是不会有自定义Runner来处理。解决方法:给Job加tags
3)最后一种可能:你连续注册了多个Runner,这些Runner冲突了,或者是新注册的Runner和旧Runner使用了同一个token,这时候的解决方法如下:
先删掉本地其他旧的Runner。
sudo gitlab-runner unregister --all-runners
然后重置Token,并使用更新后的Token重新注册一个Runner。

3、注册好了的Runner的信息存放在哪儿了呢?
GitLab-CI会为这个Runner生成一个唯一的token,以后Runner就通过这个token与GitLab-CI进行通信。
那么,问题来了。注册好了的Runner的信息存放在哪儿了呢?
原来,Runner的信息是存放在一个配置文件里面的,配置文件的格式一般是.toml。这个配置文件的存放位置有以下几种情况:
在类Unix操作系统下(0.5.0之后版本)
如果是以root用户身份运行gitlab-ci-multi-runner register,那么配置文件默认是/etc/gitlab-runner/config.toml
如果是以非root用户身份运行gitlab-ci-multi-runner register,那么配置文件默认是~/.gitlab-runner/config.toml
4、其他一些思考
1)什么情况下需要注册Shared Runner?
比如,GitLab上面所有的工程都有可能需要在公司的服务器上进行编译、测试、部署等工作,这个时候注册一个Shared Runner供所有工程使用就很合适。
2)什么情况下需要注册Specific Runner?
比如,我可能需要在我个人的电脑或者服务器上自动构建我参与的某个工程,这个时候注册一个Specific Runner就很合适。
3)什么情况下需要在同一台机器上注册多个Runner?
比如,我是GitLab的普通用户,没有管理员权限,我同时参与多个项目,那我就需要为我的所有项目都注册一个Specific Runner,这个时候就需要在同一台机器上注册多个Runner。
六、界面功能总结
GitLab代码片段:使用GitLab Snippets(GitLab代码片段),您可以与其他用户一起存储并共享代码和文本。
单击“编辑”按钮以更改该文本.有两种类型的代码片段,个人代码片段和项目代码片段。

猜你喜欢

转载自blog.csdn.net/liulina603/article/details/117597956