Puppet is a tool designed to manage the configuration of Unix-like and Microsoft Windows systems declaratively. The user describes system resources and their state, either using Puppet’s declarative language or a Ruby DSL. This information is stored in files called “Puppet manifests”.
Puppet discovers the system information via a utility called Facter, and compiles the Puppet manifests into a system-specific catalog containing resources and resource dependency, which are applied against the target systems. Any actions taken by Puppet are then reported.
Built to be cross-platform, it works on Linux distributions, including RHEL (and clones such as CentOS and Oracle Linux), Fedora, Debian, Mandriva, Ubuntu, and SUSE, as well as multiple Unix systems (Solaris, BSD, Mac OS X, AIX, HP-UX), and has Microsoft Windows support. It is a model-driven solution that requires limited programming knowledge to use.
The Puppet plugin interacts with the Puppet’s shell through the commander agent, and offers two main capabilities:
- The ability to run manifest files easily from a file or from a text-area when the manifest content can be placed.
- Run any desired Puppet command, extending the manifests functionality.