Chapter 1. Overview

Puppet is a tool for applying and managing system configurations. Puppet collects system information, or facts, and uses this information to create a customized system configuration using a set of modules. These modules contain parameters, conditional arguments, actions, and templates. Puppet is used as either a local system command-line tool or in a client-server relationship where the server acts as the Puppet master and applies configuration to multiple client systems using a Puppet agent. This provides a way to automatically configure newly provisioned systems, either individually or simultaneously to create a specific infrastructure.

1.1. Defining the Puppet Workflow

Puppet uses the following workflow to apply configuration to a system.

  1. Collect facts about each system. These facts can include hardware, operating systems, package versions, and other information. The Puppet agent on each system collects this information and sends it to the Puppet master.
  2. The Puppet master generates a custom configuration for each system and sends it to the Puppet agent. This custom configuration is called a catalog.
  3. The Puppet agent applies the configuration to the system.
  4. The Puppet agent sends a report back to the Puppet master that indicates the changes applied and if any changes were unsuccessful.
  5. Third-party applications can collect these reports using Puppet’s API.

1.2. Using Puppet on Satellite 6

Red Hat Satellite 6 uses Puppet in several ways:

  • Red Hat Satellite 6 imports Puppet modules used to define the system configuration. This includes control over module versions and their environments.
  • Red Hat Satellite 6 imports sets of parameters, also known as Puppet Smart Class parameters, from Puppet modules. Users can accept the default values from Puppet classes or provide their own at a global or system-specific level.
  • Red Hat Satellite 6 triggers the execution of Puppet between the master and the respective agents on each system. Puppet runs can occur either:

    • Automatically, such as after the provisioning process completes or as a daemon that checks and manages the machine’s configuration over its life cycle.
    • Manually, such as when the administrator needs to trigger an immediate Puppet run.
  • Satellite 6 collects reports from Puppet after the configuration workflow completes. This helps with auditing and archiving system configuration over long term periods.

These functions provide an easy way for users to control system configuration aspects of the application life cycle using Puppet.

If required, to find out the version of Puppet used in your Satellite environment, see the Package Manifest.

Note

Satellite 6.3 is the last supported release for Puppet 3 and you need to upgrade from Puppet 3 to Puppet 4 before upgrading to Satellite 6.4. Satellite 6.4 only supports Puppet 5.

For information about upgrading Puppet, see Upgrading Puppet in the Upgrading and Updating Red Hat Satellite guide.

1.3. Puppet Performance and Scalability on Satellite 6

The performance of Puppet in Satellite 6 is influenced more by the Satellite and Capsule storage capacity, CPU performance, and available memory, than by application limitations. Therefore, testing of your hardware and configuration is the only way to be sure the performance is acceptable for your needs.

For information about recommended storage and system requirements, see System Requirements in the Red Hat Satellite Installation Guide.