Sebastian Hempel bio photo

Sebastian Hempel

Software Crafter, Clean-Code-Developer, JEE Professional, Puppet-Master, OpenSource Fanboy, Alfisti

Email Twitter Google+ XING Instagram Github

Nach der erfolgreichen Evaluierung implementiere ich derzeit das Konfigurationsmanagement-System Puppet bei einem Kunden in Nürnberg. Das System dient zur zentralen, einheitlichen Konfiguration von Rechnern unter UNIX, Linux und MacOS X. Das Besondere an Puppet ist, dass man über das System den gewünschten Soll-Zustand beschreibt. Wie dieser Soll-Zustand erreicht wird bzw. welche Änderungen dafür auf dem verwalteten System durchgeführt werden müssen, wird von Puppet selbst ermittelt und durchgeführt.

puppet labs logo

Puppet ist als Client-/Server-System realisiert. Ein zentraler Puppet Master verwaltet die Konfigurationen der einzelnen angeschlossenen Puppet Clients. Die Clients fragen in regelmäßigen Abständen beim Master nach der aktuellen Konfiguration. Evtl. Änderungen am Soll-Zustand werden von den Clients direkt durchgeführt. Der Vorteil an dieser Aufteilung ist, dass der Administrator sich einzig und allein um die Pflege der Konfiguration auf dem Puppet Master kümmern muss. Die einzelnen Clients kümmern sich selbständig um die Aktualisierung der ihnen zugewiesenen Konfiguration.

Im Repository des Masters werden für jeden Dienst, Service bzw. Anwendung Module gespeichert. Ein Modul beinhaltet die Beschreibung der Konfiguration und evtl. benötigte Dateien und Vorlagen (Templates). Die Beschreibung der Konfiguration erfolgt in einer Puppet eigenen “Sprache”. Über die Elemente Datei, Paket, Dienst oder Benutzer werden die für das Modul notwendigen Ressourcen unabhängig vom Betriebssystem des Clients beschrieben. Die Einarbeitung in diese Sprache ist einfach und mit geringem Zeitaufwand möglich. Über den Namen des Clients werden diesem ein oder mehrere Module zugeordnet. Durch die Nutzung von regulären Ausrücken bei der Formulierung des Namens können umfangreiche Listen vermieden werden.

Die Installation der notwendigen Software auf dem Client ist schnell erledigt. Die Kommunikation zwischen Client und Server erfolgt mit dem HTTPS Protokoll. Dabei werden zur Authentifizierung der verwalteten Rechner Client-Zertifikate verwendet. Die Verwaltung der einzelnen Zertifikate kann durch die mitgelieferte CA-Software von Puppet sehr einfach und schnell erledigt werden.

Die für die Präsentation von Puppet beim Kunden verwendeten Folien habe ich auf SlideShare hochgeladen. Ich werde in der nächsten Zeit die einzelnen Aspekte und Besonderheiten von Puppet in weiteren Beiträgen beschreiben.