Puppet (Software)

Puppet ist ein Administrationsprogramm für das automatisierte Software-Configuration-Management mehrerer Computer über das Netzwerk. Konfigurationsparameter können etwa die Installation von Software, Datensynchronisation oder das Ausführen von Programmen sein.

Puppet
Basisdaten
Entwickler Puppet
Erscheinungsjahr 2005
Aktuelle Version 7.10.0[1]
(16. August 2021)
Betriebssystem Plattformunabhängig
Programmiersprache Ruby
Kategorie Konfigurationsmanagement
Lizenz Apache-Lizenz, Version 2.0[2]
deutschsprachig nein
puppet.com/open-source/

Puppet i​st Open Source u​nd prinzipiell plattformübergreifend, unterstützt werden jedoch insbesondere unixoide Betriebssysteme w​ie Unix, Linux u​nd FreeBSD. Microsoft Windows lässt s​ich nur eingeschränkt konfigurieren.[3]

Entwicklung

Puppet ist in der Programmiersprache Ruby geschrieben. Es existiert seit 2005 und wird von der Firma Puppet Labs entwickelt, die zu diesem Zweck gegründet wurde. Hauptentwickler ist von Beginn an Luke Kanies. Puppet ist eine freie Software und steht ab Version 2.7.0 unter der Apache License 2.0, davor unter der GPL.[4]

Ende Januar 2013 g​ab die Firma Puppet Labs bekannt, d​ass VMware i​m Rahmen e​iner strategischen Partnerschaft 30 Millionen US-Dollar i​n die Weiterentwicklung v​on Puppet investiert.[5]

Funktionsprinzip

Puppet arbeitet nach dem Client-Server-Prinzip. Auf dem Server läuft ein zentraler Puppet-Daemon (puppetmaster), der die Konfigurationen der Rechner vorhält und auf Anfrage via REST-API austeilt. Auf den Clients läuft je ein Puppet-Agent, der sich die Konfiguration vom Server holt und dann die Unterschiede der auf dem Client befindlichen zur gewünschten Konfiguration errechnet und anschließend entsprechende Änderungen vornimmt.

Ein Systemadministrator kann mit Puppet an zentraler Stelle die Konfiguration von an seinem Netzwerk angeschlossenen Rechnern verwalten. Dazu legt dieser über „Puppet-Manifeste“ deklarativ den gewünschten Zustand eines Subsystems fest, den Puppet dann beim Ablauf umsetzt. Deklarationen können konditioniert erfolgen. Insbesondere kann das zu Puppet gehörige Zusatzprogramm facter verwendet werden, um Systemeigenschaften zu ermitteln, beispielsweise die Prozessorarchitektur, das Betriebssystem, oder ob die Puppet-Instanz auf einer virtuellen Maschine läuft.

Verbreitung

Puppet eignet sich sowohl für einzelne Rechner als auch für große Rechnerverbünde.[6] Viele Organisationen, Firmen, Schulen und Universitäten verwenden Puppet, um die Konfiguration ihrer Server zu verwalten,[7] darunter die Wikimedia Foundation[8], Google[9], Sun/Oracle[10], die Stanford University und die Harvard Law School.[11] Die Mailingliste zu Puppet hatte im Januar 2013 mehr als 5.000 Mitglieder.[12]

Monitoring: Puppet Dashboard und Foreman

puppet dashboard startseite
the foreman startseite

Puppet-Durchläufe können mit den separaten Programmen puppet dashboard oder foreman visualisiert werden. Diese lassen übersichtlich auf einer Web-Oberfläche Puppet-Reports darstellen. Hiermit lassen sich schnell Probleme bereitende Rechner identifizieren und eine zeitnahe Problembehebung einleiten.

Notwendigkeit

Da Puppets Stärke darin liegt, große Systeme mit vielen Rechnern automatisiert zu verwalten, steht der Sysadmin vor der Aufgabe, dennoch den Überblick zu bewahren. Nicht immer läuft ein Puppet-Durchlauf reibungslos ab. Die Tendenz zu Fehlern liegt in heterogenen Systemen mit vielen verschiedenen Rechnermodellen und unterschiedlichen Nutzungsprofilen. Die Gründe hierfür sind vielfältig (z. B. volle Festplatten, unerwartete dpkg-Abbrüche) und können oder sollen sicherheitshalber nicht automatisiert behoben werden.

