puppet-agent - The puppet agent daemon
Retrieves the client configuration from the Puppet master and
applies it to the local host.
This service may be run as a daemon, run periodically using cron
(or something similar), or run interactively for testing purposes.
puppet agent [--certname NAME]
[-D|--daemonize|--no-daemonize] [-d|--debug] [--detailed-exitcodes]
[--digest DIGEST] [--disable [MESSAGE]] [--enable] [--fingerprint]
[-h|--help] [-l|--logdest syslog|eventlog|ABS FILEPATH|console]
[--serverport PORT] [--noop] [-o|--onetime] [--sourceaddress
IP_ADDRESS] [-t|--test] [-v|--verbose] [-V|--version]
[-w|--waitforcert SECONDS]
This is the main puppet client. Its job is to retrieve the local
machine´s configuration from a remote server and apply it. In order
to successfully communicate with the remote server, the client must have a
certificate signed by a certificate authority that the server trusts; the
recommended method for this, at the moment, is to run a certificate
authority as part of the puppet server (which is the default). The client
will connect and request a signed certificate, and will continue connecting
until it receives one.
Once the client has a signed certificate, it will retrieve its
configuration and apply it.
´puppet agent´ does its best to find a compromise
between interactive use and daemon use. If you run it with no arguments and
no configuration, it goes into the background, attempts to get a signed
certificate, and retrieves and applies its configuration every 30
minutes.
Some flags are meant specifically for interactive use --- in
particular, ´test´, ´tags´ and
´fingerprint´ are useful.
´--test´ runs once in the foreground with verbose
logging, then exits. It also exits if it can´t get a valid catalog.
--test includes the ´--detailed-exitcodes´ option by
default and exits with one of the following exit codes:
- 0: The run succeeded with no changes or failures; the system was already
in the desired state.
- 1: The run failed, or wasn´t attempted due to another run already
in progress.
- 2: The run succeeded, and some resources were changed.
- 4: The run succeeded, and some resources failed.
- 6: The run succeeded, and included both changes and failures.
-
´--tags´ allows you to specify what portions of a
configuration you want to apply. Puppet elements are tagged with all of the
class or definition names that contain them, and you can use the
´tags´ flag to specify one of these names, causing only
configuration elements contained within that class or definition to be
applied. This is very useful when you are testing new configurations --- for
instance, if you are just starting to manage ´ntpd´, you would
put all of the new elements into an ´ntpd´ class, and call
puppet with ´--tags ntpd´, which would only apply that small
portion of the configuration during your testing, rather than applying the
whole thing.
´--fingerprint´ is a one-time flag. In this mode
´puppet agent´ runs once and displays on the console (and in
the log) the current certificate (or certificate request) fingerprint.
Providing the ´--digest´ option allows you to use a different
digest algorithm to generate the fingerprint. The main use is to verify that
before signing a certificate request on the master, the certificate request
the master received is the same as the one the client sent (to prevent
against man-in-the-middle attacks when signing certificates).
´--skip_tags´ is a flag used to filter resources. If
this is set, then only resources not tagged with the specified tags will be
applied. Values must be comma-separated.
Note that any Puppet setting that´s valid in the
configuration file is also a valid long argument. For example,
´server´ is a valid setting, so you can specify
´--server servername´ as an argument. Boolean settings
accept a ´--no-´ prefix to turn off a behavior, translating
into ´--setting´ and ´--no-setting´ pairs, such
as --daemonize and --no-daemonize.
See the configuration file documentation at
https://puppet.com/docs/puppet/latest/configuration.html for the full list
of acceptable settings. A commented list of all settings can also be
generated by running puppet agent with ´--genconfig´.
- --certname: Set the certname (unique ID) of the client. The master reads
this unique identifying string, which is usually set to the node´s
fully-qualified domain name, to determine which configurations the node
will receive. Use this option to debug setup problems or implement unusual
node identification schemes. (This is a Puppet setting, and can go in
puppet.conf.)
- --daemonize: Send the process into the background. This is the default.
(This is a Puppet setting, and can go in puppet.conf. Note the special
´no-´ prefix for boolean settings on the command line.)
- --no-daemonize: Do not send the process into the background. (This is a
Puppet setting, and can go in puppet.conf. Note the special
´no-´ prefix for boolean settings on the command line.)
- --debug: Enable full debugging.
- --detailed-exitcodes: Provide extra information about the run via exit
codes; works only if ´--test´ or ´--onetime´
is also specified. If enabled, ´puppet agent´ uses the
following exit codes:
- 0: The run succeeded with no changes or failures; the system was already
in the desired state.
- 1: The run failed, or wasn´t attempted due to another run already
in progress.
- 2: The run succeeded, and some resources were changed.
- 4: The run succeeded, and some resources failed.
- 6: The run succeeded, and included both changes and failures.
- --digest: Change the certificate fingerprinting digest algorithm. The
default is SHA256. Valid values depends on the version of OpenSSL
installed, but will likely contain MD5, MD2, SHA1 and SHA256.
- --disable: Disable working on the local system. This puts a lock file in
place, causing ´puppet agent´ not to work on the system
until the lock file is removed. This is useful if you are testing a
configuration and do not want the central configuration to override the
local state until everything is tested and committed.
- Disable can also take an optional message that will be reported by the
´puppet agent´ at the next disabled run.
- ´puppet agent´ uses the same lock file while it is running,
so no more than one ´puppet agent´ process is working at a
time.
- ´puppet agent´ exits after executing this.
- •
- --enable: Enable working on the local system. This removes any lock file,
causing ´puppet agent´ to start managing the local system
again However, it continues to use its normal scheduling, so it might not
start for another half hour.
- ´puppet agent´ exits after executing this.
- --evaltrace: Logs each resource as it is being evaluated. This allows you
to interactively see exactly what is being done. (This is a Puppet
setting, and can go in puppet.conf. Note the special ´no-´
prefix for boolean settings on the command line.)
- --fingerprint: Display the current certificate or certificate signing
request fingerprint and then exit. Use the ´--digest´ option
to change the digest algorithm used.
- --help: Print this help message
- --job-id: Attach the specified job id to the catalog request and the
report used for this agent run. This option only works when
´--onetime´ is used. When using Puppet Enterprise this flag
should not be used as the orchestrator sets the job-id for you and it must
be unique.
- --logdest: Where to send log messages. Choose between
´syslog´ (the POSIX syslog service),
´eventlog´ (the Windows Event Log), ´console´,
or the path to a log file. If debugging or verbosity is enabled, this
defaults to ´console´. Otherwise, it defaults to
´syslog´ on POSIX systems and ´eventlog´ on
Windows. Multiple destinations can be set using a comma separated list
(eg: /path/file1,console,/path/file2)"
- A path ending with ´.json´ will receive structured output in
JSON format. The log file will not have an ending ´]´
automatically written to it due to the appending nature of logging. It
must be appended manually to make the content valid JSON.
- A path ending with ´.jsonl´ will receive structured output
in JSON Lines format.
- --masterport: The port on which to contact the Puppet Server. (This is a
Puppet setting, and can go in puppet.conf. Deprecated in favor of the
´serverport´ setting.)
- --noop: Use ´noop´ mode where the daemon runs in a no-op or
dry-run mode. This is useful for seeing what changes Puppet would make
without actually executing the changes. (This is a Puppet setting, and can
go in puppet.conf. Note the special ´no-´ prefix for boolean
settings on the command line.)
- --onetime: Run the configuration once. Runs a single (normally daemonized)
Puppet run. Useful for interactively running puppet agent when used in
conjunction with the --no-daemonize option. (This is a Puppet setting, and
can go in puppet.conf. Note the special ´no-´ prefix for
boolean settings on the command line.)
- --serverport: The port on which to contact the Puppet Server. (This is a
Puppet setting, and can go in puppet.conf.)
- --sourceaddress: Set the source IP address for transactions. This defaults
to automatically selected. (This is a Puppet setting, and can go in
puppet.conf.)
- --test: Enable the most common options used for testing. These are
´onetime´, ´verbose´,
´no-daemonize´, ´no-usecacheonfailure´,
´detailed-exitcodes´, ´no-splay´, and
´show_diff´.
- --trace Prints stack traces on some errors. (This is a Puppet setting, and
can go in puppet.conf. Note the special ´no-´ prefix for
boolean settings on the command line.)
- --verbose: Turn on verbose reporting.
- --version: Print the puppet version number and exit.
- --waitforcert: This option only matters for daemons that do not yet have
certificates and it is enabled by default, with a value of 120 (seconds).
This causes ´puppet agent´ to connect to the server every 2
minutes and ask it to sign a certificate request. This is useful for the
initial setup of a puppet client. You can turn off waiting for
certificates by specifying a time of 0. (This is a Puppet setting, and can
go in puppet.conf.)
- --write_catalog_summary After compiling the catalog saves the resource
list and classes list to the node in the state directory named classes.txt
and resources.txt (This is a Puppet setting, and can go in
puppet.conf.)
-
$ puppet agent --server puppet.domain.com
Puppet agent accepts the following signals:
- SIGHUP
- Restart the puppet agent daemon.
- SIGINT and
SIGTERM
- Shut down the puppet agent daemon.
- SIGUSR1
- Immediately retrieve and apply configurations from the puppet master.
- SIGUSR2
- Close file descriptors for log files and reopen them. Used with
logrotate.
Copyright (c) 2011 Puppet Inc., LLC Licensed under the Apache 2.0
License