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 documentation, which is separate from the Puppet documentation. Use the navigation sidebar to navigate the documentation.
- Language
-
- Fundamental pieces of the Puppet language are resources, variables, conditional statements and expressions, and relationships and ordering.
- You use Classes and defined resource types to organize Puppet code into useful chunks. Classes are the main unit of Puppet code you’ll interact with on a daily basis. You can assign classes to nodes in the PE console.
- You can use facts and built-in variables as special variables in your Puppet manifests.
- Modules
-
- Most Puppet code goes in modules. Modules overview explains how modules work.
- Learn how to install modules from the Forge and publish modules on the Forge.
- Use PE's code management features to control your modules instead of installing manually, as explained in Managing and deploying Puppet code.
- Services and commands
-
- Learn about Puppet commands, including and overview of Puppet's architecture and a list of the main Puppet commands and services you'll interact with.
- You can also learn about running Puppet commands on Windows.
- Built-in resource types and functions
-
- The resource type reference describes built-in Puppet resource types.
- The built-in function reference describes built-in Puppet functions.
- Important directories and files
-
- Most Puppet content goes in environments.
- The codedir is the main directory for Puppet code and data, and the confdir contains Puppet config files.
- The modulepath and the main manifest depend on the current environment.
- Configuration
-
- The main config file for Puppet
is
/etc/puppetlabs/puppet/puppet.conf
. You can learn about Puppet settings andpuppet.conf
. - Other Puppet config files are used for special purposes.
- 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.
Generally, PE users don’t need to directly manage Puppet Server, and the Puppet documentation describes how Puppet Server evaluates the Puppet language and loads environments and modules. For users who need to access the environment cache and JRuby pool administrative APIs, you can find background information in the rest of the Puppet Server docs.
Facter
Facter is a system profiling tool that Puppet agent uses it to send important system information to Puppet Server. Puppet Server can access that information when compiling that node’s catalog.
- For a list of variables you can use in your code, check the Facter: Core facts reference.
- You can write your own custom facts, as explained in Writing custom facts and the Custom facts overview.
Hiera
Hiera is a hierarchical data lookup tool. You can use it to configure your Puppet classes.
Start with About Hiera, and then use the navigation sidebar to explore the Hiera docs.
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.
- The API query tutorial walks you through building and executing a query.
- The Query structure page explains the fundamentals of using the query API.
- The API curl tips page has useful information about testing the API from the command line.