![Puppet Master/Agent 基本设置](https://linux22.com/image/587612/Puppet%20Master%2FAgent%20%E5%9F%BA%E6%9C%AC%E8%AE%BE%E7%BD%AE.png)
我正在尝试设置一个基本的 Puppet 代理/主控用例,其中包含一个代理服务器和一个主控服务器。我分别设置了两个带有 Puppet 和 Puppet Master 的服务器。
在对两台服务器进行以下设置之后:
puppet master --no-daemonize --verbose
puppet agent --test
puppet cert --list to get the list,
puppet cert --sign <certname> to sign it.
puppet agent --test
我收到消息:
err: Could not retrieve catalog from remote server: hostname was not match with the server certificate
warning: Not using cache on failed catalog
err: Could not retrieve catalog; skipping run
err: Could not send report: hostname was not match with the server certificate
我需要做什么才能让代理人/主人能够互相交谈?
答案1
确保您的客户端可以解析“puppet”。正向和反向 DNS 条目很重要。作为快速测试,添加一个包含/etc/hosts
puppet master 的 IP 和名称的条目,然后重试。
答案2
还要检查您的解析器文件,并删除两个区域中的 ssl 目录,然后重新启动同步过程。显然,您知道 puppetca --list 命令可以检查是否需要签名证书。您也可以尝试关闭防火墙,看看是否允许连接。检查 /etc/hosts 以确保所有内容都在那里。
答案3
确保 Puppetmaster 和客户端上的时钟时间一致。
我曾遇到过客户无法获得证书的情况,因为两个系统的时间相差太大。
答案4
您是否在配置中的任何地方设置服务器名称?在Puppetmaster[master]
上的块中/etc/puppet/puppet.conf
,您应该将 ca_name 和 certname 设置为如下所示的内容:
ca_name = Puppet CA: puppetmaster.example.com
certname = puppetmaster.example.com
确保服务器的证书与此名称匹配。证书名称可以与实际机器的主机名不同。
然后,在您的[agent]
bock 中,您可以使用以下命令指定服务器:
server = puppetmaster.example.com
从客户端来说,您应该能够puppet agent --test
顺利运行,当然,前提是它puppetmaster.example.com
在 DNS 中并且可以访问。