Configuring and tuning PuppetDB
After you’ve installed Puppet Enterprise (PE), optimize it for your environment by configuring and tuning PuppetDB configuration as needed.
See Tuning monolithic installations for recommended settings based on various monolithic installation sizes.
Configure agent run reports in the console
By default, every time Puppet runs, the Puppet master generates agent run reports and submits them to PuppetDB. These agent run reports can be enabled or disabled in the PE console.
Click Nodes > Classification, and in the PE Infrastructure group, select the PE Master group.
On the Classes tab, locate or add the
puppet_enterprise::profile::master::puppetdbclass, select the
report_processor_ensureparameter, and enter the value
presentto enable agent run reports or
absentto disable agent run reports.
Click Add parameter, and commit changes.
Configure agent run reports in Hiera
By default, every time Puppet runs, the Puppet master generates agent run reports and submits them to PuppetDB. These agent run reports can be enabled or disabled in Hiera.
- Edit your Hiera default
.yamlfile, and set the
absent(disabled), as shown in the following code:
puppet_enterprise::profile::master::puppetdb::report_processor_ensure: <PRESENT or ABSENT>
Configure command processing threads
command_processing_threads setting defines how many command processing threads PuppetDB uses to sort incoming data. Each thread can process a single command at a time. This setting defaults to half the number of cores in your system.
- Set the number of
command_processing_threadsby editing your Hiera default
.yamlfile using the following code:
puppet_enterprise::puppetdb::command_processing_threads: <NUMBER of THREADS>
Configure broker memory
memory-usage parameter sets the maximum amount of memory in megabytes available for PuppetDB’s ActiveMQ Broker.
Note: Tuning this setting involves writing Puppet code, as documented at Playing nice with the PuppetDB module.
Use this parameter to set the “time-to-live” value before PE automatically deletes nodes that have been deactivated or expired. This will also delete all facts, catalogs, and reports for the relevant nodes.
Specify the time as a string using any of the following suffixes:
For example, a value of
14d would set the time-to-live to 14 days.
Edit your Hiera default
.yamlfile, and set the
node_purge_ttlsetting, as shown in the following code:
Changing the PuppetDB user/password
The console uses a database user account to access its PostgreSQL database. If this user’s password is compromised, or if it needs to be changed periodically, do the following:
- Stop the
puppet resource service pe-puppetdb ensure=stopped.
- On the database server (which may or may not be the same as PuppetDB, depending on your deployment’s architecture) use the PostgreSQL administration tool of your choice to change the user’s password. With the standard
psqlclient, you can do this with
ALTER USER console PASSWORD '<new password>';.
/etc/puppetlabs/puppetdb/conf.d/database.inion the PuppetDB server and change the
password:line under common (or under production, depending on your configuration) to contain the new password.
- Start the
pe-puppetdbservice on the console server with with
puppet resource service pe-puppetdb ensure=running.
Increase the ulimit for pe-puppetdb
Services in PE require up to one file handle per connected client. On most OS configurations, the defaults are not high enough for more than a couple of hundred clients. Support more clients by increasing the number of allowed file handles.
View instructions to increase the ulimit for PE services.
Tune the Java heap size for pe-puppetdb
Java heap size is the JVM (Java Virtual Machine) memory allocated to Java services running on PuppetDB.
Instructions to change the Java heap size using the PE console are on the Configuring Java Arguments for PE page.
Additional PuppetDB configuration information
Additional PuppetDB configuration information is available in the PuppetDB documentation. When consulting this documentation, be sure to check the PuppetDB version against the one included in your version of PE.