Puppet Configuration Reference

Specifying Configuration Parameters

Every Puppet executable (with the exception of puppetdoc) accepts all of the arguments below, but not all of the arguments make sense for every executable. Each argument has a section listed with it in parentheses; often, that section will map to an executable (e.g., puppetd), in which case it probably only makes sense for that one executable. If puppet is listed as the section, it is most likely an option that is valid for everyone.

This will not always be the case. I have tried to be as thorough as possible in the descriptions of the arguments, so it should be obvious whether an argument is appropriate or not.

These arguments can be supplied to the executables either as command-line arugments or in the configuration file for the appropriate executable. For instance, the command-line invocation below would set the configuration directory to /private/puppet

$ puppetd --confdir=/private/puppet

Note that boolean options are turned on and off with a slightly different syntax on the command line:

$ puppetd --storeconfigs

$ puppetd --no-storeconfigs

The invocations above will enable and disable, respectively, the storage of the client configuration.

As mentioned above, the configuration parameters can also be stored in a configuration file located in the configuration directory (/etc/puppet by default). The file is named for the executable it is intended for, for example /etc/puppetd.conf is the configuration file for puppetd.

The file, which follows INI-style formatting, should contain a bracketed heading named for the executable, followed by pairs of parameters with their values. Here is an example of a very simple puppetd.conf file:

[puppetd]
    confdir = /private/puppet
    storeconfigs = true

Note that boolean parameters must be explicitly specified as true or false as seen above.

If you're starting out with a fresh configuration, you may wish to let the executable generate a template configuration file for you by invoking the executable in question with the --genconfig command. The executable will print a template configuration to standard output, which can be redirected to a file like so:

$ puppetd --genconfig > /etc/puppet/puppetd.conf

Note that this invocation will "clobber" (throw away) the contents of any pre-existing puppetd.conf file, so make a backup of your present config if it contains valuable information.

Like the --genconfig argument, the executables also accept a --genmanifest argument, which will generate a manifest that can be used to manage all of Puppet's directories and files and prints it to standard output. This can likewise be redirected to a file:

$ puppetd --genmanifest > /etc/puppet/manifests/site.pp

Puppet can also create user and group accounts for itself (one puppet group and one puppet user) if it is invoked as root with the --mkusers argument:

$ puppetd --mkusers

Signals

The puppetd and puppetmasterd executables catch some signals for special handling. Both daemons catch (SIGHUP), which forces the server to restart tself. Predictably, interrupt and terminate (SIGINT and SIGHUP) will shut down the server, whether it be an instance of puppetd or puppetmasterd.

Sending the SIGUSR1 signal to an instance of puppetd will cause it to immediately begin a new configuration transaction with the server. This signal has no effect on puppetmasterd.

Configuration Parameter Reference

Below is a list of all documented parameters. Any default values are in block type at the end of the description.

authconfig (puppet)

The configuration file that defines the rights to the different namespaces and methods. This can be used as a coarse-grained authorization system for both puppetd and puppetmasterd. /etc/puppet/namespaceauth.conf

autoflush (puppet)

Whether log files should always flush to disk.

autosign (ca)

Whether to enable autosign. Valid values are true (which autosigns any key request, and is a very bad idea), false (which never autosigns any key request), and the path to a file, which uses that configuration file to determine which keys to sign. /etc/puppet/autosign.conf

bucketdir (puppetmasterd)

Where FileBucket files are stored. /var/puppet/bucket

ca_days (ca)

How long a certificate should be valid. This parameter is deprecated, use ca_ttl instead

ca_md (ca)

The type of hash used in certificates. md5

ca_ttl (ca)

The default TTL for new certificates; valid values must be an integer, optionally followed by one of the units 'y' (years of 365 days), 'd' (days), 'h' (hours), or 's' (seconds). The unit defaults to seconds. If this parameter is set, ca_days is ignored. Examples are '3600' (one hour) and '1825d', which is the same as '5y' (5 years) 5y

cacert (ca)

The CA certificate. /etc/puppet/ssl/ca/ca_crt.pem

cacrl (ca)

