mri*_*her 8 puppet ssl-certificate
如何迁移我们现有的 puppet 客户端以指向新的 puppetmaster 服务器?我宁愿不手动转到每个客户端框并生成新证书。
当尝试显而易见的 - 将 /etc/puppet 和 /var/lib/puppet 中的所有文件同步到新服务器时 - 我们收到证书错误
/etc/init.d/puppetmaster start
* Starting puppet master
Could not run: Retrieved certificate does not match private key; please remove certificate from server and regenerate it with the current key
Run Code Online (Sandbox Code Playgroud)
我能够通过将/var/lib/ssl/certs和/var/lib/ssl/private_key文件从old_hostnameto复制来解决这个问题new_hostname,这基本上是将puppet 客户端迁移到新 puppet master 时的建议
(旧 puppet master 服务器已消失,仅使用备份)
不幸的是,我的客户仍然知道有问题,并给我以下错误:
sudo puppetd --test --server newservername.example.net --noop
info: Retrieving plugin
err: /File[/var/lib/puppet/lib]: Failed to generate additional resources using 'eval_generate': hostname was not match with the server certificate
err: /File[/var/lib/puppet/lib]: Could not evaluate: hostname was not match with the server certificate Could not retrieve file metadata for puppet://newservername.example.net/plugins: hostname was not match with the server certificate
err: Could not retrieve catalog from remote server: hostname was not match with the server certificate
warning: Not using cache on failed catalog
err: Could not retrieve catalog; skipping run
Run Code Online (Sandbox Code Playgroud)
所以我猜客户端证书仍然知道它们关联的主机名,并且对切换不满意。
有没有办法使用 puppet(指向遗留 puppetmaster)来部署新证书,或者以某种方式自动执行签名过程?
总结:提出了两种解决方案:1) 打开autosign主服务器,从而完全跳过认证,或者 2) 将旧的 CNAME 设置为指向新的主服务器,因为证书绑定到主服务器的主机名。我选择 #2 是因为自动签名感觉就像是关闭了安全性(尽管时间有限)。
您是否希望让两个 puppet master 都保持正常运行一段时间,并一次迁移一点客户端?
如果是这样,无论如何,您都必须接触每个客户端系统;无论是指向新的主机,还是添加主机文件条目,等等。如果是这种情况,那么您不妨重新启动新的主服务器并重新签署每个客户端(这比解决验证问题的主机文件破解更好)。
如果没有(如果您打算拆除旧服务器并立即切断所有内容),则只需将旧服务器的主机名替换为新服务器即可;如果客户端使用旧名称(证书上的名称)连接到新服务器,则证书将被识别为有效。
| 归档时间: |
|
| 查看次数: |
5918 次 |
| 最近记录: |