Como posso migrar nossos clientes fantoches existentes para apontar para um novo servidor puppetmaster? Prefiro não ir manualmente a cada caixa do cliente e gerar um novo certificado.
Ao tentar o óbvio - rsync todos os arquivos de / etc / puppet e / var / lib / puppet para o novo servidor - obtivemos o erro de certificado
/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
Consegui contornar isso copiando os arquivos /var/lib/ssl/certs
e /var/lib/ssl/private_key
de old_hostname
para new_hostname
, o que é basicamente o que é sugerido na
migração de clientes fantoches para um novo mestre fantoche (antigo servidor mestre fantoche desaparecido, apenas usando backup)
Infelizmente, meus clientes ainda sabem que há algo errado e me dão o seguinte erro:
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
Portanto, acho que os certificados de clientes ainda sabem o nome do host ao qual estão associados e não estão satisfeitos com uma mudança.
Existe uma maneira de usar o puppet (apontando para o puppetmaster legado) para implantar novos certificados ou automatizar o processo de assinatura?
RESUMO: Duas soluções foram apresentadas: 1) ligue autosign
o mestre, ignorando completamente a certificação ou 2) defina o CNAME antigo para apontar para o novo mestre, pois os certificados estão vinculados ao nome do host do mestre. Eu escolhi o nº 2 porque o autosign parecia estar desativando a segurança (embora por um tempo limitado).
fonte
puppetca --sign --all
fará o truque para os certificados do cliente; o servidor um é o que apresenta problemas com os erros de incompatibilidade.Você pode simplesmente usar o
$ssldir
antigo mestre de marionetes e usá-lo no novo mestre de marionetes.Fora isso, deve ser possível implantar um script que:
Feio, mas desde que o módulo de migração esteja apenas no servidor antigo e verifique se não há módulo de migração apenas no novo servidor, é algo único e deve fazer a mágica ...
fonte
autosign
truque é bom, mas parece arriscado. Sem ela, essa solução realmente soluciona o problema de incompatibilidade de certificado do cliente?