Puppet

Was ist Puppet?

In Computing ist Puppet ein Open-Source-Konfigurationswerkzeug. Es läuft auf vielen Unix-ähnlichen Systemen wie Microsoft Windows und enthält eine eigene deklarative Sprache, um die Systemkonfiguration zu beschreiben.

Das Tool wird von Puppet produziert, das 2005 von Luke Kanies gegründet wurde. Es wurde in C++ und Clojure geschrieben und als freie Software unter der GNU General Public License bis Version 2.7.0 und danach als Apache License 2.0 veröffentlicht.

Funktion

Puppet ist dafür konzipiert, die Konfiguration von Unix-ähnlichen und Microsoft Windows-Systemen deklarativ zu verwalten. Der Benutzer beschreibt Systemressourcen und deren Status, entweder mit der deklarativen Sprache von Puppet oder mit Ruby DSL. Diese Informationen werden in Dateien gespeichert, die als “Puppet-Manifeste” bezeichnet werden. Es ermittelt die Systeminformationen mithilfe eines Dienstprogramms namens Facter und fasst die Puppet-Manifestationen in einem systemspezifischen Katalog zusammen, der Ressourcen und Ressourcen-Abhängigkeiten enthält, die auf die Zielsysteme angewendet werden. Alle durchgeführten Aktionen werden dann gemeldet.

Puppet besteht aus einer benutzerdefinierten deklarativen Sprache zur Beschreibung der Systemkonfiguration, die entweder direkt auf dem System angewendet oder in einen Katalog kompiliert und über das Client-Server-Paradigma (mithilfe einer REST-API) an das Zielsystem verteilt werden kann. Der Agent verwendet das System bestimmter Anbieter, um die in den Manifestationen angegebene Ressource durchzusetzen. Mithilfe der Ressourcen-Abstraktionsschicht können Administratoren die Konfiguration auf hoher Ebene beschreiben, z.B. Benutzer, Dienste und Pakete, ohne dass betriebssystemspezifische Befehle (z.B. apt, rpm, yum) angegeben werden müssen.

Das Tool ist modellgetrieben und erfordert nur eingeschränkte Programmierkenntnisse. Es gibt es in zwei Versionen, Enterprise und Open-Source. Enterprise bietet nicht nur Funktionen für Open-Source, sondern auch GUI-, API- und Befehlszeilen-Tools für die Knotenverwaltung.

Architektur

Normalerweise greift hier die Client-Server-Architektur. Der Client wird als Agent und der Server als Master bezeichnet. Zum Testen und für eine einfache Konfiguration kann es auch als eigenständige Anwendung ausgeführt werden, die von der Befehlszeile aus ausgeführt wird.

Der Server ist auf einem oder mehreren Servern installiert und der Agent ist auf allen Computern installiert, die der Benutzer verwalten möchte. Die Agents kommunizieren mit dem Server und rufen Konfigurationsanweisungen ab. Der Agent wendet dann die Konfiguration auf das System an und sendet einen Statusbericht an den Server. Geräte können den Agent als Dämon ausführen, der regelmäßig als Cron-Job ausgelöst oder bei Bedarf manuell ausgeführt werden kann.

Die Architektur besteht aus folgenden Modulen:

Konfigurationssprache
Die Programmiersprache ist eine deklarative Sprache, die den Zustand eines Computersystems in Form von “Ressourcen” beschreibt, die zugrunde liegende Netzwerk- und Betriebssystem-Konstrukte darstellen.

Ressourcenabstraktion
Mit Puppet können Benutzer Systeme plattformunabhängig konfigurieren, indem die Betriebssystemkonzepte als strukturierte Daten darstellen. Anstatt die genauen Befehle zum Ausführen einer Systemaktion anzugeben, erstellt der Benutzer eine Ressource, die dann in systemspezifische Anweisungen übersetzt, die an die zu konfigurierende Maschine gesendet wird.

Transaktion
Ein normaler Verlauf durchläuft vier Stufen, bis schließlich der Agent einen Bericht an den Master sendet, in dem angegeben ist, welche Änderungen vorgenommen wurden und welche Fehler aufgetreten sind.


Sie haben noch Fragen?

Kontaktieren Sie uns

Kostenloser SEO-Check der OSG


Weitere Inhalte