Puppet ist ein Administrationsprogramm, Hauptanwendungsfall ist die automatisierte Konfiguration mehrerer Computer via Netzwerk. Es verwendet eine plattformunabhängige Spezifikationssprache, die all die verschiedenen Elemente verwaltet, die normalerweise in verschiedenen Dateien zu finden sind, darunter Benutzer, Cron-Jobs und Hosts, zusammen mit diskreten Elementen wie Pakete, Dienste und Dateien. Seine einfache deklarative Spezifikationssprache stellt leistungsfähige Möglichkeiten zur Klasseneinteilung bereit, mit denen man die Ähnlichkeiten verschiedener Hosts herausstellen und sie zugleich so spezifisch wie nötig konfigurieren kann. Es handhabt Abhängigkeiten und Voraussetzungen zwischen Objekten deutlich und explizit. (non)