Weblog

Guerilla Puppet'ing

19.10.2025 2 Min. Lesezeit

Puppet ohne Puppet Master verwenden

Vor Jahren mußte ich ein Deployment auf mehreren Servern durchführen, auf denen kein Puppet Agent installiert war. Leider stand es außer Frage, dafür noch eine vernünftige Puppet-Infrastruktur aufzubauen. Also begann ich, mssh zu verwenden — begleitet von einem kleinen emotionalen Zusammenbruch.

Du kannst dir vorstellen, dass es nicht lange dauerte, bis mssh einfach nicht mehr flexibel genug war. Und seien wir ehrlich: Wenn man sich erst einmal an Puppet gewöhnt hat, fühlt sich alles andere irgendwie falsch an.

Die Lösung für mein Problem war überraschend simpel:
Einfach Puppet ohne Puppet Master verwenden.

Vielleicht kennst du die apply-Funktion bereits — sie ist gut dokumentiert — aber schauen wir sie uns trotzdem noch einmal an.

Einfaches apply

Führe einfach ein normales Manifest aus:

puppet apply masterless.pp

Das ist die einfachste Möglichkeit, Puppet ohne Puppet Master zu verwenden.

masterless.pp kann dabei entweder ein reguläres Modul sein oder einfach schnell zusammengeschriebener Code wie dieser:

define feature ($foo) {
  # Dinge tun
}

feature{
  foo => bar,
}

Hiera verwenden

Wenn dein bestehender Code Werte aus der Hiera-Datenbank benötigt, ist das überhaupt kein Problem.

Du brauchst lediglich eine Kopie deiner Hiera-Struktur sowie den passenden Parameter:

puppet apply masterless.pp --hiera_config=./hiera.yaml
Achtung:
Gib bei --hiera_config den Pfad zur Hiera-Konfigurationsdatei (hiera.yaml) an — nicht die node- oder modulspezifischen YAML-Dateien (oder JSON-Dateien oder welches Backend du auch verwendest).

Puppet-Hashbang

puppet apply direkt auf der Kommandozeile auszuführen macht zwar Spaß, aber da wir alle schreibfaul sind, warum nicht einfach den kompletten puppet apply-Aufruf in den Hashbang packen und die Datei ausführbar machen?

#!/usr/bin/puppet apply --hiera_config=/tmp/hiera.yaml

define feature ($foo) {
  # Dinge tun
}

feature{
  foo => bar,
}

Achievement unlocked:
Shell Scripting mit Puppet

Themen Technikzeug
Schlagworte Puppet Linux hiera
π