puppet 主机名问题

puppet 主机名问题

我在网上搜索了一下,发现其他列表/论坛上也有人遇到过这个问题。在主服务器上签署证书后,第二次运行 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

我不确定我是否理解了问题所在或如何解决它。所以我问了这个问题。

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

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

答案1

听起来 puppetmaster 证书是在主机名为“puppet”以外的其他名称时创建的。重新创建证书就好了。

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

答案2

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

puppetmaster --certname cname.domain.org

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

答案3

标志--certname cname.domain.org选项似乎对我起了作用(在 Amazon EC2 上)

答案4

在指定的客户端和服务器上安装 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 中的第一个搜索条目生成其证书。我发现这很困难。如果您在任何 Puppet 节点上看到与证书相关的错误,请执行以下步骤:

1) 编辑 /etc/resolv.conf 并验证“搜索”行中列出的第一个域是否反映您希望 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--测试 此步骤将向 Puppet 服务器发送证书请求。

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

puppetca——列表

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

puppetclient1.puppetdomain.com

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

puppetca --sign puppetclient1.puppetdomain.com

那么你就完成了。

呼呼....

相关内容