Chapter 6. Configuring Puppet smart class parameters
6.1. Puppet parameter hierarchy
Puppet parameters are structured hierarchically. Parameters at a lower level override parameters of the higher levels:
- Global parameters
- Organization parameters
- Location parameters
- Host group parameters
- Host parameters
For example, host specific parameters override the parameter at any higher level, and location parameters only override parameters at the organization or global level. This feature is especially useful when you use locations or organizations to group hosts.
6.2. Overriding a smart class parameter globally
You can configure a Puppet class after you have imported it to Satellite Server. This example overrides the default list of ntp servers.
Procedure
- In the Satellite web UI, navigate to Configure > Puppet ENC > Classes.
- Select the ntp Puppet class to change its configuration.
- Select the Smart Class Parameter tab and search for servers.
- Ensure the Override checkbox is selected.
- Set the Parameter Type drop down menu to array.
Insert a list of ntp servers as Default Value:
["0.de.pool.ntp.org","1.de.pool.ntp.org","2.de.pool.ntp.org","3.de.pool.ntp.org"]
An alternative way to describe the array is the
yaml
syntax:- 0.de.pool.ntp.org - 1.de.pool.ntp.org - 2.de.pool.ntp.org - 3.de.pool.ntp.org
-
Click Submit to change the default configuration of the Puppet module
ntp
.
6.3. Overriding a smart class parameter for an organization
You can use groups of hosts to override Puppet parameters for multiple hosts at once. The following example chooses the organization context to illustrate setting context based parameters.
Note that organization-level Puppet parameters are overridden by location-level Puppet parameters.
Procedure
- In the Satellite web UI, navigate to Configure > Puppet ENC > Classes.
- Click a class name to select a class.
- On the Smart Class Parameter tab, select a parameter.
-
Use the Order list to define the hierarchy of the Puppet parameters. The individual host (
fqdn
) marks the most and the organization context (organization
) the least relevant. - Check Merge Overrides if you want to add all further matched parameters after finding the first match.
- Check Merge Default if you want to also include the default value even if there are more specific values defined.
- Check Avoid Duplicates if you want to create a list of unique values for the selected parameter.
- The matcher field requires an attribute type from the order list.
- Optional: Click Add Matcher to add more matchers.
- Click Submit to save the changes.
6.4. Overriding a smart class parameter for a location
You can use groups of hosts to override Puppet parameters for multiple hosts at once. The following examples chooses the location context to illustrate setting context based parameters.
Procedure
- In the Satellite web UI, navigate to Configure > Puppet ENC > Classes.
- Click a class name to select a class.
- On the Smart Class Parameter tab, select a parameter.
-
Use the Order list to define the hierarchy of the Puppet parameters. The individual host (
fqdn
) marks the most and the location context (location
) the least relevant. - Check Merge Overrides if you want to add all further matched parameters after finding the first match.
- Check Merge Default if you want to also include the default value even if there are more specific values defined.
- Check Avoid Duplicates if you want to create a list of unique values for the selected parameter.
-
The matcher field requires an attribute type from the order list. For example, you can choose
Paris
as location context and set the value to French ntp servers. - Optional: Click Add Matcher to add more matchers.
- Click Submit to save the changes.
6.5. Overriding a smart class parameter on an individual host
You can override parameters on individual hosts. This is recommended if you have multiple hosts and only want to make changes to a single one.
Procedure
- In the Satellite web UI, navigate to Hosts > All Hosts.
- Click a host name to select a host.
- Click Edit.
- On the Host tab, select a Puppet Environment.
- Select the Puppet ENC tab.
- Click Override to edit the Puppet parameter.
- Click Submit to save the changes.