The certificate revocation list (CRL) for the CA. Set this to 'none' if you do not want to use a CRL. /etc/puppet/ssl/ca/ca_crl.pem

cadir (ca)

The root directory for the certificate authority. /etc/puppet/ssl/ca

cakey (ca)

The CA private key. /etc/puppet/ssl/ca/ca_key.pem

capass (ca)

Where the CA stores the password for the private key /etc/puppet/ssl/ca/private/ca.pass

caprivatedir (ca)

Where the CA stores private certificate information. /etc/puppet/ssl/ca/private

capub (ca)

The CA public key. /etc/puppet/ssl/ca/ca_pub.pem

casesensitive (puppet)

Whether matching in case statements and selectors should be case-sensitive. Case insensitivity is handled by downcasing all values before comparison.

cert_inventory (ca)

A Complete listing of all certificates /etc/puppet/ssl/ca/inventory.txt

certdir (certificates)

The certificate directory. /etc/puppet/ssl/certs

classfile (puppetd)

The file in which puppetd stores a list of the classes associated with the retrieved configuratiion. Can be loaded in the separate puppet executable using the --loadclasses option. /etc/puppet/classes.txt

clientbucketdir (filebucket)

Where FileBucket files are stored locally. /var/puppet/clientbucket

color (puppet)

Whether to use colors when logging to the console. Valid values are ansi (equivalent to true), html (mostly used during testing with TextMate), and false, which produces no color. ansi

confdir (puppet)

The main Puppet configuration directory. /etc/puppet

config (puppetdoc)

The configuration file for puppetdoc. /etc/puppet/puppetdoc.conf

configprint (puppet)

Print the value of a specific configuration parameter. If a parameter is provided for this, then the value is printed and puppet exits. Comma-separate multiple values. For a list of all values, specify 'all'. This feature is only available in Puppet versions higher than 0.18.4.

csrdir (ca)

Where the CA stores certificate requests /etc/puppet/ssl/ca/requests

dbadapter (puppetmaster)

The type of database to use. sqlite3

dblocation (puppetmaster)

The database cache for client configurations. Used for querying within the language. /var/puppet/state/clientconfigs.sqlite3

dbmigrate (puppetmaster)

Whether to automatically migrate the database.

dbname (puppetmaster)

The name of the database to use. puppet

dbpassword (puppetmaster)

The database password for Client caching. Only used when networked databases are used. puppet

dbserver (puppetmaster)

The database server for Client caching. Only used when networked databases are used. localhost

dbuser (puppetmaster)

The database user for Client caching. Only used when networked databases are used. puppet

evaltrace (transaction)

Whether each resource should log when it is being evaluated. This allows you to interactively see exactly what is being done.

external_nodes (puppet)

An external command that can produce node information. The first line of output must be either the parent node or blank, and if there is a second line of output it should be a list of whitespace-separated classes to include on that node. This command makes it straightforward to store your node mapping information in other data sources like databases. For unknown nodes, the commands should exit with an exit code of 1. none

factdest (puppet)

Where Puppet should store facts that it pulls down from the central server. /var/puppet/facts

factpath (puppet)

Where Puppet should look for facts. Multiple directories should be colon-separated, like normal PATH variables. /var/puppet/facts

factsignore (puppet)

What files to ignore when pulling down facts. .svn CVS

factsource (puppet)

From where to retrieve facts. The standard Puppet file type is used for retrieval, so anything that is a valid file source can be used here. puppet://puppet/facts

factsync (puppet)

Whether facts should be synced with the central server.

fileserverconfig (fileserver)

Where the fileserver configuration is stored. /etc/puppet/fileserver.conf

filetimeout (puppet)

The minimum time to wait between checking for updates in configuration files. 15

genconfig (puppet)

Whether to just print a configuration to stdout and exit. Only makes sense when used interactively. Takes into account arguments specified on the CLI.

genmanifest (puppet)

Whether to just print a manifest to stdout and exit. Only makes sense when used interactively. Takes into account arguments specified on the CLI.

graph (puppet)

