将Puppet Agent转为Puppet Server后CRL丢失,能否保留已签发CRL?
Puppet Agent转Server后保留已签发CRL的方案
明确说明:完全可以保留已签发的CRL,核心是要阻止新升级的Puppet Server干扰主CA的CRL文件,具体操作如下:
问题本质
把Agent节点改成Puppet Server后,默认会启用本地CA模块——哪怕你根本不需要它做证书签发。这个模块在同步主CA的证书数据时,会误删主CA生成的CRL文件,导致每次重启新Server后,Agent运行就找不到CRL报错。
解决步骤
关闭新Server的CA功能
编辑新Server的/etc/puppetlabs/puppet/puppet.conf,在[server]段添加:ca = false这样新Server就不会启动CA服务,自然不会乱删CRL了。
手动同步CRL并修复权限
从主服务器(puppet.aws.domain.com)把CRL文件(默认路径/etc/puppetlabs/puppet/ssl/crl.pem)复制到新Server的同一路径,然后设置正确权限:chown pe-puppet:pe-puppet /etc/puppetlabs/puppet/ssl/crl.pem chmod 644 /etc/puppetlabs/puppet/ssl/crl.pem自动同步CRL(可选)
如果主CA会定期更新CRL,可添加cron任务自动同步,省去手动操作:# 每4小时同步一次CRL 0 */4 * * * root scp puppet.aws.domain.com:/etc/puppetlabs/puppet/ssl/crl.pem /etc/puppetlabs/puppet/ssl/crl.pem && chown pe-puppet:pe-puppet /etc/puppetlabs/puppet/ssl/crl.pem
验证方法
重启新Puppet Server后,执行一次Puppet测试运行:
puppet agent -t
如果不再出现CRL丢失的错误,说明配置生效。
内容的提问来源于stack exchange,提问作者Euray K
相关产品推荐
相关产品推荐

