Open Source Projects
The Puppet ecosystem includes more than 40 open source projects that are used with Puppet, an open-source configuration management system. Each project adds a capability that system administrators rely on for automating server management.
Sysadmins who use open source Puppet choose the components they need to do their jobs from both the open source projects associated with Puppet, and the more than 2,700 pre-built modules available on the Puppet Forge. Admins who use Puppet Enterprise already have the projects available, fully integrated, security-hardened and tuned for performance.
Some of the major open source projects that are commonly used with Puppet include:
The earliest version of Puppet was created in 2005 by Luke Kanies, founder of Puppet Labs, to easily automate common — and repetitive — system administration tasks. Puppet's easy-to-read, declarative language allows you to state how your systems should be configured to do their jobs — a very different approach from procedural languages that require you to describe the step-by-step process of configuring systems. Using Puppet, any admin or developer can set up systems quickly and move on to the work at hand, without having to know how it gets done.
Puppet's language aids collaboration between members of different technical teams, because it is easily read and understood by human beings who may not be familiar with Ruby or other coding languages.
You can run Puppet on all major Linux or Unix platforms, Mac OS X, and Windows.
More about Puppet
Facter gathers basic facts about nodes (systems) such as hardware details, network settings, OS type and version, IP addresses, MAC addresses, SSH keys and more. These facts are then made available in your Puppet manifests as variables.
Facter is extensible, and it's easy to include your own custom facts or site-specific facts. You can use the facts provided by Facter to inform conditional expressions in Puppet.
To get more information about Facter, review the core facts shipped with Facter, and learn how to create your own custom facts, review the Facter technical documentation
Hiera is a key/value lookup tool for configuration data. Hiera keeps your site-specific data separate from modules and manifests, making them easier to construct, read, modify and reuse. With Hiera, it's easy to:
- Re-use public Puppet modules by putting necessary data in Hiera, rather than editing module code.
- Publish your own modules for collaboration by eliminating the need to clean out data before sharing, and eliminating clashing variable names.
- Configure your own nodes by providing multiple levels of overrides for default data.
For instructions on how to install and configure Hiera with open source Puppet, view the technical documentation.
Marionette Collective, commonly known as MCollective, is a framework for building server orchestration or parallel job-execution systems. It is normally used to automate execution of administrative tasks on clusters of servers.
The advantages of MCollective come into play when working with large numbers of servers:
- Instead of relying on a static list of hosts, it uses metadata-based discovery and filtering. MCollective can work with PuppetDB, or do real-time discovery across your network.
- Rather than connecting directly to each host, MCollective uses publish/subscribe middleware to communicate with many hosts at once, conserving resources and saving time.
Review the MCollective technical documentation to learn more
Many projects, applications and modules rely on PuppetDB, which collects and stores data generated by Puppet, including:
- The most recent facts from every node (system)
- The most recent catalog for every node
- Recent event reports for every node
With PuppetDB, you have a huge inventory of metadata about every node in your infrastructure, and a searchable database of every resource managed on any node.