Whether to create dot graph files for the different configuration graphs. These dot files can be interpreted by tools like OmniGraffle or dot (which is part of ImageMagick).

graphdir (puppet)

Where to store dot-outputted graphs. /var/puppet/state/graphs

group (puppetmasterd)

The group puppetmasterd should run as. puppet

hostcert (certificates)

Where individual hosts store and look for their certificates. /etc/puppet/ssl/certs/culain.madstop.com.pem

hostprivkey (certificates)

Where individual hosts store and look for their private key. /etc/puppet/ssl/private_keys/culain.madstop.com.pem

hostpubkey (certificates)

Where individual hosts store and look for their public key. /etc/puppet/ssl/public_keys/culain.madstop.com.pem

httplog (puppetd)

Where the puppetd web server logs. /var/puppet/log/http.log

ignoreschedules (puppetd)

Boolean; whether puppetd should ignore schedules. This is useful for initial puppetd runs.

keylength (ca)

The bit length of keys. 1024

ldapattrs (ldap)

The LDAP attributes to use to define Puppet classes. Values should be comma-separated. puppetclass

ldapbase (ldap)

The search base for LDAP searches. It's impossible to provide a meaningful default here, although the LDAP libraries might have one already set. Generally, it should be the 'ou=Hosts' branch under your main directory.

ldapnodes (ldap)

Whether to search for node configurations in LDAP.

ldapparentattr (ldap)

The attribute to use to define the parent node. parentnode

ldappassword (ldap)

The password to use to connect to LDAP.

ldapport (ldap)

The LDAP port. Only used if ldapnodes is enabled. 389

ldapserver (ldap)

The LDAP server. Only used if ldapnodes is enabled. ldap

ldapssl (ldap)

Whether SSL should be used when searching for nodes. Defaults to false because SSL usually requires certificates to be set up on the client side.

ldapstring (ldap)

The search string used to find an LDAP node. (&(objectclass=puppetClient)(cn=%s))

ldaptls (ldap)

Whether TLS should be used when searching for nodes. Defaults to false because TLS usually requires certificates to be set up on the client side.

ldapuser (ldap)

The user to use to connect to LDAP. Must be specified as a full DN.

lexical (puppet)

Whether to use lexical scoping (vs. dynamic).

listen (puppetd)

Whether puppetd should listen for connections. If this is true, then by default only the runner server is started, which allows remote authorized and authenticated nodes to connect and trigger puppetd runs.

localcacert (certificates)

Where each client stores the CA certificate. /etc/puppet/ssl/certs/ca.pem

localconfig (puppetd)

Where puppetd caches the local configuration. An extension indicating the cache format is added automatically. /etc/puppet/localconfig

lockdir (puppet)

Where lock files are kept. /var/puppet/locks

logdir (puppet)

The Puppet log directory. /var/puppet/log

manifest (puppetmasterd)

The entry-point manifest for puppetmasterd. /etc/puppet/manifests/site.pp

manifestdir (puppetmasterd)

Where puppetmasterd looks for its manifests. /etc/puppet/manifests

masterhttplog (puppetmasterd)

Where the puppetmasterd web server logs. /var/puppet/log/masterhttp.log

masterlog (puppetmasterd)

Where puppetmasterd logs. This is generally not used, since syslog is the default log destination. /var/puppet/log/puppetmaster.log

masterport (puppetmasterd)

Which port puppetmasterd listens on. 8140

mkusers (puppet)

Whether to create the necessary user and group that puppetd will run as.

node_name (puppetmasterd)

How the puppetmaster determines the client's identity and sets the 'hostname' fact for use in the manifest, in particular for determining which 'node' statement applies to the client. Possible values are 'cert' (use the subject's CN in the client's certificate) and 'facter' (use the hostname that the client reported in its facts) cert

noop (puppetd)

Whether puppetd should be run in noop mode.

paramcheck (ast)

Whether to validate parameters during parsing. true

parseonly (puppetmasterd)

Just check the syntax of the manifests.

passfile (certificates)

Where puppetd stores the password for its private key. Generally unused. /etc/puppet/ssl/private/password

