无法在本地网络服务器上注册 git runner
Posted
技术标签:
【中文标题】无法在本地网络服务器上注册 git runner【英文标题】:Unable to register git runner on local network server 【发布时间】:2019-12-28 13:48:37 【问题描述】:我正在尝试在我公司的本地网络服务器上注册一个 git 运行器,gitlab 使用自签名证书可以正常工作,但是当尝试注册一个这样的 git 运行器时
sudo gitlab-runner register --tls-ca-file=/home/gitlab-runner/certs/git.crt
然后粘贴 git URL
Please enter the gitlab-ci coordinator URL (e.g. https://gitlab.com/)
https://git.mycompany/
然后是令牌:
Please enter the gitlab-ci token for this runner:
TOKEN
然后是描述和标签,然后我得到这个错误:
ERROR: Registering runner... failed
runner=TOKEN status=couldn't execute POST against https://git.mycompany/api/v4/runners:
Post https://git.mycompany/api/v4/runners:
dial tcp: lookup git.mycompany on 127.0.0.53:53:
no such host
PANIC: Failed to register this runner. Perhaps you are having network problems
我没有使用 docker,只是正常设置,请任何帮助,提前非常感谢
更新:
我将 DNS 服务器的名称服务器添加到 /etc/resolv.conf,最后一个错误消失了,但我有新错误:
x509: certificate has expired or is not yet valid
即使我用 .crt 将跑步者注册为documentation 和
sudo gitlab-runner register --tls-ca-file /path/to/some-host-gitlab.com.crt
这是自签名证书
更新
有效期为 2019 年 6 月 5 日至 2019 年 7 月 5 日的证书是否是自签名证书重要吗?
【问题讨论】:
lookup git.mycompany on 127.0.0.53:53
- 看起来您正在运行 dnsmasq
或其他一些本地解析器,并且您的系统已配置为将其用作名称服务器。这与 gitlab runner 无关。您需要修复本地 DNS 配置。
【参考方案1】:
关于 DNS 问题,您必须更改 /etc/resolv.conf
中的 DNS 服务器并将您的 nameserver
设置为您的 DNS。
对于证书,Gitlab 运行程序默认检查系统证书存储并根据系统中存储的 CA 验证 Gitlab 服务器。要将您的证书添加到系统中,您应该将您的受信任证书添加到/usr/local/share/ca-certificates/
并执行sudo update-ca-certificates
。也可以在注册跑步者时将证书设置为参数--tls-ca-file
。
我建议创建一个具有更多验证天数的新证书。 (不要忘记在 apache2 或 ngix 的 gitlab 配置中更改证书路径。
【讨论】:
【参考方案2】:看起来像是名称解析的问题。能否请您验证 dns 服务器的可达性?
从日志中,我可以看到它正在尝试从主机本身解析
dial tcp: **lookup git.mycompany on **127.0.0.53:53:**** 没有这样的主机
【讨论】:
嗨 @jobina 我可以通过 git.mycompany 打开 git 并 ping 您检查过这些文档吗? docs.gitlab.com/runner/configuration/tls-self-signed.html 和 gitlab.com/gitlab-org/gitlab-runner/blob/master/docs/… 是的,但是你想让我看看他们的具体内容吗? 请将 CA 也添加到服务器信任库。 openssl x509 -in /usr/local/share/ca-certificates/ca.pem -inform PEM -out /usr/local/share/ca-certificates/ca.crt and update-ca-certificates ***.com/questions/44458410/…【参考方案3】:回答您关于证书的最后编辑: 跑步者将验证您的自签名证书,以确保连接安全。在您的证书中包含有效日期是第一步,但跑步者仍将拒绝验证自签名证书。为此,我建议您阅读问题讨论:https://gitlab.com/gitlab-org/gitlab-runner/issues/1754
您可以获取自签名证书,将其放入 PEM 文件中,然后按照https://gitlab.com/gitlab-org/gitlab-ci-multi-runner/blob/master/docs/configuration/tls-self-signed.md 将其提供给 GitLab Runner
还有一个 tls-skip-verify 选项:https://gitlab.com/gitlab-org/gitlab-ci-multi-runner/blob/master/docs/configuration/advanced-configuration.md
【讨论】:
嗨 @William 我没有使用 docker only shell,它们对于非 docker 跑步者来说不是 tls-skip-verify,我已经尝试添加 PEM 文件并将其提供给 GitLab Runner跨度>以上是关于无法在本地网络服务器上注册 git runner的主要内容,如果未能解决你的问题,请参考以下文章