You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用GitLab Runner部署Rancher时无法克隆仓库问题求助

问题根因梳理
  • openssl诊断命令存在拼写错误:你实际要访问的GitLab域名是git.myservice.demo.com,但执行的openssl命令里写的是git.myserives.demo.com(多了字母r),拼写错误直接导致连接超时报错,需要先修正拼写再重新做网络诊断。
  • 流水线核心报错是自签SSL证书不被信任:你的GitLab实例用的是私有CA签发的SSL证书,CI Job运行的terraform官方容器内没有内置该私有CA根证书,所以Git克隆阶段证书验证失败。
  • 凭证配置代码时机错误:GitLab CI默认会在执行你定义的.gitlab-ci.yml脚本之前,先执行克隆代码的前置步骤,你写的Git凭证配置属于脚本执行阶段,根本没机会生效,也不需要这两行配置,CI_JOB_TOKEN默认会被GitLab Runner自动注入用于克隆代码。
修复步骤

1. 解决SSL证书信任问题

有两个可选方案,按需选择即可:

方案A:临时跳过SSL证书验证(仅调试用,不推荐生产环境)

在.gitlab-ci.yml文件顶部添加全局变量,该变量会在CI克隆代码的前置阶段直接生效:

variables:
  GIT_SSL_NO_VERIFY: "true"

方案B:配置Docker执行器信任私有CA证书(生产环境推荐)

在运行GitLab Runner的Linux宿主机上操作:

  • 首先创建证书存储目录(如果不存在):mkdir -p /etc/gitlab-runner/certs
  • 将GitLab实例的SSL根证书保存到路径/etc/gitlab-runner/certs/git.myservice.demo.com.crt
  • 重启GitLab Runner服务生效:gitlab-runner restart
    配置完成后,Runner启动任务容器时会自动将证书注入到容器内,所有Job都会信任该私有CA证书,无需单独修改每个CI配置。

2. 验证网络连通性

执行修正后的openssl命令确认网络可达:

openssl s_client -connect git.myservice.demo.com:443

如果还是报连接超时,需要检查Runner宿主机的防火墙规则、代理配置,确认443端口的出站访问权限正常,你CI中配置了HTTP_PROXY变量,也需要确认代理服务可以正常访问GitLab域名。

3. 清理无效配置

删除你之前添加的两行Git凭证相关配置,GitLab Runner会自动处理CI_JOB_TOKEN的克隆权限,手动配置凭证存储反而可能带来权限泄露风险。

内容的提问来源于stack exchange,提问作者Satyam Pandey

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 03:09:03