Puppet Tutorial in deutsch: Installation

By | 17. Mai 2016

binary_world_map

Puppet ist eine in der Programmiersprache Ruby geschriebene Software zur automatisierten Konfiguration mehrerer Clients in einem Netzwerk. Entwickelt von der Firma Puppet Labs steht sowohl eine kommerzielle Version „Puppet Enterprise“ als auch eine Open Source Version „Puppet“ zur Verfügung.

Mit der Software Puppet lassen sich große Server-Installationen und Clients einfach verwalten und warten. Die Software wird weltweit von tausenden von Unternehmen eingesetzt, darunter auch viele internationale Unternehmen wie zum Beispiel Sony, Intel oder die NASA. Die Puppet-Clients greifen nach einer vorherigen Zertifizierung über eine verschlüsselte Verbindung (https) auf den Puppet-Server (Puppetmaster) zu und fragen die Konfiguration ab. Ein solch zentrales Konfigurations-Management bietet offensichtlich mehrere Vorteile.

  • Vereinheitlichte Konfiguration von Servern.
  • Zeitersparnis bei der Konfiguration, da nicht jeder Server einzeln konfiguriert werden muss.
  • Automatisierte Reaktionen auf Änderungen von Diensten, Konfigurationen usw. …
  • Zentralisierte Benutzerverwaltung

Die Installation und Konfiguration ist unter den gängigen Linux Distributionen recht einfach gestaltet, so dass schnell mit dem System gearbeitet werden kann. Die Client-Software lässt sich unter Linux, Windows und Mac OS X installieren. Ich gehe im Puppet Tutorial von einer Linux Debian Umgebung aus.

Puppet Tutorial: Installation

Server

~$ apt-get update
~$ apt-get install puppetmaster

Client

~$ apt-get update
~$ apt-get install puppet

Der Hostname vom Server muss in die Konfigurationsdatei eingetragen werden:

[main]
server=puppet-server
logdir=/var/log/puppet
vardir=/var/lib/puppet
ssldir=/var/lib/puppet/ssl
rundir=/var/run/puppet
factpath=$vardir/lib/facter
prerun_command=/etc/puppet/etckeeper-commit-pre
postrun_command=/etc/puppet/etckeeper-commit-post

[master]
# These are needed when the puppetmaster is run by passenger
# and can safely be removed if webrick is used.
ssl_client_header = SSL_CLIENT_S_DN 

Puppet Tutorial: Authentifizierung

Client:

~$ puppet agent -t

Server:

Anzeige noch zu genehmigender Client-Zertifikate auf dem Server.

~$ puppet cert list
"puppet-client" (A1:74:A7:B5:5D:60:8D:6A:69:77:67:6E:DC:5F:41:E0)

Signierung eines Client-Zertifikats.

~$ puppet cert sign puppet-client
notice: Signed certificate request for puppetclient
notice: Removing file Puppet::SSL::CertificateRequest puppetclient at /
'/var/lib/puppet/ssl/ca/requests/puppet-client.pem'

Überprüfung der erfolgreichen Signierung des Client-Zertifikats auf dem Server.

~$ puppet cert list -a
+ "puppet-client" (SHA256) 7F:DF:8A:62:78:17:5E:C2:A4:E3 ...
+ "puppet-server" (SHA256) 24:15:BB:5D:D2:87:52:F3:7F:A1 ...

Client:

~$ puppet agent -t
info: Caching certificate for puppetclient
info: Caching certificate_revocation_list for ca
info: Caching catalog for puppetclient
info: Applying configuration version '1395687915'
info: Creating state file /var/lib/puppet/state/state.yaml
notice: Finished catalog run in 0.02 seconds

Nun kann die Puppet Infrastruktur genutzt werden!

TIPP: Die Puppet Seite selber bietet eine wirklich umfangreiche Dokumentation.

Puppet Tutorial: Troubleshooting

Problem: „Could not retrieve catalog from remote server: …“

Server

Installierte Zertifikate anzeigen.

~$ puppet cert list -a
+ "puppet-client" (SHA256) B9:A1:EF:FE:5F:0E:EA ...
+ "puppet-server" (SHA256) 13:B2:B4:EA:DA:30:E1 ...

Fehlerhaftes Zertifikat löschen durch Angabe des entsprechenden Hostnamens vom Client.

~$ puppet cert clean puppet-client

Überprüfen, ob das gewünschte Zertifikat nicht mehr im Zertifikatsspeicher enthalten ist.

~$ puppet cert list -a
+ "puppet-server" (SHA256) 13:B2:B4:EA:DA:30:E1 ...

Client

~$ rm -rf /var/lib/puppet/ssl
~$ service puppet restart

Nun kann eine erneute Authentifizierung erfolgen.

 

Vielen Dank für das Lesen des Beitrags! Ich würde mich freuen, wenn du den Beitrag über die sozialen Netzwerke teilen würdest und Blog About Tech folgst.

2 thoughts on “Puppet Tutorial in deutsch: Installation

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.