Durch die Arbeit inspiriert, habe ich nun auch fuer mich Privat einen puppet Server zur Verwaltung meiner virtuellen Maschinen aufgesetzt.
Puppet ist ein Tool zum Konfigurationsmanagement von Computern mit Betriebssystemen wie Unix, Linux und FreeBSD. Ein IT-Administrator kann damit an zentraler Stelle die Konfiguration von Rechnern in seinem Netzwerk verwalten. Puppet eignet sich sowohl für einzelne Rechner als auch für große Rechnerverbünde |
Als erstes wurde die generelle Infrastruktur aufsetzen. Das bedeutet fuer mich:
- Einen puppet master Server zu haben
- Auf den Clients einen puppet agent laufen zu haben der mit dem Master verbunden ist.
Alles hier beschriebene passiert auf der Basis von Debian wheezy. Auf dem Server der als puppet master dienen soll habe ich zuerst das entsprechende Paket mit seinen Abhaengigkeiten installiert:
sudo aptitude install puppetmaster |
Anschliessend habe ich in der /etc/default/puppetmaster den Parameter START=yes gesetzt. Wichtig ist nun noch sicherzustellen, dass der Port 8140 von den Clients aus erreichbar ist.
Danach habe ich auf den Clients den puppet agent installiert:
sudo aptitude install puppet |
Auch hier habe ich in der /etc/default/puppet wieder den Parameter START=yes gesetzt. Weiter habe ich in den DAEMON_OPTS den Parameter zu dem Server angegeben. Beispiel:
--server puppetmaster.example.org |
Dann habe ich probiert mich mit dem puppet agent an den puppet master Server zu verbinden:
puppet agent --server puppetmaster.example.org --test |
Auf dem puppet master konnte ich danach das unsignierte Zertifikat des Clients mit dem folgenden Befehl sehen:
puppet cert list |
Danach musste es mit dem folgenden Befehl signiert werden, wobei puppetclient.example.org der FQHN des puppet clients ist:
puppet cert sign puppetclient.example.org |
Alle signierten Zertifikate kann man sich uebrigens mit dem folgenden Befehl anzeigen lassen:
puppet cert list --all |
Danach konnte ich den puppet agent auf dem Client erneut laufen lassen und die Verbindung war erfolgreich. Zum Ende das neu starten des puppet agents auf den Clients nicht vergessen, damit der Prozess mit den neuen DAEMON_OPTS laeuft.
Notizen:
- Wenn es zu einer „Connection refused“ Fehlermeldung wie unten gezeigt kommt, sicherstellen, dass der Port erreichbar ist. Eventuell auch erst einmal ausprobieren mit der IP Adresse auf dem Port zu verbinden (telnet IP PORT)
root@host:~# puppet agent --test --server puppetmaster.example.org err: Could not retrieve catalog from remote server: Connection refused - connect(2) warning: Not using cache on failed catalog err: Could not retrieve catalog; skipping run err: Could not send report: Connection refused - connect(2) root@host:~#
- Wenn es zu einer „Server hostname did not match server certificate“ Fehlermeldung kommt, dann kann es helfen fuer den Server einen entsprechenden Eintrag in die /etc/hosts zu packen
root@host:~# puppet agent --test --server 192.168.1.100 err: Could not retrieve catalog from remote server: Server hostname '192.168.1.100' did not match server certificate; expected one of puppetmaster.example.org, DNS:puppet, DNS:puppet.example.org, DNS:puppetmaster.example.org warning: Not using cache on failed catalog err: Could not retrieve catalog; skipping run err: Could not send report: Server hostname '192.168.1.100' did not match server certificate; expected one of puppetmaster.example.org, DNS:puppet, DNS:puppet.example.org, DNS:puppetmaster.example.org root@host:~#