How to configure PE
After you've installed Puppet Enterprise (PE), you can optimize
it by configuring and tuning settings. For example, you might want to add your certificate
to the allowlist, increase the max-threads setting for http
and
https
requests, or configure the number of JRuby instances.
PE shares configuration settings used in open source Puppet (which are documented in the Configuration Reference). However, the default values for PE might differ from the default values for Puppet. Some examples of settings that have different
defaults in PE include disable18n
, environment_timeout
, always_retry_plugins
, and the Puppet Server
JRuby
max-active-instances
settings. To verify PE's configuration defaults, check the puppet.conf
file after installation.
For consistency, it is important to always configure settings in the same way, unless a
situation calls for you to use a specific method. For example, if you choose to
configure settings in the PE console, then always
configure settings in the console, unless a specific setting requires using Hiera or editing pe.conf
.
This page provides generic instructions for configuring PE settings. You'll find information about specific settings in other Configuring Puppet Enterprise topics and throughout the PE documentation.
Configure settings in the PE console
You can use the Puppet Enterprise (PE) console's graphical interface to configure settings for your PE installation.
pe.conf
. It
is best to use the console when you want to:- Change parameters in profile classes starting with
puppet_enterprise::profile
. - Add parameters to PE-managed configuration files.
- Set parameters that configure at runtime.
To change settings in the console you can Set configuration data or Set parameters.
Set configuration data
Configuration data set in the console is used for automatic parameter lookup in the same way that Hiera data is used. Console configuration data takes precedence over Hiera data, but you can combine data from both sources to configure nodes.
- You want to override Hiera data. Data set in the console overrides Hiera data when configured as recommended.
- You want to give someone permission to define or edit data, and they don’t have the skill set to do it in Hiera.
- You simply prefer the console user interface.
Set parameters
Parameters are declared resource-style, which means you can use them to override other data; however, this override capability can introduce class conflicts and declaration errors that cause Puppet runs to fail.
Configure settings with Hiera
Hiera is hierarchy-based configuration management that relies on a defaults with overrides system. When you add a parameter or setting to your Hiera data, Hiera searches through the data, in the order defined, to find the value you want to change. Once found, it overrides the default value with the new parameter or setting. You can use Hiera to manage your Puppet Enterprise (PE) configuration settings.
pe.conf
, but not those set in the PE console. However, settings declared in the console override
Hiera data. It's best to use Hiera when you want to:- Change parameters in non-profile classes.
- Set parameters that are static and version-controlled.
- Configure for high availability.
To configure a setting in Hiera:
Configure settings in pe.conf
Puppet Enterprise (PE) configuration
data includes any data set in
/etc/puppetlabs/enterprise/conf.d/
,
but pe.conf
is the file used for most
configuration activities during
installation.
pe.conf
. Configure settings in
pe.conf
when you want to: - Access settings during installation.
- Configure for high availability.
To configure settings in
pe.conf
:
Configuration file syntax
Puppet supports two formats for configuration files: valid JSON and Human-Optimized Config Object Notation (HOCON), which is a JSON superset. We've provided these syntax examples to guide you when you're writing configuration files.
For details about HOCON itself, refer to the HOCON documentation.
Brackets
{
"authorization": {
"version": 1
}
}
{ }
) around the root object.
For example:"authorization": {
"version": 1
}
Quotation marks
"authorization": {
"version": 1
}
In HOCON, double quotes around keys and string values are usually optional. However,
double quotes are required if the string contains any of these characters:
*
, ^
, +
, :
,
or =
authorization: {
version: 1
}
Commas
In JSON, use commas to separate items in a map or array.
rbac: {
password-reset-expiration: 24,
session-timeout: 60,
failed-attempts-lockout: 10,
}
http-client: {
ssl-protocols: [TLSv1, TLSv1.1, TLSv1.2, TLSv1.3]
}
When writing a map or array in HOCON, you can use a new line instead of a comma.
rbac: {
password-reset-expiration: 24
session-timeout: 60
failed-attempts-lockout: 10
}
http-client: {
ssl-protocols: [
TLSv1
TLSv1.1
TLSv1.2
]
}
Comments
JSON does not support comments.
//
or #
to delineate
comments. Inline comments are supported. For
example:authorization: {
version: 1
rules: [
{
# Allow nodes to retrieve their own catalog
match-request: {
path: "^/puppet/v3/catalog/([^/]+)$"
type: regex
method: [get, post]
}
}
]
}