Wie kann ich unsere vorhandenen Puppet-Clients migrieren, um auf einen neuen Puppetmaster-Server zu verweisen? Ich möchte lieber nicht manuell zu jeder Client-Box gehen und ein neues Zertifikat generieren.
Beim Versuch des Offensichtlichen - rsync alle Dateien von / etc / puppet und / var / lib / puppet auf den neuen Server - haben wir den Zertifikatfehler erhalten
/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
Ich konnte das umgehen, indem ich die /var/lib/ssl/certs
und /var/lib/ssl/private_key
-Dateien von old_hostname
nach kopierte. Dies new_hostname
wird im Grunde bei der Migration von Puppet-Clients auf einen neuen Puppet-Master empfohlen
(alter Puppet-Master-Server weg, nur mit Backup).
Leider wissen meine Kunden immer noch, dass etwas nicht stimmt, und geben mir den folgenden Fehler:
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
Ich vermute also, dass die Client-Zertifikate immer noch den Hostnamen kennen, mit dem sie verknüpft sind, und sich nicht über einen Wechsel freuen.
Gibt es eine Möglichkeit, mit Marionette (die auf den alten Puppenmeister verweist) neue Zertifikate bereitzustellen oder den Signaturprozess irgendwie zu automatisieren?
ZUSAMMENFASSUNG: Es wurden zwei Lösungen vorgestellt: 1) Aktivieren Sie autosign
den Master, wodurch die Zertifizierung vollständig übersprungen wird, oder 2) Setzen Sie den alten CNAME so, dass er auf den neuen Master verweist, da Zertifikate an den Hostnamen des Masters gebunden sind. Ich habe mich für Nummer 2 entschieden, weil Autosign das Gefühl hatte, die Sicherheit nur auszuschalten (wenn auch nur für eine begrenzte Zeit).