Puppet教程:配置Puppet代理

时间:2020-03-21 11:46:39  来源:igfitidea点击:

现在,我们将配置我们的Puppet代理以从我们的Puppet主服务器(theitroad1)获取配置(尽管目前尚无任何配置要应用)。
我们已经在机器theitroad1上启动了puppet master。

我们的主服务器正在监听端口8140上的连接。

我建议的第一步是编辑edit代理服务器(在本例中为theitroad2)的/etc/hosts文件,并添加p主服务器的ip和主机名(如果我们为主服务器配置了DNS条目,则其很好)。

我相信我们已经在代理服务器上安装了puppet&facter软件包,如“安装puppet代理和主服务器”一文中所示。

现在,让我们第一次将我们的Puppet代理连接到Puppet主服务器。
看看会发生什么。

[root@theitroad2 ~]# puppet agent --server theitroad1.theitroad.com --no-daemonize --verbose
info: Creating a new SSL key for theitroad2.theitroad.com
warning: peer certificate won't be verified in this SSL session
info: Caching certificate for ca
warning: peer certificate won't be verified in this SSL session
warning: peer certificate won't be verified in this SSL session
info: Creating a new SSL certificate request for theitroad2.theitroad.com
info: Certificate Request fingerprint (md5): 59:7A:AE:2C:7B:15:DA:E5:A8:14:7D:FF:1F:5B:7A:66
warning: peer certificate won't be verified in this SSL session
warning: peer certificate won't be verified in this SSL session
warning: peer certificate won't be verified in this SSL session
warning: peer certificate won't be verified in this SSL session
notice: Did not receive certificate

如以上示例所示,我们可以看到,为该代理计算机创建了一个SSL密钥,并且正在等待相应的证书被Puppet主服务器签名。

这里要注意的一个重要事实是上述命令结果中显示的一条通知,上面写着“注意:未收到证书”。

上面命令中的--server指定Puppet主服务器主机名

--no-daemonize告诉p代理不要作为守护程序运行,并且还将消息输出到屏幕。
如果运行不带此选项的Puppet代理,那么我们将不会在屏幕上看到消息。

注意:如果未指定选项--server,则Puppet代理将查找名为“Puppet”的主机。
这是将Puppet主主机名保留为Puppet的主要原因。

仅当代理程序第一次连接到服务器时,才进行ssl证书签名。

通知消息(注意:未收到证书)将一直显示在屏幕上,直到证书申请由Puppet主机签名为止。

如何从puppet Master签署SSL证书?

现在,当客户端节点(theitroad2)正在等待对其证书进行签名时,放手对来自theitroad1(我们的Puppet主服务器)的证书请求进行签名

在Puppet主机上,运行以下命令以显示证书签名请求。

[root@theitroad1 ~]# puppetca --list
  theitroad2.theitroad.com (59:7A:AE:2C:7B:15:DA:E5:A8:14:7D:FF:1F:5B:7A:66)
[root@theitroad1 ~]#

#puppetca --list命令将向我们显示正在等待签名的代理证书请求。

#puppet cert list命令也会向我们显示相同的内容

现在,通过以下方法对证书进行签名。

[root@theitroad1 ~]# puppetca --sign theitroad2.theitroad.com
notice: Signed certificate request for theitroad2.theitroad.com
notice: Removing file Puppet::SSL::CertificateRequest theitroad2.theitroad.com at '/var/lib/puppet/ssl/ca/requests/theitroad2.theitroad.com.pem'

现在,从上面的输出中,我们可以清楚地看到Puppet主服务器对证书进行了签名,并且还删除了旧的证书签名请求。

现在,一旦从主服务器对证书进行了签名,我们将在Puppet代理的屏幕上收到以下消息(因为我们在我们的代理上运行了带有--no-daemonize选项的puppet agent命令)。

notice: Did not receive certificate
warning: peer certificate won't be verified in this SSL session
notice: Did not receive certificate

warning: peer certificate won't be verified in this SSL session
info: Caching certificate for theitroad2.theitroad.com
notice: Starting Puppet client version 2.7.9
info: Caching certificate_revocation_list for ca
info: Caching catalog for theitroad2.theitroad.com
info: Applying configuration version '1355395673'
info: Creating state file /var/lib/puppet/state/state.yaml
notice: Finished catalog run in 0.14 seconds

现在,该消息是什么意思?

这意味着我们的Puppet代理获得了签名证书,并且该证书已被缓存。
代理还告诉我们,它基于主服务器给出的目录应用了配置版本号“ 1355395673”。

从现在开始,我们可以在需要时重新启动和停止我们的Puppet代理。

注意:使所有客户端节点和and服务器与一个单个ntp源保持同步。
因为ssl连接在很大程度上依赖于同步时间。

我们在--no-daemonize --verbose中运行了#puppet agent --server theitroad1.theitroad.com命令,仅用于在屏幕上显示输出,通常情况下,我们可以在puppet.conf中添加Puppet服务器地址。
代理计算机的文件。

因此,在我们的代理上,我们将在[main]部分中添加服务器地址,如下所示。

server = theitroad1.theitroad.com

在puppet.conf文件中添加此服务器选项后,只需重新启动puppet代理即可将其作为守护程序启动。
它将定期从主服务器获取数据。

我们可以使用以下命令启动/重新启动Puppet代理。

/etc/init.d/puppet start

或者

puppet agent