我无法成功运行autodevops管道。我经历了多个教程,指南,问题,修复程序,解决方法,但是现在我需要您的支持。
我有一个家庭kubernetes集群(两个VM)和一个使用HTTPS的GitLab服务器。我已经设置了集群,并在GitLab组级别定义了它(安装了头盔,入口,赛跑者)。为了使Runner在gitlab中注册(我最初不接受证书),我需要做一些调整。
现在,当我运行autodevops管道时,在日志中出现如下错误:
Running with gitlab-runner 11.9.0 (692ae235) on runner-gitlab-runner-5976795575-8495m cwr6YWh8 Using Kubernetes namespace: gitlab-managed-apps Using Kubernetes executor with image registry.gitlab.com/gitlab-org/cluster-integration/auto-build-image/master:stable ... Waiting for pod gitlab-managed-apps/runner-cwr6ywh8-project-33-concurrent-0q7bdk to be running, status is Pending Running on runner-cwr6ywh8-project-33-concurrent-0q7bdk via runner-gitlab-runner-5976795575-8495m... Initialized empty Git repository in /testing/helloworld/.git/ Fetching changes... Created fresh repository. fatal: unable to access 'https://gitlab-ci-token:[MASKED]@gitlab.mydomain.com/testing/helloworld.git/': SSL certificate problem: unable to get issuer certificate
我尝试了许多变通办法,例如在/home/gitlab-runner/.gitlab-runner/certs/gitlab.mydomain.com.crt
下添加域的CA证书,但仍然没有结果。
答案 0 :(得分:1)
无法验证自签名证书时会发生错误。
除了添加CA证书之外,另一种解决方法是强制git使用全局选项不执行证书的验证:
$ git config --global http.sslVerify false
答案 1 :(得分:1)
gitlab运行程序未使用gitlab-runner安装所在的主机操作系统的信任库。您收到的错误是因为GitLab运行程序无法验证GitLab服务器提供的证书。这很可能是由两件事之一引起的。 1)您的GitLab服务器正在提供一个自签名证书。 2)如果您没有使用自签名证书,则GitLab运行程序将无法验证证书,因为缺少证书链中的证书之一(根CA证书或中间CA证书)。
解决方案: 您需要向GitLab-runner提供您希望它信任的证书。您的自签名CA证书,自签名证书(针对方案1)或完整的证书链:GitLab服务器证书>中间CA证书>根CA证书。
操作方法
1)创建一个fullCertChain.crt文件,并将完整的证书链粘贴到该文件中。
2)将fullCertChain.crt复制到gitlab-runner服务器上的某个位置,例如/ etc / gitlab-runner / ca-certs
3)在gitlab-runner服务器上修改/etc/gitlab-runner/config.toml。 在[[runners]]部分中,添加以下行:
[[runners]]
tls-ca-file = "/etc/gitlab-runner/ca-certs/fullCertChain.crt"
4)重新启动gitlab-runner以获取所做的更改(我认为实际上不需要此步骤,但是我这样做是为了以防万一)
sudo gitlab-runner start
5)验证跑步者是否正确启动了备份:
sudo gitlab-runner list
您的GitLab运行程序现在应该可以重新连接到您的https://gitlabHost
答案 2 :(得分:0)
此处提供了针对此问题的解决方案列表: https://gitlab.com/gitlab-org/gitlab-runner/issues/2659
最可能但最原始的解决方案是:打开/etc/gitlab-runner/config.toml并进行如下修改:
[[runners]]
环境= [“ GIT_SSL_NO_VERIFY = true”]
然后重新启动gitlab运行程序。