既存のPuppetクライアントを新しいPuppetmasterサーバーを指すように移行するにはどうすればよいですか?手動で各クライアントボックスに移動して、新しい証明書を生成したくない。
/ etc / puppetおよび/ var / lib / puppetからすべてのファイルを新しいサーバーにrsyncして、明白な試みをすると、証明書エラーが発生しました。
/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
。これは、基本的にパペットクライアントを新しいパペットマスターに移行する際に推奨されるものです
(古いパペットマスターサーバーはなくなり、バックアップのみを使用します)。
残念ながら、私のクライアントはまだ何かがおかしいことを知っており、次のエラーを教えてくれます。
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を指す)を使用して新しい証明書をデプロイする方法、または署名プロセスを何らかの方法で自動化する方法はありますか?
概要:2つのソリューションが提示されました:1)autosign
マスターをオンにして証明書を完全にスキップするか、2)証明書がマスターのホスト名にバインドされているため、古いCNAMEを新しいマスターを指すように設定します。自動署名は(限られた時間ではあるが)単にセキュリティをオフにするように感じられたため、私は#2を選択しました。