我在网上search,我看到一些其他人有这个问题在其他名单/董事会。 当我运行sudo puppetd –waitforcert 60 – 在主服务器上签名证书后第二次testing时,
notice: Got signed certificate warning: Certificate validation failed; considering using the certname configuration option err: /File[/var/lib/puppet/lib]: Failed to generate additional resources during transaction: Certificates were not trusted: hostname was not match with the server certificate
我不知道我明白了什么问题或如何解决它。 所以这就是我问的原因。
我在局域网上的两台服务器上设置了木偶。 傀儡大师被称为“傀儡”,另一个服务器被命名为“傀儡客”。 我把木偶放到puppetclient的/ etc / hosts上。
运行主机名-f将在相应的服务器上显示木偶和pupperclient。 我不知道还有什么要尝试的。 有没有人有任何见解?
听起来傀儡大师证书是在主持人被命名为“傀儡”以外的东西时创build的。 重新创build证书,你应该很好。
存储在证书中的名称必须与您configuration客户端连接到的(准确地)相匹配。 例如,如果您将您的客户端configuration为连接到“puppet.domain.com”,那么如果证书被命名为“puppet”,则会发生错误,反之亦然。
如果您想为您的傀儡大师使用DNS CNAME,可以使用以下命令启动puppetmaster:
puppetmaster --certname cname.domain.org
这将使puppet使用cname.domain.org而不是默认的完全合格的域名。
--certname cname.domain.org标志选项似乎已经为我做了诡计(在Amazon EC2上)
你可以问facter(facter fqdn)主机名是什么,看看是否符合你的期望。 也可以看看(默认)/ var / lib / puppet / ssl /,看看证书是什么样子的,如果他们没有正确的主机名可能是你的问题。 由于木偶通过HTTPS进行通信,所以它对分辨率和主机命名非常敏感。
在指定的客户机和服务器上安装Puppet之前,请检查/etc/resolv.conf文件,并确认“search”行上的第一个域条目是您希望Puppet运行的域。 例如:
searchmy.puppetdomain.com my.public.domain.com
nameserver 192.168.1.1 nameserver xxx.xxx.1.1
在Puppet安装阶段,Puppet服务器将根据/etc/resolv.conf中的第一个search条目生成证书。 我发现这很难。 如果您在任何puppet节点上看到与证书相关的错误,请执行以下步骤:
1)编辑/etc/resolv.conf并确认“search”行中列出的第一个域反映了您希望Puppet运行的域。
2)卸载puppet(保持/ etc / puppet目录不变)。
3)rm -rf / var / lib / puppet
4)重新安装Puppet(这会生成一个新的/ var / lib / puppet目录)。
5)如果在Puppet服务器上执行此操作,请运行/ usr / sbin / puppetmasterd –mkusers (或者运行/ usr / local / sbin / puppetmasterd –mkusers )。 这将在/ var / lib / puppet中生成所有必需的文件,包括使用正确域名的新内部证书。
6)如果在Puppet客户端上执行此操作,请以详细模式启动Puppet,并启用–waitforcert标志: puppetd -server .puppetdomain.com –waitforcert 60 –test此步骤将向Puppet服务器发送证书请求。
7)在Puppet服务器上,列出等待证书:
puppetca –list
你应该看到发出请求的Puppet客户端的主机名:
puppetclient1.puppetdomain.com
8)在Puppet服务器上,签署刚刚列出的Puppet客户端的证书:
puppetca –sign puppetclient1.puppetdomain.com
那你就完成了。
HTH ….
傀儡和傀儡客户在DNS中解决吗? 如果没有,您可以编辑/ etc / hosts文件来映射IP和主机名。 IIRC,你只需要在客户端上做到这一点。