Cluster
如何預先簽署 puppet 證書?
Puppet需要被管理的客戶端 (puppet) 和伺服器 (puppetmaster) 之間的證書。您可以在客戶端手動執行,然後在伺服器上簽署證書,但是如何為集群/雲機器自動執行此過程?
在伺服器(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.conf
文件中,在 中[puppetmasterd]
添加:autosign = /path/to/autosign.conf
然後使用 crontab 生成此文件。自動簽名文件只是第一次連接到 puppetmaster 時要自動簽名的主機列表。我使用 LDAP 來配置我的 puppet 主機,所以我的 cron 看起來像:
* * * * * root /usr/bin/ldapsearch -x '(objectClass=puppetClient)' cn | /bin/grep ^cn | /bin/sed 's!^cn: !!' > /etc/puppet/autosign.conf
我確信使用 iClassify 的人能夠編寫查詢來做同樣的事情。
當然,您需要對網路有一定的信任。我在 EC2 上使用它。我的 puppetmaster 伺服器所在的組只允許來自其他受信任組的連接。如果您的 puppetmaster 對網際網路開放,我不建議您這樣做。