path (puppet)

The shell search path. Defaults to whatever is inherited from the parent process. none

plugindest (puppet)

Where Puppet should store plugins that it pulls down from the central server. /var/puppet/plugins

pluginpath (puppet)

Where Puppet should look for plugins. Multiple directories should be colon-separated, like normal PATH variables. /var/puppet/plugins

pluginsignore (puppet)

What files to ignore when pulling down plugins. .svn CVS

pluginsource (puppet)

From where to retrieve plugins. The standard Puppet file type is used for retrieval, so anything that is a valid file source can be used here. puppet://puppet/plugins

pluginsync (puppet)

Whether plugins should be synced with the central server.

privatedir (certificates)

Where the client stores private certificate information. /etc/puppet/ssl/private

privatekeydir (certificates)

The private key directory. /etc/puppet/ssl/private_keys

publickeydir (certificates)

The public key directory. /etc/puppet/ssl/public_keys

puppetdlockfile (puppetd)

A lock file to temporarily stop puppetd from doing anything. /var/puppet/state/puppetdlock

puppetdlog (puppetd)

The log file for puppetd. This is generally not used. /var/puppet/log/puppetd.log

puppetport (puppetd)

Which port puppetd listens on. 8139

railslog (puppetmaster)

Where Rails-specific logs are sent /var/puppet/log/rails.log

report (puppetd)

Whether to send reports after every transaction.

reportdir (reporting)

The directory in which to store reports received from the client. Each client gets a separate subdirectory. /var/puppet/reports

reports (reporting)

The list of reports to generate. All reports are looked for in puppet/reports/.rb, and multiple report names should be comma-separated (whitespace is okay). store

reportserver (puppetd)

The server to which to send transaction reports. puppet

req_bits (ca)

The bit length of the certificates. 2048

rrddir (metrics)

The directory where RRD database files are stored. Directories for each reporting host will be created under this directory. /var/puppet/rrd

rrdgraph (metrics)

Whether RRD information should be graphed.

rrdinterval (metrics)

How often RRD should expect data. This should match how often the hosts report back to the server. 1800

rundir (puppet)

Where Puppet PID files are kept. /var/puppet/run

runinterval (puppetd)

How often puppetd applies the client configuration; in seconds 1800

serial (ca)

Where the serial number for certificates is stored. /etc/puppet/ssl/ca/serial

server (puppetd)

The server to which server puppetd should connect puppet

setpidfile (puppet)

Whether to store a PID file for the daemon. true

signeddir (ca)

Where the CA stores signed certificates. /etc/puppet/ssl/ca/signed

ssldir (puppet)

Where SSL certificates are kept. /etc/puppet/ssl

statedir (puppet)

The directory where Puppet state is stored. Generally, this directory can be removed without causing harm (although it might result in spurious service restarts). /var/puppet/state

statefile (puppet)

Where puppetd and puppetmasterd store state associated with the running configuration. In the case of puppetmasterd, this file reflects the state discovered through interacting with clients. /var/puppet/state/state.yaml

storeconfigs (puppetmaster)

Whether to store each client's configuration. This requires ActiveRecord from Ruby on Rails.

syslogfacility (puppet)

What syslog facility to use when logging to syslog. Syslog has a fixed list of valid facilities, and you must choose one of those; you cannot just make one up. daemon

tags (transaction)

Tags to use to find resources. If this is set, then only resources tagged with the specified tags will be applied. Values must be comma-separated.

templatedir (puppet)

Where Puppet looks for template files. /var/puppet/templates

trace (puppet)

Whether to print stack traces on some errors

typecheck (ast)

Whether to validate types during parsing. true

usecacheonfailure (puppetd)

Whether to use the cached configuration when the remote configuration will not compile. This option is useful for testing new configurations, where you want to fix the broken configuration rather than reverting to a known-good one. true

user (puppetmasterd)

The user puppetmasterd should run as. puppet

vardir (puppet)

Where Puppet stores dynamic and growing data. /var/puppet


This page autogenerated on Fri Jan 05 16:38:58 CST 2007