Puppet Server automatically loads the settings in the
sections of the configuration file. If there are duplicates, it prefers the
values in the
server section. Puppet Server honors the following
codedir (PE only)
However, for some tasks, such as configuring the web server or an external Certificate Authority (CA), Puppet Server has separate configuration files and settings. These files and settings are described below. For more information about differences between Puppet Server and Ruby Puppet's use of
puppet.conf settings, see Puppet Server: Differing Behavior in
Puppet Server's configuration files and settings (with the exception of the logging config file) are in the
conf.d directory, located by default at
/etc/puppetlabs/puppetserver/conf.d. These config files are in the HOCON format, which keeps the basic structure of JSON but is more readable. For more information, see the HOCON documentation.
At startup, Puppet Server reads all the
.conf files in the
conf.d directory. You must restart Puppet Server for any changes to those files to take effect. The
conf.d directory contains the following files and settings:
product.conf file is optional and is not included by default. You can create that file in the
conf.d directory in order to configure product-related settings, such as automatic update checking and analytics data collection.
Puppet Server's logging is routed through the JVM Logback library. The default Logback configuration file is at
/etc/puppetlabs/puppetserver/logback.xml. You can edit this file to change the logging behavior, or specify a different Logback config file in
For more information on the
logback.xml file, see its documentation and the Logback documentation. For advanced logging configuration tips, such as configuring Logstash or outputting logs in JSON format, see the Advanced Logging Configuration guide.
For some tips on advanced logging configuration, including information about configuring your system to write logs in a JSON format suitable for sending to logstash or other external logging systems, see the Advanced Logging Configuration documentation.
Puppet Server logs HTTP traffic in a format similar to Apache, and to a separate file than the main log file. By default, this is located at
By default, the following information is logged for each HTTP request:
remote log name
date of the logging event
status code of the request
response content length
remote IP address
elapsed time to serve the request, in milliseconds
The Logback configuration file is at
/etc/puppetlabs/puppetserver/request-logging.xml. You can edit this file to change the logging behavior. Specify a different Logback configuration file in
webserver.conf with the
access-log-config setting. For more information on configuring the logged data, see Logback Access Pattern Layout.
To enable additional logging related to
auth.conf, edit Puppet Server's
logback.xml file. By default, only a single message is logged when a request
To enable a one-time logging of the parsed and transformed
auth.conf file, add
the following to Puppet Server's
<logger name="puppetlabs.trapperkeeper.services.authorization.authorization-service" level="DEBUG"/>
To enable rule-by-rule logging for each request as it's checked for
authorization, add the following to Puppet Server's
<logger name="puppetlabs.trapperkeeper.authorization.rules" level="TRACE"/>
Puppet Server is built on top of our open-source Clojure application framework, Trapperkeeper.
One of the features that Trapperkeeper provides is the ability to enable or disable individual services that an application provides. In Puppet Server, you can use this feature to enable or disable the CA service. The CA service is enabled by default, but if you're running a multi-server environment or using an external CA, you might want to disable the CA service on some nodes.
Starting in Puppet Server 2.5.0, the service bootstrap configuration files are in two locations:
/etc/puppetlabs/puppetserver/services.d/: For services that users are expected to manually configure if necessary, such as CA-related settings.
/opt/puppetlabs/server/apps/puppetserver/config/services.d/: For services users shouldn't need to configure.
Any files with a
.cfg extension in either of these locations are combined to form the final set of services Puppet Server will use.
The CA-related configuration settings are set in
/etc/puppetlabs/puppetserver/services.d/ca.cfg. If services added in future versions have user-configurable settings, the configuration files will also be in this directory. When upgrading Puppet Server 2.5.0 and newer with a package manager, it should not overwrite files already in this directory.
ca.cfg file, find and modify these lines as directed to enable or disable the service:
# To enable the CA service, leave the following line uncommented puppetlabs.services.ca.certificate-authority-service/certificate-authority-service # To disable the CA service, comment out the above line and uncomment the line below #puppetlabs.services.ca.certificate-authority-disabled-service/certificate-authority-disabled-service
Adding Java JARs
Starting with Puppet Server 5.1.0, you can provide Java JARs to be loaded upon Puppet Server's startup.
When launched, Server automatically loads any JARs placed in
/opt/puppetlabs/server/data/puppetserver/jars into the
classpath. JARs placed here will not be modified or removed when upgrading Puppet Server.