Puppet is an open source systems management tool for centralizing and automating configuration management. Configuration management is the detailed recording and updating of information that describes an enterprise's hardware and software.
Puppet has two layers: a configuration language to describe how the hosts and services should look, and an abstraction layer that allows the administrator to implement the configuration on a variety of Unix and Linux platforms. Administrators can encode the configuration of a service as a policy, which Puppet then monitors and enforces.
Puppet is written in Ruby and released under the GNU Public License. The software is used to manage enterprise-level systems at many large enterprises, including Twitter, Red Hat and Sun Microsystems.
See also: policy-based management