Sofern Puppet noch lauffähig ist, versucht es zwar, alle Konfigurationen vorzunehmen, sobald jedoch ein aufgerufenes Programm einen unerwarteten Rückgabewert zurückgibt, wird der Puppet-Run als failed bewertet (verbleibende Tasks werden dennoch aufgerufen). Die Ausgabe – ein puppet-report – eines jeden Puppet-Runs wird YAML-ausgezeichnet zurück an den Puppet-Master gesandt.

Die Reports werden v​om Puppet-Master-Host geholt u​nd in e​ine Datenbank eingetragen, u​m eine schnelle webbasierte Darstellung z​u ermöglichen. Sie können z​udem mit e​iner Monitoring-Software überwacht werden.

Siehe auch

Literatur

  • James Turnbull: Pulling Strings with Puppet: Configuration Management Made Easy Springer, 2008, ISBN 978-1-59059-978-5
  • James Turnbull, Peter Lieverdink, Dennis Matotek: Pro Linux System Administration, Chapter 19: “Configuration management”, S. 965–986, Springer, 2009, ISBN 978-1-4302-1912-5
  • James Turnbull: Pro Puppet Apress, 2010, ISBN 978-1-4302-3057-1
  • Gunnar Wrobel : Konfigurationsverwaltung mit Puppet, „Puppenspiel“. Linux-Magazin 2008/10
  • Philip Eschenbacher: Zend Server via Puppet konfigurieren. Entwickler Magazin, November 2009.

Einzelnachweise

  1. Release 7.10.0. 16. August 2021 (abgerufen am 13. September 2021).
  2. github.com.
  3. Docs: Puppet on Windows. (Nicht mehr online verfügbar.) In: puppetlabs.com. 9. Juli 2014, archiviert vom Original am 3. Juli 2014; abgerufen am 10. Juli 2014 (englisch): „Some *nix resource types aren’t supported on Windows, and there are some Windows-only resource types.“  Info: Der Archivlink wurde automatisch eingesetzt und noch nicht geprüft. Bitte prüfe Original- und Archivlink gemäß Anleitung und entferne dann diesen Hinweis.@1@2Vorlage:Webachiv/IABot/docs.puppetlabs.com: es lassen sich nur einige wenige type resources definieren (im Vergleich zur Fülle an verfügbaren type resources in unixoiden Umgebungen)
  4. Frequently Asked Questions. In: docs.puppetlabs.com. Puppet Labs, abgerufen am 8. Januar 2013 (englisch).
  5. VMware investiert 30 Millionen in Puppet. ADMIN-Magazin, abgerufen am 28. Januar 2013.
  6. Gunnar Wrobel: Puppenspiel. Konfigurationsverwaltung mit Puppet. In: Linux-Magazin Online. Oktober 2008, abgerufen am 8. Januar 2013.
  7. Whos Using Puppet. In: projects.puppetlabs.com. Puppet Labs, abgerufen am 8. Januar 2013 (englisch).
  8. Ryan Lane: Ever wondered how the Wikimedia servers are configured? In: Wikimedia blog. Wikimedia Foundation, 19. September 2011, abgerufen am 8. Januar 2013 (englisch).
  9. Michael Coté: Puppet at Google. RedMonk Radio Episode 48. In: Coté's People Over Process. RedMonk, 11. Juni 2008, abgerufen am 8. Januar 2013 (englisch).
  10. Oliver Frommel: Puppet-Software zum Konfigurationsmanagement erreicht Version 2.6. In: ADMIN | Das plattformübergreifende Magazin für alle IT-Administratoren. 20. Juli 2010, abgerufen am 8. Januar 2013.
  11. Oswald Campesato, Kevin Nilson: Web 2. 0 Fundamentals for Developers Jones & Bartlett Learning, 2010, S. 412 ISBN 978-0-7637-7973-3
  12. Puppet Users. In: Google Groups. Abgerufen am 8. Januar 2013.
This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. The authors of the article are listed here. Additional terms may apply for the media files, click on images to show image meta data.