Puppet
A model-driven configuration management system.
Puppet uses a domain-specific language to describe the desired state of systems, and an agent on each managed host that periodically pulls its compiled "catalogue" from a Puppet server. The model-driven approach compiles an abstract description of the world (what packages, files, services, and users should exist) into the concrete commands needed to reach that state, while idempotently leaving correctly-configured systems alone.
Luke Kanies founded Puppet in 2005 after frustration with CFEngine's expressive limits. Puppet popularised the modern declarative configuration management pattern that Chef, Salt, and (to a lesser extent) Ansible later iterated on. Forge, the Puppet module marketplace, hosts thousands of community-curated modules covering popular software stacks.
Puppet's adoption is concentrated in long-running enterprise environments — financial services, telecoms, government — where the model-driven approach pays off in clarity over thousands of servers. The commercial company (now under Perforce) maintains the Puppet Enterprise product on top of the open-source engine.
Install
Debian/Ubuntu: sudo apt install puppet Fedora/RHEL: sudo dnf install puppet Arch: sudo pacman -S puppet
Authors
- Luke Kanies (creator)
- Perforce / Puppet Labs and contributors