Cluster

如何預先簽署 puppet 證書?

  • September 19, 2014

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 對網際網路開放,我不建議您這樣做。

引用自:https://serverfault.com/questions/137292