Puppet Module for managing Puppet
OTHER License
This module handles the various parts of puppet including the agent and puppetserver. It is highly opionated and does not seek to manage the agent and server in all ways that they can be configured and implemented.
The agent runs in noop by default. This is the safest way and ensures that changes are known by having to specify that you want to run in enforcing mode.
The agent does not run as a service. There is no good reason for running the service. Instead cron should be used to better manage how and when the agent runs.
By default the agent will run every thirty minutes from cron and the
minutes will be randomized using fqdn_rand() so they are consistent
per host. If you would like a different schedule, this is easily
disabled by setting run_every_thirty
to false
, in which case,
it is suggested that the schedule by specified in your profile.
The trusted_node_data option in puppet.conf is set to true.
This module is targeted at Puppet v4. If you need support for Puppet v3, please see the puppetv3 branch of this module. Which supports the agent, master (with apache/passenger), Puppet Dashboard and puppet-lint.
To use the agent, use include ::puppet
. If the system is also a
puppetserver, use include ::puppet::server
, which will also manage the
agent.
It uses puppetlabs/inifile to manage the entries in puppet.conf.
For version ranges, please see metadata.json.
Puppet v4 (Ruby 2.1.9), Puppet v5 (Ruby 2.4.1), and Puppet v6 (Ruby 2.5.1)
with the following platforms. Please consult the CI testing matrix in
.travis.yml
for more info. If you are looking for Puppet v3, please see
the puppetv3 branch.
puppet
Manages the puppet agent.
A note on types, Variant[Enum['true', 'false'], Boolean]
means that
boolean true
and false
are supported as well as stringified 'true'
and 'false'
.
The certificate name for the client.
Determines if a cron job to run the puppet agent every thirty minutes should be present.
Determines if the puppet agent should run in noop mode. This is done by
appending '--noop' to the cron_command
parameter.
Command that will be run from cron for the puppet agent.
Determine if a cron job should present that will run the puppet agent at boot time.
The absolute path to the puppet config file.
The name of the puppet server.
The name of the puppet CA server.
Value of environment option in puppet.conf which defaults to the
environment of the current puppet run. By setting this parameter, you
can specify an environment on the command line (puppet agent -t --environment foo
) and it will not trigger a change to the puppet.conf.
Value of the graph option in puppet.conf.
The absolute path to the puppet agent sysconfig file.
A hash that allows you to define and set any settings in puppet.conf. For each setting use a nested hash and provide the section and the name and value of the setting.
$custom_settings = {
'name' => { 'section' => 'master', 'setting' => 'codedir', 'value' => '/specific/path' },
'other' => { 'section' => 'agent', 'setting' => 'server', 'value' => 'specific.server.local' },
}
puppet::server
Manages the puppetserver.
Determines if the system is a puppet CA (certificate authority). There should be only one CA per cluster of puppet masters.
Optional array of entries that will be autosigned.
The absolute path to the puppetserver sysconfig file.
The amount of memory allocated to the puppetserver. This is passed to the Xms and Xmx arguments for java. It must be a whole number followed by the unit 'm' for MB or 'g' for GB.
The absolute path to an ENC. If this is set, it will be the value for the external_nodes option in puppet.conf and the node_terminus option will be set to 'exec'.
Value of the dns_alt_names option in puppet.conf.