Puppet platform documentation for PE
Puppet Enterprise (PE) is built on the Puppet platform which has several components: Puppet, Puppet Server, Facter, Hiera, and PuppetDB. This page describes each of these platform components, and links to the component docs.
Puppet
Puppet is the core of our configuration management platform. It consists of a programming language for describing desired system states, an agent that can enforce desired states, and several other tools and services.
Right now, you’re reading the PE manual; the Puppet reference manual is a separate section of our docs site. After you’ve followed a link there, you can use the navigation sidebar to browse other sections of the manual.
- Language
-
-
An outline of how the Puppet language works.
- Resources, variables, conditional statements, and relationships and ordering are the fundamental pieces of the Puppet language.
- Classes and defined types are how you organize Puppet code into useful chunks. Classes are the main unit of Puppet code you’ll be interacting with on a daily basis. You can assign classes to nodes in the PE console.
- Facts and built-in variables explains the special variables you can use in your Puppet manifests.
-
An outline of how the Puppet language works.
- Modules
-
- Most Puppet code goes in modules. We explain how modules work here.
- There are also guides to installing modules and publishing modules on the Forge.
- Use the code management features included in PE to control your modules instead of installing by hand. See Managing and deploying Puppet code (in the PE manual) for more details.
- Services and commands
- Built-in resource types and functions
-
- The resource type reference has info about all of the built-in Puppet resource types.
- The function reference does the same for the built-in functions.
- Important directories and files
-
- Most of your Puppet content goes in environments. Find out more about environments here.
- The codedir contains code and data and the confdir contains config files. The modulepath and the main manifest both depend on the current environment.
- Configuration
-
- The main config file for Puppet is
/etc/puppetlabs/puppet/puppet.conf
. Learn more about Puppet’s settings, and aboutpuppet.conf
itself. - There are also a bunch of other config files
used for special purposes. Go to the page about
puppet.conf
and check the navigation sidebar for a full list.
- The main config file for Puppet is
Puppet Server
Puppet Server is the JVM application that provides the core Puppet HTTPS services. Whenever Puppet agent checks in to request a configuration catalog for a node, it contacts Puppet Server.
For the most part, PE users don’t need to directly manage Puppet Server, and the Puppet reference manual (above) has all the important info about how Puppet Server evaluates the Puppet language and loads environments and modules. However, some users might need to access the environment cache and JRuby pool administrative APIs, and there’s lots of interesting background information in the rest of the Puppet Server docs.
Facter
Facter is a system profiling tool. Puppet agent uses it to send important system info to Puppet Server, which can access that info when compiling that node’s catalog.
- For a list of variables you can use in your code, check out the core facts reference.
- You can also write your own custom facts. See the custom fact overview and the custom fact walkthrough.
Hiera
Hiera is a hierarchical data lookup tool. You can use it to configure your Puppet classes.
Start with the overview and use the navigation sidebar to get around.
Note: Hiera 5 is a backwards-compatible evolution of Hiera, which is built into Puppet. To provide some backwards-compatible features, it uses the classic Hiera 3 codebase. This means “Hiera” is still version 3.x, even though this Puppet Enterprise version uses Hiera 5.
PuppetDB
PuppetDB collects the data Puppet generates, and offers a powerful query API for analyzing that data. It’s the foundation of the PE console, and you can also use the API to build your own applications.
If you’re interacting with PuppetDB directly, you’ll mostly be using the query API.
- The query tutorial page walks you through the process of building and executing a query.
- The query structure page explains the fundamentals of using the query API.
- The cURL tips page has useful information about testing the API from the command line.
- You can use the navigation sidebar to browse the rest of the query API docs.