我无法成功运行 autodevops 管道。我已经经历了多个教程,指南,问题,修复,解决方法,但现在我需要您的支持。
我有一个家庭 kubernetes 集群(两个 VM)和一个使用 HTTPS 的 GitLab 服务器。我已经设置了集群并在 GitLab 组级别(头盔、入口、运行器已安装)中定义了它。我必须做一些调整才能使运行器在 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 证书,但仍然没有结果。
无法验证自签名证书时,会发生错误。
添加 CA 证书的另一种解决方法是强制 git 不使用全局选项执行证书验证:
$ git config --global http.sslVerify false
此处提供了此问题的解决方案列表: https://gitlab.com/gitlab-org/gitlab-runner/issues/2659
最可能但最粗略的解决方案是:打开/etc/gitlab-runner/config.toml 并修改如下:
[[跑步者]]
环境 = ["GIT_SSL_NO_VERIFY=真"]
然后重新启动 gitlab 运行程序。
gitlab 运行器不使用安装 gitlab 运行程序的主机操作系统的信任库。您收到的错误是因为 GitLab 运行程序无法验证您的 GitLab 服务器提供的证书。这可能是由以下两种原因之一引起的。 1) 您的 GitLab 服务器提供自签名证书。 2) 如果您没有使用自签名证书,GitLab 运行器将无法验证证书,因为证书链中的一个证书丢失(根 CA 证书或中间 CA 证书)。
溶液: 您需要向 GitLab 运行器提供您希望它信任的证书。您的自签名 CA 证书和自签名证书(适用于方案 1),或者完整的证书链:GitLab 服务器证书>中间 CA 证书>根 CA 证书。
如何执行此操作:
1) 创建一个完整的 CertChain.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