Answers:
在服务器(puppetmaster)上运行:
puppetca --generate <NAME>
然后将以下内容从服务器复制到客户端:
/var/lib/puppet/ssl/certs/<NAME>.pem
/var/lib/puppet/ssl/certs/ca.pem
/var/lib/puppet/ssl/private_keys/<NAME>.pem
如果您希望<NAME>
使用主机名以外的其他方式签名,请使用:
puppetd --fqdn=<NAME>
如果运行守护程序,则添加到/etc/puppet/puppet.conf中
[puppetd]
certname=<NAME>
puppet cert --generate <NAME>
请参见serverfault.com/a/457364/71452
如果您有主机数据库,则可以使用自动签名功能。在puppet.conf
文件的中[puppetmasterd]
,添加:
autosign = /path/to/autosign.conf
然后使用crontab生成此文件。自动签名文件只是主机首次连接到puppetmaster时要自动签名的主机的列表。我使用LDAP配置我的人偶主机,因此我的cron如下所示:
* * * * * root /usr/bin/ldapsearch -x '(objectClass=puppetClient)' cn | /bin/grep ^cn | /bin/sed 's!^cn: !!' > /etc/puppet/autosign.conf
我确信使用iClassify的人将能够编写查询来执行相同的操作。
当然,您需要对网络有一些信任。我在EC2上使用它。我的puppetmaster服务器在一个组中,该组仅允许来自其他受信任组的连接。如果您的人偶大师可以上网,我不建议您这样做。
简单的答案:自动签署新请求。这当然很危险,因为您盲目地信任连接到puppetmaster的任何系统,这是要求手动签名的目的。
[puppetmasterd]
autosign = true
您还可以指定false和用于确定要签名的密钥的文件。
请参阅Puppet Wiki上的配置参考。
另一种选择是使用Capistrano之类的工具,在其中指定puppetmaster节点并创建客户端实例节点,然后在任务中:
[puppetmasterd]
部分的标题现在应该为[master]
。有关更多信息,请参阅docs.puppetlabs.com/guides/tools.html。
在服务器(puppetmaster)上运行:
puppetca --generate <NAME>
然后将以下内容从服务器复制到客户端:
/var/lib/puppet/ssl/certs/<NAME>.pem
/var/lib/puppet/ssl/certs/ca.pem
/var/lib/puppet/ssl/private_keys/<NAME>.pem
如果您希望使用除主机名以外的名称,请使用:
puppetd --fqdn=<NAME>
如果运行守护程序,则添加到/etc/puppet/puppet.conf中
[puppetd]
certname=<NAME>