Open Source Puppet
The Puppet approach
Open source Puppet is a configuration management system that allows you to define the state of your IT infrastructure, then automatically enforces the correct state.
Open source Puppet is the foundation of the Puppet approach to IT automation:
- Abstract configuration from infrastructure so the same tool can be used across the data center and across all phases of software delivery.
- Enable collaboration between people on different teams.
- Let computers do what computers are good at; let people do what people are good at.
Whether you're managing just a few servers or thousands of physical and virtual machines, Puppet automates tasks that sysadmins often do manually, freeing up time and mental space so sysadmins can work on the projects that deliver greater business value.
You can run open source Puppet on all major Linux or Unix platforms, Mac OS X, and Windows. It is free, and available under the Apache 2.0 license.
The Puppet language
Puppet Labs founder and CEO Luke Kanies created the first version of Puppet in 2005 to help sysadmins easily automate common, repetitive tasks that are prone to human error. The idea was to create an easy-to-use configuration management system that wouldn't require you to have mastery of a programming language.
That's why Puppet's language is declarative, rather than procedural. You declare the configurations your systems need to do their jobs — for example, which versions of operating systems they should be running — rather than prescribing the steps that must be taken to configure them.
Puppet's simple, easily-understood language makes it possible for people other than sysadmins — developers, QA managers, testers, project managers — to understand what's going on in your infrastructure. That facilitates better collaboration between teams, and helps enable more efficient delivery of clean code.
Puppet Forge: reusable modules
The Puppet Forge is an important resource for people who use Puppet and Puppet Enterprise. On the Forge, you'll find more than 2,700 open source modules — or pre-written bundles of Puppet code and data — for doing a large number of common tasks. Available for free download, Forge modules are created both here at Puppet Labs, and by Puppet community members.
Puppet modules automate tasks such as:
- installing and configuring Apache, plus configuring and managing a range of virtual host setups
- managing APT source, key, and definitions
- installing, configuring, and running NTP across a range of operating systems
- managing system reboots on Windows
- managing and configuring firewalls
- installing and configuring MySQL
- and much, much more.
Modules can be re-used across your infrastructure — physical, virtual and cloud environments — and across operating systems. You can combine modules to create complete application configuration stacks that share common configurations, and create custom modules for your own special requirements, too.
Open source Puppet and Puppet Enterprise: What's the difference?
Puppet was first created in 2005 as an open source configuration management tool, and is available for free download under the Apache 2.0 license. Puppet was quickly expanded upon by Puppet Labs and the fast-growing community of Puppet users, and continues to grow as IT admins use it to automate more of their work.
Puppet Enterprise is the commercial product from Puppet Labs, offering a whole set of out-of-the-box capabilities for tackling IT automation challenges that go beyond the configuration management capabilities provided by open source Puppet. Plus, Puppet Enterprise integrates Puppet with 40-plus other open source software projects to create a full, comprehensive platform for IT automation.
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 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, and they can call on our support engineers for help. With open source Puppet, you put the system together yourself; with Puppet Enterprise, we do the legwork for you.
The Puppet community is an engaged group of sysadmins and developers — thousands of them, with more joining in every week. Community members actively collaborate by:
- asking and answering questions on the Ask Q&A site
- sharing modules on the Puppet Forge
- contributing code to various projects
- participating in our mailing lists, IRC channels, and more
- meeting at events, Puppet User Groups and other local meetups
Whether you're an experienced Puppet user or just beginning to learn about Puppet, you'll find a warm welcome from the Puppet community — and plenty of help.
How do I get Puppet?
- You can likely find Puppet in your favorite Linux distro's package repositories.
- If you're using Amazon EC2, the Amazon Linux AMI bundles Puppet.
- Get the source code for open source Puppet from Github.
- Download packages from our Yum and APT repositories.
- Download the binaries from our website.
- Check out the other open source projects that are frequently used with Puppet.
- Take a look at modules available from the Puppet Forge.
- Check out the technical documentation for Puppet.