# Puppet & Chef: Deklarative Konfiguration für Enterprise-Umgebungen
TL;DR / Management Summary Puppet und Chef sind die Pioniere des Konfigurationsmanagements. Während Ansible auf Einfachheit setzt, bieten diese Tools eine extrem tiefe Kontrolle über den Systemzustand via Ruby-basierten DSLs. Ein Senior Admin nutzt Puppet/Chef, wenn er hunderte identische Linux- oder Windows-Server über Jahre hinweg ohne “Konfigurations-Drift” betreiben muss. Sie sind die “Dauerwächter”, die alle 30 Minuten den Server wieder exakt auf den definierten Stand zurückbiegen.
# 1. Puppet: Der deklarative Wächter
Definition statt Programmierung.
Puppet nutzt eine eigene Sprache, um Ressourcen zu beschreiben.
- Puppet Agent: Läuft auf dem Zielserver.
- Puppet Master: Speichert die Manifeste (.pp Dateien).
- Zustand: Wenn Sie sagen
service { 'apache2': ensure => running }, sorgt der Agent permanent dafür, dass der Dienst läuft. Wenn Sie ihn manuell stoppen, startet Puppet ihn beim nächsten Run (Default: alle 30 Min) wieder.
# 2. Chef: Infrastructure as Code (Imperativ/Ruby)
Kochen nach Rezept.
Chef folgt einer kulinarischen Analogie:
- Recipes: Die exakten Anweisungen (in echtem Ruby-Code).
- Cookbooks: Sammlungen von Rezepten für eine Rolle (z.B. “Webserver”).
- Chef Server: Die Zentrale.
- Vorteil: Da Chef echtes Ruby nutzt, können Administratoren komplexe Logik (Schleifen, API-Abfragen) direkt im “Rezept” programmieren.
# 3. Deep Dive: Agent-basiertes vs. Agentenloses Management
Der Ressourcen-Trade-off.
| Merkmal | Puppet / Chef | Ansible |
|---|---|---|
| Agent | Ja (Permanent) | Nein (SSH) |
| Pull vs Push | Pull (Client fragt Server) | Push (Master schickt an Client) |
| Drift-Schutz | Extrem Stark (Erzwingung) | Schwächer (Nur bei Ausführung) |
| Lernkurve | Hoch (Ruby/DSL) | Gering (YAML) |
# 4. Day-2 Operations: Härtung & Compliance
Sicher durch Soll-Zustand.
Puppet und Chef sind ideal für Compliance-Audits.
- Aktion: Definieren Sie alle Security-Settings (SSH-Config, User-Accounts, offene Ports) im Master.
- Nutzen: Sie können per Knopfdruck einen Report generieren: “Welche Server weichen aktuell von meiner Sicherheitsrichtlinie ab?”.
# 5. Troubleshooting & “War Stories”
Wenn der Wächter Amok läuft.
# Top 3 Fehlerbilder
-
Symptom: “Certificate mismatch” bei Puppet.
- Ursache: Der Host wurde neu installiert, aber das alte Zertifikat am Master nicht gelöscht.
- Fix:
puppetserver ca clean --certname <hostname>.
-
Symptom: Dienst-Neustart-Schleife.
- Ursache: Ein Rezept ändert eine Datei, die den Dienst neustartet, aber die Datei wird bei jedem Lauf minimal verändert (z.B. durch einen Zeitstempel).
-
Symptom: High RAM Usage durch den Agent.
# “War Story”: Der “Auto-Reboot” Teufel
Ein Admin schrieb ein Chef-Rezept, das ein Kernel-Update durchführen sollte. Er vergaß die Bedingung only_if.
Das Ereignis: Da Chef das Rezept alle 30 Minuten ausführte, versuchte das System alle 30 Minuten, den Kernel neu zu installieren und löste einen Reboot aus.
Das Ergebnis: Die gesamte Flotte von 500 Servern befand sich in einer permanenten Neustart-Schleife.
Lehre: Nutzen Sie in agent-basierten Systemen immer Guards (Bedingungen), um sicherzustellen, dass eine Aktion nur einmalig oder nur bei Bedarf ausgeführt wird.
# 6. Monitoring & Reporting
Dashboard der Flotte.
# PuppetDB / Chef Automate
Nutzen Sie die grafischen Dashboards:
- KPI:
Compliance Level %. - KPI:
Configuration Drift Count.
# 7. Fazit & Empfehlung
Wählen Sie Ihr Werkzeug passend zur Kultur.
- Empfehlung: Nutzen Sie Ansible (Artikel 793) für Agilität und Schnelligkeit.
- Wahl: Nutzen Sie Puppet/Chef nur dann, wenn Sie extrem hohe Anforderungen an die permanente Einhaltung von Konfigurations-Standards haben (Finanzsektor, Behörden).
# Anhang: Glossar der Begriffe
| Begriff | Puppet | Chef |
|---|---|---|
| Einheit | Resource | Resource |
| Skript | Manifest (.pp) | Recipe (.rb) |
| Paket | Module | Cookbook |
| Master | Puppet Server | Chef Infra Server |