由于技术层面上的政治原因,裸词puppet
无法解析我们基础设施部分中的正确傀儡大师。这些区域有自己的独立傀儡大师和 CA。今天我发现……我们在某个地方做错了。
在以下区域之一的代理计算机上运行此命令:
puppet certificate_revocation_list find crl --terminus rest
给我一个类似于这个的错误:
Error: Could not call 'find' on 'certificate_revocation_list': SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed: [unable to get certificate CRL for /CN=puppetmaster-wrong.example.com]
当我尝试运行 Puppet 代理时,我得到了一个非常相似的代理:
Error: Could not retrieve catalog from remote server: SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed: [unable to get certificate CRL for /CN=puppetmaster-right.example.com]
在对此进行故障排除的过程中,我发现了一个我不知道的命令......
puppet config print ca_server
返回 bareword puppet
。这是咒骂发生的时间,因为puppet
是 puppetmaster-wrong.example.com 的 CNAME。我了解到我应该一直将它放在ca_server = puppetmaster-right.example.com
我们的 puppet.conf 文件中,但从来不知道我必须将它放在其中。
这是我设置的第二个这样的环境,但它已经严重损坏了。
第一个设置相同,似乎可以工作。我不知道为什么。它距离 puppetmaster-wrong 也大约有 300ms,所以这可能是部分原因。
这是一个“彻底解决,这次做对”的情况(ca_server 从一开始就设置)还是我可以自己解决的问题?
答案1
如果你的代理仍然能够正确地签入主服务器,并且两个主服务器之间没有交叉,那么只需设置
[main]
ca_server = puppet-right.example.com
在 /etc/puppet/puppet.conf 中使用 puppet。
我已经在我的一个代理上测试过它,它似乎运行良好。我可能遗漏了一些东西,但我认为这不是什么大问题。