Suchen

Definition „Puppet (Software)“ Was ist Puppet?

Autor / Redakteur: HJL / Stephan Augsten

Puppet ist ein Open-Source-Projekt mit Enterprise-Unterstützung. Das Admin-Tool erlaubt die automatisierte Konfiguration von Computern und Servern sowie der darauf installierten Dienste. Das Einsatzfeld reicht vom Einzel-Server bis hin zu großen Rechner-Verbundsystemen.

Firma zum Thema

Große Unternehmen erhalten mit Puppet Enterprise besondere Monitoring- und Continuous-Delivery-Funktionen, beispielsweise für Infrastructure-as-Code-Szenarien.
Große Unternehmen erhalten mit Puppet Enterprise besondere Monitoring- und Continuous-Delivery-Funktionen, beispielsweise für Infrastructure-as-Code-Szenarien.
(Bild: Puppet)

Bei der Konfiguration eines Servers bedienen sich Entwickler und Administratoren spezieller Konfigurationsmanager. Im Idealfall lassen sich damit viele Aufgaben automatisieren. Puppet wurde mit dieser Zielvorgabe im Jahre 2005 von den Puppet Labs, Portland, Oregon entwickelt. Seit April 2016 firmiert auch der Hersteller unter dem Namen Puppet.

Ideengeber und Hauptentwickler ist Luke Kanies. Das in Ruby geschriebene Konfigurations-Management-Tool ist plattformübergreifend konzipiert. Die Zielgruppe liegt jedoch eindeutig beim unixoiden DOS. Zu den unterstützen Host-Systemen gehören Stand 2018

  • CentOS
  • Oracle Linux
  • Red Hat
  • Scientific Linux
  • SuSE sowie
  • Ubuntu.

Mit einigen Einschränkungen können auch Systeme unter Windows mit Puppet konfiguriert und verwaltet werden.

Client-Server-Funktionsprinzip

Puppet liegt das Client-Server-Funktionsprinzip zugrunde, auf dem Server ist der „PuppetMaster“ resident. Er hält alle Konfigurationen der im Verbund aktiven Rechner vor. Der aktuelle Ist-Zustand des Systems wird ermittelt und mit dem für die Konfiguration hinterlegten Soll-Zustand verglichen. In Ableitung aus der ermittelten Differenz werden die erforderlichen Operationen errechnet und durchgeführt.

Grundsätzlich sind Entwickler und Administratoren in der Lage, mit Hilfe von Puppet zentral alle in ein Netzwerk eingebundenen Rechner zu verwalten. Herkömmlich konfigurierte Dienste können unbeeinflusst neben den mit Puppet hinterlegten Abläufen betrieben werden. Dies ist möglich, da alle Dateien und Konfigurationen, die nicht im PuppetMaster beschrieben sind, von dort auch nicht reglementiert werden.

Werkzeuge zur Automatisierung von großen Systemen

Die wirkungsvolle Architektur prädestiniert Puppet als Konfigurations-Management-Tool für große Systemnetzwerke und Rechnerverbundsysteme. Dies dokumentiert sich beim Blick auf die weltweit installierte Basis. Darunter finden sich komplexe Rechner-Installationen, wie beispielsweise jene von Google, Harvard und Stanford University.

Hier ist ebenfalls die charakteristische Arbeitsweise vorzufinden: Der PuppetMaster bildet die zentrale Server-Komponente während der PuppetAgent auf den zu konfigurierenden Systemen installiert ist. In der Praxis bedeutet dies, dass der Administrator auch in komplexen Verbund-Systemen in der Lage ist, den PuppetMaster auf einem definierten Server im Netzwerk anzulegen und auszuführen. Ein von Puppet erstellter „Catalog“ enthält die Modulen und Manifeste für die Konfiguration.

Einen wesentlichen Beitrag zum Komfort der Puppet-Architektur leistet der „PuppetAgent“. Er wird vom Master auf allen zu konfigurierenden Systemen ausgeführt. Als Basis dienen die im Catalog als Soll-Zustand hinterlegten Konfigurationseinstellungen. Die Kommunikation zwischen Agent und Master erfolgt über HTTPS. Zertifikate auf beiden Seiten dienen der Absicherung der bidirektionalen Kommunikationsprozesse.

Visualisierung des System-Status

Komplexe Vorgänge erfordern ein hohes Maß an Transparenz. Dies gilt insbesondere dann, wenn Puppet-Durchläufe nicht reibungslos funktionieren. Ein „PuppetReport“ wird dem Master zur Verfügung gestellt und über einen Datenbankeintrag dokumentiert. Die „PuppetDashboard“-Software visualisiert alle Status-Meldungen auf der Benutzeroberfläche des Administrators. Dieses Monitoring ist insbesondere in komplexen Netzwerken ein probates Überwachungswerkzeug.

(ID:45333334)