Was ist Puppet?
Puppet ist ein Konfigurationsmanagement-Tool, das dem Prinzip „Kontrollknoten und verwaltete Knoten“ folgt. Der gewünschte Zustand eines Systems wird in einer deklarativen Sprache beschrieben. Damit legen Administratoren den gewünschten Endzustand fest – nicht wie dieser zu erreichen ist (Idempotenz). Die Definitionen für die verwalteten Systeme liegen in sogenannten „Manifesten“ auf dem Puppet-Kontrollknoten, zum Beispiel Ihrem orcharhino oder orcharhino-Proxy.
Auf den verwaltenen Knoten läuft ein Agent, der in regelmäßigen Abständen den Kontrollknoten nach dem gewünschten Zustand erfragt und Abweichungen korrigiert. Configuration Drifts, wenn beispielsweise Nutzer lokale Änderungen vorgenommen haben und das System somit nicht mehr im gewünschten Zustand ist, werden beim nächsten Lauf des Agents automatisch korrigiert. Die Bandbreite der möglichen Kommandos reicht vom Erzeugen und Modifizieren einzelner Dateien über das Verwalten von Nutzeraccounts und Softwarepaketen zu komplexeren Aufgaben.
Manifeste und dynamische Dateivorlagen (Templates) werden in Ruby bzw. einer an Ruby orientierten Syntax verfasst und folgen einem strengen Klassenkonzept. Parameter für die Manifeste werden entweder in einer Datenbank auf dem Puppet Kontrollknoten vorgehalten oder dynamisch von einem External Node Classifier wie einem Datacenter Inventory Management (DCIM) oder einer Configuration Management Database (CMDB) abgefragt.