将人偶客户端迁移到新的人偶大师


8

如何迁移现有的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

我能够通过复制来解决/var/lib/ssl/certs,并/var/lib/ssl/private_key从文件old_hostnamenew_hostname,这基本上是什么在提出 木偶客户迁移到新的木偶大师(旧木偶大师服务器跑掉了,只有使用备份)

不幸的是,我的客户仍然知道有些不对劲,并给我以下错误:

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

因此,我猜测客户端证书仍然知道与它们关联的主机名,并且对切换不满意。

有没有办法使用puppet(指向旧版puppetmaster)来部署新证书,或者以某种方式使签名过程自动化?

简介:提出了两种解决方案:1)打开autosign主机,从而完全跳过认证,或者2)将旧的CNAME设置为指向新的主机,因为证书已绑定到主机的主机名。我之所以选择#2,是因为autosign感觉就像是在关闭安全性(尽管时间有限)。

Answers:


3

您是否希望同时保持两个人偶母带正常运行,并一次迁移一下客户端?

如果是这样,则无论如何您都无法接触每个客户端系统。无论是指向新的母版,还是添加主机文件条目,等等。如果是这种情况,那么您不妨重新启动新的主服务器并重新签名每个客户端(这比主机文件黑客来解决验证问题要好)。

如果不是这样(如果您打算关闭旧服务器并立即将所有内容都切掉),则只需将旧服务器的主机名替换为新服务器即可;如果客户端使用旧名称(证书上的名称)连接到新服务器,则该证书将被视为有效。


是的,问题在于是否可以自动重新签名每个客户。我认为您已经通过指出证书已绑定到客户端用来访问特定服务器的主机名来回答它,因此,如果我重用主机名,则可以重用证书。谢谢!
2011年

好吧,简单的方法puppetca --sign --all就可以解决客户证书的问题。服务器之一是给您问题的不匹配错误。
Shane Madden

3

您可以简单地使用$ssldir旧的puppetmaster中的,而在新的puppetmaster中使用它。

除此之外,应该可以部署将执行以下操作的脚本:

  • (与客户端脚本无关:可能会在新的人偶服务器上激活自动签名)
  • 稍等一下
  • 停止p客户端
  • 清理客户端ssldir
  • 修改客户端上的puppet.conf以指向新服务器
  • 创建一个锁定文件以确保它不会导致无限的重新配置循环
  • 再次开始玩偶

丑陋但只要do迁移模块仅在旧服务器上并且确保没有迁移模块仅在新服务器上就可以了,这是一件容易的事,应该魔术一下...


嗨:autosigntrick俩是个好办法,但似乎有风险。没有它,此解决方案是否真正解决了客户端证书不匹配的问题?
2011年

确实如此,自动签名只是懒惰的方式,不必与puppetmaster上的新客户打交道。概念是相同的,不同之处在于,除非已签名,否则迁移到新主服务器的客户端将不会做任何工作
Martin M.
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.