Chapter 1. Configuration management with Puppet in Satellite


Puppet is a configuration management tool to automate configurations of hosts across your infrastructure. In a Satellite environment, you can use Puppet configuration management features for consistent management of Satellite hosts. For more information about Puppet, see Open Source Puppet documentation and Puppet Forge.

1.1. How Puppet integrates with Satellite

As a configuration management tool, Puppet uses a server-agent architecture. Satellite components integrate with Puppet architecture to provide configuration management capabilities in Satellite.

Puppet server and Puppet agent

The Puppet server is the central component that stores configuration definitions. Satellite Server or Capsule Servers are typically deployed with the Puppet server. Satellite acts as an External Node Classifier (ENC) for such Puppet server. Hosts run the Puppet agent that communicates with the Puppet server.

The Puppet agent collects facts about a host and reports them to the Puppet server on each run. You can display the Puppet facts in JSON format by running puppet facts on a host.

The Puppet server forwards facts to Satellite and Satellite stores them for later use. Based on the facts and other definitions, Satellite constructs the ENC answer to the Puppet server. The Puppet server compiles a catalog based on the ENC answer and sends the catalog to the Puppet agent.

The Puppet agent evaluates the system state on the host. If the Puppet agent finds differences, known as drifts, between the desired state defined in the catalog and the actual state, it enforces correction of the state of the host. The Puppet agent then reports correction results back to the Puppet server, which reports them to Satellite.

Puppet modules
The desired state of a host is defined in a catalog. The catalog is compiled from Puppet manifests of one or more Puppet modules assigned to the host. A Puppet module is a collection of classes, manifests, resources, files, and templates. The Puppet modules work as components of host configuration definitions.
Smart Class parameters
You can override parameters of a Puppet module by using Smart Class parameters if the module supports the use of parameters. You can define the parameters in your Satellite as key-value pairs, which behave similar to host parameters or Ansible variables.
Puppet environments
You can also create multiple Puppet environments to control versions of configuration definitions or to manage variants of the definitions, and to test the definitions before you deploy them on production.

To integrate Puppet with Satellite, you need to enable integration, import agent packages, and install the agent on hosts.

Puppet integration with Satellite involves the following high-level steps:

  1. Enable Puppet integration.
  2. Import Puppet agent packages into Satellite. Puppet agent packages can be managed like any other content with Satellite by enabling Red Hat repositories and by using activation keys and content views.
  3. Install Puppet agent on hosts by using one of the following options:

After you deploy Puppet agent on a host, use Satellite to manage Puppet modules, import classes, set parameter overrides, and assign classes to hosts so configuration is applied automatically or on demand.

Configuration management with Puppet involves the following high-level steps:

  1. Managing Puppet modules on the Puppet server, that is installing and updating them.
  2. Importing Puppet classes and environments from Puppet modules into Satellite.
  3. Optional: Creating config groups from Puppet classes.
  4. Configuring overrides of Smart Class parameters on various levels.
  5. Assigning Puppet classes or config groups to host groups or individual hosts.
  6. Configuring intervals for runs of the Puppet agent on hosts and for configuration enforcement runs of the Puppet server.
  7. Monitoring configuration management using reports in the Satellite web UI. For more information, see Monitoring Satellite resources in Administering Red Hat Satellite.
  8. Configuring email notifications. For more information, see Configuring Email Notification Preferences in Administering Red Hat Satellite.

After assigning Puppet classes or config groups, Satellite runs configuration management automatically in the configured intervals to enforce Puppet configuration on your hosts, or you can initiate it manually on demand with the Run Puppet Once feature. For more information, see Section 11.1, “Running Puppet once using SSH”.

Before you begin with the Puppet integration, review the supported Puppet versions and system requirements.

Supported Puppet Versions

Satellite supports Puppet server 8. Ensure that the Puppet modules used to configure your hosts are compatible with your Puppet version.

On hosts, you can use Puppet agent 7.

System Requirements
Before you begin integrating Puppet with your Satellite, ensure that you meet the system requirements. For more information, see System Requirements for Puppet 7 in the Open Source Puppet documentation.
Red Hat logoGithubredditYoutubeTwitter

Learn

Try, buy, & sell

Communities

About Red Hat Documentation

We help Red Hat users innovate and achieve their goals with our products and services with content they can trust. Explore our recent updates.

Making open source more inclusive

Red Hat is committed to replacing problematic language in our code, documentation, and web properties. For more details, see the Red Hat Blog.

About Red Hat

We deliver hardened solutions that make it easier for enterprises to work across platforms and environments, from the core datacenter to the network edge.

Theme

© 2026 Red Hat
Back to top