求助:GitLab自托管新增VirtualBox Runner未联系实例且不执行任务
解决GitLab Runner提示“Runner has never contacted this instance”问题
1. 核对注册配置准确性
- 确认注册时填写的GitLab实例URL完全正确,必须包含
http或https前缀,例如https://your-gitlab-domain.com,不能省略前缀或拼写错误。 - 重新获取并使用对应项目/组/实例的有效Runner Token完成注册,避免手动输入时出现字符遗漏或错误。
2. 排查网络连通性
- 在Runner所在VirtualBox虚拟机内,执行命令
curl <GitLab实例URL>/api/v4/runners,检查是否能正常收到响应,以此排除网络不通、防火墙拦截等问题。 - 检查GitLab实例侧的防火墙规则,确保允许Runner所在虚拟机的IP访问GitLab服务端口(默认是80/443)。
- 若GitLab使用自签名SSL证书,需将证书文件放置到Runner配置目录(通常为
/etc/gitlab-runner/certs/),命名为<GitLab域名>.crt,之后重启GitLab Runner服务。
3. 检查Runner服务状态与日志
- 执行命令
sudo gitlab-runner status确认Runner服务处于运行状态,若未运行则执行sudo gitlab-runner start启动服务。 - 查看Runner日志排查具体错误:执行
sudo gitlab-runner logs,重点关注证书验证失败、连接超时、权限不足等相关报错信息。
4. 匹配标签与执行器配置
- 检查项目的
.gitlab-ci.yml文件中,tags字段是否与Runner注册时设置的标签完全一致,标签不匹配会导致Runner无法接收任务。 - 确认Runner执行器为
virtualbox,注册时的虚拟机名称、快照等参数配置无误,可执行gitlab-runner verify验证执行器配置的有效性。
5. 重新注册Runner(终极方案)
若上述步骤均无效,先在GitLab页面的「Settings -> CI/CD -> Runners」中移除该Runner,再重新执行注册命令:
gitlab-runner register \ --url <你的GitLab实例URL> \ --registration-token <有效Runner Token> \ --executor virtualbox \ --description "VirtualBox Runner" \ --tags "virtualbox,build"
内容的提问来源于stack exchange,提问作者Poperton
相关产品推荐
相关产品推荐

