我怎样才能将现有的木偶客户迁移到一个新的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
我可以通过将/var/lib/ssl/certs和/var/lib/ssl/private_key文件从old_hostname复制到new_hostname ,这基本上是将puppet客户端迁移到一个新的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
所以我猜猜客户端证书仍然知道它们与之关联的主机名,并且不喜欢交换机。
有没有办法使用木偶(指向传统的木偶大师)部署新的证书,或者以某种方式自动化签名过程?
摘要:提出了两种解决scheme:1)打开主设备上的自动autosign ,从而完全跳过validation,或者2)将旧的CNAME设置为指向新的主设备,因为证书绑定到主设备的主机名。 我select了#2,因为自动签名感觉就像是closures安全(尽pipe时间有限)。
你是否希望保持双方木偶大师一段时间的运作,并且一次一小部分地迁移客户?
如果是这样的话,不pipe用什么方法, 无论是指向新的主控,还是添加主机文件条目等等。 如果是这样的话,那么你可能只需要启动新的主服务器并重新签名每个客户端(比主机文件hack更好地解决validation问题)。
如果不是的话(如果你打算取下旧的服务器并立刻把所有的东西都切掉),那么就把旧的服务器的主机名放在新的服务器上。 如果客户端使用旧名称(证书上的名称)连接到新服务器,则证书将被识别为有效。
你可以简单地使用老傀儡的$ssldir ,并在新的木偶大师中使用。
除此之外,应该可以部署一个脚本来:
丑,但只要迁移模块只在旧服务器上, 并确保没有迁移模块只在新的服务器上,这是一个镜头的东西,应该只是做魔术…