Puppet Master/Agent 基本设置

Puppet Master/Agent 基本设置

我正在尝试设置一个基本的 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/hostspuppet 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 中并且可以访问。

相关内容