人偶主机名问题


10

我在网上搜索,发现其他人在其他列表/板上也遇到此问题。当我在主服务器上签署证书后第二次运行sudo puppetd ​​--waitforcert 60 --test时,出现此错误-

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

我不确定我了解什么问题或如何解决。这就是为什么我问。

我正在局域网中的两台服务器上设置人偶。puppetmaster名为“ puppet”,另一台服务器名为“ puppetclient”。我将puppet放在puppetclient的/ etc / hosts中。

运行hostname -f将在相应服务器上显示puppet和pupperclient。我不确定还有什么尝试。有人有见识吗?

Answers:


9

听起来主机被命名为“ puppet”以外的名称时,便创建了puppetmaster证书。重新创建证书,您应该会很好。

证书中存储的名称必须与您配置的客户端连接(完全)相匹配。例如,如果您将客户端配置为连接到“ puppet.domain.com”,则如果证书名为“ puppet”,则会收到错误消息,反之亦然。


几个小时前,我发生了这种情况。需要完全限定的域名。
皮特·泰玛

在客户端附加.local可以达到目的。即使主机名-f没有显示它。谢谢!

1
也许有更好的方法,但是对我来说,我是通过rm -rf /var/lib/puppet/ssl重新生成CA证书然后重新启动puppetmaster的
Peter Sankauskas 2011年

6

如果要为puppetmaster使用DNS CNAME,可以使用以下命令启动puppetmaster:

puppetmaster --certname cname.domain.org

这将使puppetmaster cname.domain.org代替默认的完全限定域名。


2

--certname cname.domain.org标志选项似乎已经为我做的伎俩(亚马逊EC2)


1

您可以询问facter(facter fqdn)主机名是什么,并查看其是否与您期望的一致。另外,请查看(默认情况下)/ var / lib / puppet / ssl /,并查看证书的外观(如果它们没有正确的主机名)。由于puppet通过HTTPS完成所有通信,因此对解析和主机命名非常敏感。


1

在指定的客户端和服务器上安装Puppet之前,请检查/etc/resolv.conf文件,并验证“搜索”行上的第一个域条目是否是希望Puppet在其下运行的域。例如:

搜索my.puppetdomain.com my.public.domain.com

名称服务器192.168.1.1名称服务器xxx.xxx.1.1

在Puppet安装阶段,Puppet服务器将基于/etc/resolv.conf中的第一个搜索条目生成其证书。我发现这很困难。如果在任何人偶节点上看到与证书相关的错误,请执行以下步骤:

1)编辑/etc/resolv.conf并验证“搜索”行中列出的第一个域是否反映了您希望Puppet在其中运行的域。

2)卸载puppet(保持/ etc / puppet目录不变)。

3)rm -rf / var / lib / p

4)重新安装Puppet(这将生成一个新的/ var / lib / puppet目录)。

5)如果在Puppet服务器上执行此操作,请运行/ usr / sbin / puppetmasterd --mkusers(或者,运行/ usr / local / sbin / puppetmasterd --mkusers)。这将在/ var / lib / puppet中生成所有必需的文件,包括使用正确域名的新内部证书。

6)如果在Puppet客户端上执行此操作,请在启用--waitforcert标志的情况下以详细模式启动Puppet: puppetd ​​-server .puppetdomain.com --waitforcert 60 --test 此步骤会将证书请求发送到Puppet服务器。

7)在Puppet服务器上,列出等待的证书:

puppetca-列表

您应该看到发出请求的Puppet客户端的主机名:

puppetclient1.puppetdomain.com

8)在Puppet服务器上,签署刚刚列出的Puppet客户端的证书:

puppetca-签名puppetclient1.puppetdomain.com

这样就完成了。

嗯...


0

puppet和puppetclient都在DNS中解析吗?如果不是,则可以编辑/ etc / hosts文件以映射IP和主机名。IIRC,您只需要在客户端上执行此操作。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.