Ein Marionetten-Spickzettel
Puppet ist ein Konfigurationsverwaltungstool, mit dem Systemadministratoren die Bereitstellung, Konfiguration und Verwaltung einer Serverinfrastruktur automatisieren können. Es wird normalerweise im Master / Agent-Modus ausgeführt, in dem der Master-Server die Konfiguration mehrerer Agent-Knoten verwaltet. Die Kommunikation zwischen dem Master und den Agenten wird mit vom Client verifiziertem HTTPS gewährt und gesichert, wofür gültige SSL-Identifizierungszertifikate erforderlich sind. Der Puppet Master fungiert als Zertifizierungsstelle für die Verwaltung dieser Zertifikate.
Diese Anleitung im Stil eines Spickzettel enthält eine Kurzreferenz für die Verwendung des Befehls "+ puppet cert +" zum Verwalten dieser Zertifikate.
-
Verwendung dieses Handbuchs: *
-
Diese Anleitung ist im Spickzettel-Format mit in sich geschlossenen Befehlszeilen-Snippets
-
Wechseln Sie zu einem Abschnitt, der für die Aufgabe relevant ist, die Sie ausführen möchten.
Zertifikatsanforderungen auflisten
Wenn Puppet-Agentenserver online geschaltet werden und alles richtig konfiguriert ist, werden sie dem Puppet-Master eine Zertifikatsignierungsanforderung vorlegen. Diese Anforderungen können mit dem Befehl + puppet cert list
überprüft werden.
Listen Sie alle signierten und nicht signierten Anfragen auf
Um alle signierten und nicht signierten Zertifikatsanforderungen anzuzeigen, verwenden Sie das Flag "+ - all +" wie folgt:
sudo puppet cert list --all
Signierten Anforderungen wird ein Pluszeichen ("+") vorangestellt, nicht signierten Anforderungen. In der folgenden Ausgabe wurde "+ host2.example.com " nicht signiert, während " host1 " und " puppet +" Folgendes haben:
Output:+ "host1.example.com" (SHA256) 51:D8:7A:EB:40:66:74:FD:0A:03:5D:35:AA:4D:B3:FA:35:99:C2:A8:C9:01:83:34:F6:16:60:BB:46:1F:33:3F
"host2.example.com" (SHA256) 3C:A9:96:3A:8D:24:5F:25:DB:FF:67:B5:22:B1:46:D9:89:F1:75:EC:BA:F2:D6:87:70:0C:59:97:11:11:01:E3
+ "puppet.example.com" (SHA256) 12:32:47:18:D1:12:85:A6:EA:D4:51:9C:24:96:E2:8A:51:41:8D:EB:E8:7C:EB:47:94:B0:8B:16:16:51:6A:D1 (alt names: "DNS:puppet", "DNS:puppet.localdomain", "DNS:puppet.example.com")
Liste nicht signierter Anfragen
Bevor Puppet Server mit dem Agentenknoten kommunizieren und ihn steuern kann, muss es das Zertifikat des jeweiligen Agentenknotens signieren. Verwenden Sie zum Überprüfen der nicht signierten Anforderungen den Befehl + puppet cert list
vom Puppet-Server:
sudo puppet cert list
Dies listet nur nicht signierte Anfragen auf. Die Ausgabe sieht ungefähr so aus:
Output: "host2.example.com" (SHA256) 9D:49:DE:46:1C:0F:40:19:9B:55:FC:97:69:E9:2B:C4:93:D8:A6:3C:B8:AB:CB:DD:E6:F5:A0:9C:37:C8:66:A0
Das Fehlen eines Pluszeichens ("+") zeigt an, dass diese Zertifikate noch nicht signiert wurden. Wenn keine nicht signierten Anforderungen vorhanden sind, werden Sie ohne Ausgabe zur Eingabeaufforderung zurückgeführt.
Zertifikatsanforderungen signieren
Unterschreiben Sie spezifische Anfragen
Verwenden Sie zum Signieren einer einzelnen Zertifikatanforderung den Befehl + puppet cert sign +
mit einem oder mehreren in der Zertifikatanforderung angezeigten Hostnamen.
puppet cert sign
Eine Ausgabe ähnlich dem folgenden Beispiel zeigt an, dass die Zertifikatsanforderung signiert wurde:
Output:Notice: Signed certificate request for
Notice: Removing file Puppet::SSL::CertificateRequest at '/etc/puppetlabs/puppet/ssl/ca/requests/.pem'
Unterschreiben Sie alle Anfragen
Sie können alle Anfragen signieren, indem Sie das + - all +
Flag hinzufügen:
sudo puppet cert sign --all
Zertifikate widerrufen
Eventuell möchten Sie einen Host aus Puppet entfernen oder einen Host neu erstellen und dann wieder hinzufügen. In diesem Fall müssen Sie das Zertifikat des Hosts vom Puppet Master widerrufen. Verwenden Sie dazu die Aktion + clean +
:
Widerrufen Sie bestimmte Zertifikate
Sie können ein oder mehrere bestimmte Zertifikate mit + puppet cert clean +
widerrufen, indem Sie einen oder mehrere Hostnamen angeben, wie sie im Zertifikat erscheinen:
sudo puppet cert clean
Nach dem Widerruf eines Zertifikats müssen Sie den Puppet-Master neu starten, damit der Widerruf wirksam wird.
sudo service puppetserver reload
Wenn "+ Puppet Agent" das nächste Mal auf dem Agentenknoten ausgeführt wird, sendet es eine neue Zertifikatsignierungsanforderung an den Puppet Master, die mit "+ Puppet Cert Sign" signiert werden kann. Sie können die Anfrage sofort auslösen mit:
sudo puppet agent --test
Sperren Sie mehrere Zertifikate
Puppet erlaubt keine Massenentfernung von Zertifikaten mit einem "+ - all +" - Flag. Sie können jedoch mehrere Zertifikate gleichzeitig widerrufen, indem Sie die Hostnamen durch ein Leerzeichen trennen:
sudo puppet cert clean . . .
Nach dem Widerruf von Zertifikaten müssen Sie den Puppet-Master neu starten, damit die Widerrufe wirksam werden.
sudo service puppetserver reload
Fazit
Diese Anleitung behandelt einige der gebräuchlichen Befehle zum Verwalten von Puppet-Zertifikaten in Puppet Version 4.x. Es gibt andere Aktionen und Flags, die mit + puppet cert +
verwendet werden können. Eine umfassende Liste finden Sie auf der `+puppet cert + `man page.