我有一个 master 在我的 vps 上运行,它有一个简单的 helloworld 清单,可以在我拥有的任何 ubuntu 机器上正常工作。它可以连接、交换密钥并创建测试文件,所以我确定这不是服务器问题。
在带有 openSUSE 的虚拟机上运行的代理说:
err: Could not request certificate: SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed. This is often because the time is out of sync on the server or client
我相信它可能是一个损坏或丢失的库,因为包构建得不是很准确——例如,由于错误的锁定文件路径,它不会开箱即用。那么我如何弄清楚这里到底出了什么问题呢?
时间没问题,我查过了。
如果可能的话,我可能不用 SSL,因为那台 SUSE 机器只是用来训练的,但这是最后的机会了。
有几件事要检查。
首先,当您在代理和主节点之间运行不同的 ruby 版本时,显然存在已知的 SSL 验证问题;看这里。确保你的主人正在运行 1.9.x(我认为默认情况下 Ubuntu 11.10 不会)。
其次,SSL 验证基于主机名;您的 Puppet 代理配置为指向主机名
puppet
,Puppet Master 的证书没有作为其 CN 或 alt 名称 - 验证应该失败。更改代理的配置以指向证书中的名称之一,例如puppet.cloudcabin.org
.