¿Cómo puedo migrar a nuestros clientes de títeres existentes para señalar un nuevo servidor de puppetmaster? Prefiero no ir manualmente a cada cuadro de cliente y generar un nuevo certificado.
Al intentar lo obvio - rsync todos los archivos de / etc / puppet y / var / lib / puppet al nuevo servidor - obtuvimos el error 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
Pude evitar eso copiando los archivos /var/lib/ssl/certs
y /var/lib/ssl/private_key
de old_hostname
a new_hostname
, que es básicamente lo que se sugiere al
migrar clientes puppet a un nuevo puppet master (el antiguo servidor puppet master desapareció, solo con copia de seguridad)
Desafortunadamente, mis clientes todavía saben que hay algo mal y me dan el siguiente error:
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
Así que supongo que los certificados de cliente aún conocen el nombre de host con el que están asociados y no están contentos con un cambio.
¿Hay alguna manera de usar Puppet (señalando al Puppetmaster heredado) para implementar nuevos certificados, o de alguna manera automatizar el proceso de firma?
RESUMEN: Se presentaron dos soluciones: 1) encender autosign
el maestro, omitiendo por completo la certificación, o 2) configurar el antiguo CNAME para que apunte al nuevo maestro, ya que los certificados están vinculados al nombre de host del maestro. Elegí el n. ° 2 porque el autosign parecía que solo estaba desactivando la seguridad (aunque por un tiempo limitado).
fuente
puppetca --sign --all
hará el truco para los certificados de cliente; el servidor es el que le da problemas con los errores de discrepancia.Simplemente puede usar el
$ssldir
del antiguo puppetmaster y usarlo en el nuevo puppetmaster.Aparte de eso, debería ser posible implementar un script que:
Feo, pero siempre y cuando el módulo de migración esté solo en el servidor anterior y se asegure de que no haya ningún módulo de migración solo en el nuevo servidor, es una cosa única y debería hacer la magia ...
fuente
autosign
truco es bueno, pero parece arriesgado. Sin ella, ¿esta solución realmente soluciona el problema de falta de coincidencia del certificado del cliente?