Puppet Documentation Index
This is the documentation for Puppet, as well as several related tools and applications.
Most of the content here applies equally to Puppet Enterprise and open source releases of Puppet, but make sure you’re using the right docs version for your Puppet Enterprise version. If you get lost, check the version note in red text at the top of each page.
Practically speaking, Puppet is a collection of several projects. Here’s the documentation for all of the major components that make up a Puppet deployment:
|Puppet Server||Latest||Other versions|
Cheat Sheets and Glossary
Small documents for getting help fast.
- Core Types Cheat Sheet — A double-sided reference to the most common resource types.
- Module Cheat Sheet — A one-page reference to Puppet module layout, covering classes and defined types, files, templates, and plugins.
Puppet Reference Manuals
A concise reference to Puppet’s usage and internals. Use the left sidebar of any reference manual page to navigate between pages.
- Puppet 4.3 is included with Puppet Enterprise 2015.3.
- Puppet 4.2 is included with Puppet Enterprise 2015.2.
- Puppet 4.1
- Puppet 4.0
- Puppet 3.8 is included with Puppet Enterprise 3.8.
- Puppet 3.7
- Puppet 3.6
- Puppet 3.5
- Puppet 3.0 through 3.4
- Puppet 2.7
Other Reference Material
- Versioned References — Inline reference docs from Puppet’s past and present.
- History of the Puppet Language — A table showing which language features were added and removed in which Puppet versions.
Learn about different areas of Puppet, problem fixes, and design solutions.
Installing and Configuring
Get the latest version of Puppet up and running.
- An Introduction to Puppet
- Installing Puppet 4 for Linux
- Installing Puppet 4 for Windows
- Upgrading Puppet from 3.x to 4.x
Previous Install Guides
Building and Using Modules
- Module Fundamentals — Nearly all of your Puppet code should be in modules.
- Installing Modules from the Puppet Forge — Save time by using pre-existing modules.
- Publishing Modules on the Puppet Forge — Preparing your best modules to go public.
Help With Writing Puppet Code
- Techniques — Common design patterns, tips, and tricks.
- Troubleshooting — Avoid common problems and confusions.
- Style Guide — Puppet community conventions.
- Best Practices — Use Puppet effectively.
- Templating — Template config files using ERB.
- Virtual Resources
- Exported Resources — Share data between hosts.
- Using the Augeas Resource Type — Safely edit many types of config files.
Using Optional Features
- Puppet File Serving — Files in modules are automatically served; this guide explains how to configure additional custom mount points for serving large files that shouldn’t be kept in modules.
Puppet on Windows
You can manage Windows nodes side by side with your *nix infrastructure, with Puppet 2.7 and higher (including Puppet Enterprise ≥ 2.5).
Tuning and Scaling
Puppet’s default configuration is meant for prototyping and designing a site. Once you’re ready for production deployment, learn how to adjust Puppet for peak performance.
- Running a Production-Grade Puppet Master Server With Passenger — This should be one of your earliest steps in scaling out Puppet.
- Using Multiple Puppet Masters — A guide to deployments with multiple Puppet masters.
Hacking and Extending: Using Puppet’s Data
- Puppet Data Library: Overview — Puppet automatically gathers reams of data about your infrastructure. Learn where that data is, how to access it, and how to mine it for knowledge.
- Inventory Service — Use Puppet’s inventory of nodes at your site in your own custom applications.
- Reporting — Learn what your nodes are up to.
Hacking and Extending: APIs and Interfaces
- HTTP Access Control — Secure API access with
- External Nodes — Specify what your machines do using external data sources.
- LDAP Nodes — A special-case tool for keeping node information in your LDAP directory.
Hacking and Extending: Ruby Plugins
- Plugins In Modules — Where to put plugins, and how to sync them to clients.
- Writing Custom Facts
- Writing Custom Functions
- Writing Custom Types & Providers
- Complete Resource Example — More information on custom types & providers
- Provider Development — More about providers.
- Development Life Cycle — Learn how to contribute code.
- Puppet Internals — Understand how Puppet works internally.
Puppet has gone through some transitional periods, and we’ve occasionally written short guides to explain major changes in its behavior.
- Scope and Puppet — Understand and banish dynamic lookup warnings with Puppet 2.7.