Version information
This version is compatible with:
- Puppet Enterprise 2019.8.x, 2019.7.x, 2019.5.x, 2019.4.x, 2019.3.x, 2019.2.x, 2019.1.x, 2019.0.x, 2018.1.x, 2017.3.x, 2017.2.x, 2017.1.x, 2016.5.x, 2016.4.x
- Puppet >= 4.7.0 < 7.0.0
- , , ,
Start using this module
Add this module to your Puppetfile:
mod 'ghoneycutt-puppet', '3.3.0'
Learn more about managing modules with a PuppetfileDocumentation
puppet-module-puppet
Table of Contents
Module description
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
tofalse
, 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.
Dependencies
For version ranges, please see metadata.json.
Compatibility
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.
- EL 6
Class Descriptions
Class puppet
Description
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'
.
Parameters
certname (type: String)
The certificate name for the client.
- Default: $::fqdn
run_every_thirty (type: Variant[Enum['true', 'false'], Boolean])
Determines if a cron job to run the puppet agent every thirty minutes should be present.
- Default: true
run_in_noop (type: Variant[Enum['true', 'false'], Boolean])
Determines if the puppet agent should run in noop mode. This is done by
appending '--noop' to the cron_command
parameter.
- Default: true
cron_command (type: String)
Command that will be run from cron for the puppet agent.
- Default: '/opt/puppetlabs/bin/puppet agent --onetime --no-daemonize --no-usecacheonfailure --detailed-exitcodes --no-splay'
run_at_boot (type: Variant[Enum['true', 'false'], Boolean])
Determine if a cron job should present that will run the puppet agent at boot time.
- Default: true
config_path (type: String)
The absolute path to the puppet config file.
- Default: /etc/puppetlabs/puppet/puppet.conf
server (type: String)
The name of the puppet server.
- Default: 'puppet'
ca_server (type: String)
The name of the puppet CA server.
- Default: 'puppet'
env (type: String)
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.
- Default: $environment
graph (type: Variant[Enum['true', 'false'], Boolean])
Value of the graph option in puppet.conf.
- Default: false
agent_sysconfig_path (type: String)
The absolute path to the puppet agent sysconfig file.
- Default: '/etc/sysconfig/puppet'
custom_settings (type: Hash)
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.
- Default: {}
Example:
$custom_settings = {
'name' => { 'section' => 'master', 'setting' => 'codedir', 'value' => '/specific/path' },
'other' => { 'section' => 'agent', 'setting' => 'server', 'value' => 'specific.server.local' },
}
Class puppet::server
Manages the puppetserver.
ca (type: Variant[Enum['true', 'false'], Boolean])
Determines if the system is a puppet CA (certificate authority). There should be only one CA per cluster of puppet masters.
- Default: false
autosign_entries (type: Variant[Array[String, 1], Undef])
Optional array of entries that will be autosigned.
- Default: undef
sysconfig_path (type: String)
The absolute path to the puppetserver sysconfig file.
- Default: '/etc/sysconfig/puppetserver'
memory_size (type: String /^\d+(m|g)$/)
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.
- Default: '2g'
enc (type: Optional[String])
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'.
- Default: undef
dns_alt_names (type: Optional[String])
Value of the dns_alt_names option in puppet.conf.
- Default: undef
Change Log
v3.3.0
Merged pull requests:
- Support Puppet 5 & 6 #144 (Phil-Friderici)
- Add possibility to manage any additional puppet.conf settings #143 (Phil-Friderici)
v3.2.1 (2019-01-27)
Closed issues:
- ignorecache setting in $cron_command let newer Puppet agent fail #141
- Is dependency on puppetlabs-inifile still necessary? #139
Merged pull requests:
- Fix $cron_command #142 (Phil-Friderici)
- (Maint) CI testing - Allow newest hiera gem #134 (ghoneycutt)
v3.2.0 (2017-06-05)
Merged pull requests:
- Remove deprecated params #132 (ghoneycutt)
v2.20.1 (2017-03-29)
v2.20.0 (2017-03-29)
Merged pull requests:
- Add ability to specify configtimeout option in the agent config #131 (ghoneycutt)
v3.1.0 (2017-01-23)
Merged pull requests:
- Add parameter env #130 (ghoneycutt)
v3.0.2 (2017-01-11)
Closed issues:
- Why is running as a service no longer an option? #125
Merged pull requests:
- Puppetserver sysconfig #128 (ghoneycutt)
- Fix gem dependencies for testing #127 (ghoneycutt)
v3.0.1 (2016-11-02)
Merged pull requests:
- Add rubocop testing and conform to its style recommendations #124 (ghoneycutt)
- Add rake task for github_changelog_generator #123 (ghoneycutt)
- Support puppet v4.8.0 #122 (ghoneycutt)
v3.0.0 (2016-11-02)
Closed issues:
- Add support for manifest ordering for agent #71
- Module doesn't seen to ensure service is running #46
Merged pull requests:
- Release v3.0.0 - Transition to Puppet v4 #121 (ghoneycutt)
v2.19.0 (2016-07-13)
Merged pull requests:
- Puppetv4 agent #119 (ghoneycutt)
v2.18.1 (2016-07-12)
Merged pull requests:
- Fix testing #120 (ghoneycutt)
v2.18.0 (2016-04-29)
Merged pull requests:
- Dont recursively cleanup master maintenance #118 (ghoneycutt)
- Allow configuration of the number of max requests handled per puppet … #114 (dfairhurst)
v2.17.1 (2016-04-28)
Merged pull requests:
- Modernize #117 (ghoneycutt)
v2.17.0 (2015-11-25)
Closed issues:
- What's the purpose of $puppet::agent::env? #109
- hardcoded maintenance jobs avoids using specific settings #101
Merged pull requests:
- parameterize ssldir in puppet agent's config #113 (Phil-Friderici)
- Fixup metadata #112 (ghoneycutt)
- Changed outdated type-function to is_\<type> #111 (Phil-Friderici)
v2.16.0 (2015-08-18)
Merged pull requests:
- make hardcoded commands really flexible #102 (Phil-Friderici)
v2.15.0 (2015-02-20)
Merged pull requests:
- Disable master maintenance cronjobs #99 (ghoneycutt)
2.14.4 (2015-02-20)
Merged pull requests:
- Support Ruby v2.1.0 #98 (ghoneycutt)
v2.14.3 (2015-02-13)
Merged pull requests:
- Improve spec tests for maintenance class #96 (ghoneycutt)
v2.14.2 (2014-12-20)
Merged pull requests:
- Travis-ci use containers for faster builds #94 (ghoneycutt)
- Support run_interval larger than 30 #93 (ghoneycutt)
v2.14.1 (2014-12-10)
Closed issues:
- Default reportdir_purge_command does not work #73
- need for specific uid/gid for Puppet user #42
- when changing from NOOP to OP old cronjob is not deleted #41
- hardcoded cron_command when run_in_noop is active #40
- style - puppet::agent has quoted booleans #23
Merged pull requests:
v2.14.0 (2014-11-25)
Merged pull requests:
- Style - Fix indentation of attribute arrows #90 (ghoneycutt)
- Manage mysql options #89 (ghoneycutt)
- Fix linebreaks puppetconf #86 (ghoneycutt)
v2.13.1 (2014-10-15)
Merged pull requests:
- Disable SSLv3 as it is insecure #84 (ghoneycutt)
v2.13.0 (2014-10-09)
Merged pull requests:
v2.12.0 (2014-10-06)
Merged pull requests:
- Add support for etckeeper #83 (ghoneycutt)
- Add masterport to agent config #82 (ghoneycutt)
v2.11.3 (2014-10-01)
Merged pull requests:
- V370 #77 (ghoneycutt)
v2.11.2 (2014-09-05)
Merged pull requests:
- Metadata #76 (ghoneycutt)
v2.11.1 (2014-06-10)
Closed issues:
- Dependency on puppet-module-common #66
Merged pull requests:
- Add dependency of ghoneycutt/common to metadata #69 (ghoneycutt)
- replaced dead links for dashboard #68 (aviau)
v2.11.0 (2014-06-03)
Merged pull requests:
- Stringify facts #65 (ghoneycutt)
v2.10.0 (2014-06-01)
Merged pull requests:
- Add environment fact #64 (ghost)
- Specify version of apache to use in fixtures #61 (ghoneycutt)
v2.9.3 (2014-01-31)
Merged pull requests:
- Support Puppet v3.4 and Ruby v2.0.0 #57 (ghoneycutt)
v2.9.2 (2014-01-23)
Merged pull requests:
- Remove Travis work around for ruby v1.8.7 #56 (ghoneycutt)
v2.9.1 (2014-01-21)
Merged pull requests:
- Refactor to allow booleans in parameters. #55 (ghoneycutt)
v2.9.0 (2014-01-10)
Merged pull requests:
- Add ability to to clean up the reports directory #54 (ghoneycutt)
v2.8.0 (2014-01-03)
Merged pull requests:
- Set run method to disable #53 (ghoneycutt)
- Support rspec-puppet v1.0.0 #51 (ghoneycutt)
v2.7.0 (2013-12-06)
Merged pull requests:
- Support Suse 11 #49 (ghoneycutt)
- Improve spec testing #48 (ghoneycutt)
v2.6.1 (2013-11-11)
Closed issues:
- "-":6: bad command when setting up an agent #25
Merged pull requests:
- Release v2.6.0 - Debian Support #39 (ghoneycutt)
- Only define Cron['puppet_agent_once_at_boot'] if $run_method == 'cron' #37 (tekenny)
v2.5.3 (2013-11-10)
Merged pull requests:
- Fix bug with running puppet::master on Debian #38 (ghoneycutt)
v2.5.2 (2013-11-08)
v2.5.1 (2013-11-08)
Merged pull requests:
- Update mysql #36 (ghoneycutt)
v2.5.0 (2013-11-08)
Merged pull requests:
- Add Support for Solaris to puppet::agent #35 (ghoneycutt)
v2.4.0 (2013-11-08)
Merged pull requests:
- Cleanup dashboard reports #32 (ghoneycutt)
v2.3.0 (2013-11-08)
Merged pull requests:
- Symlink merge #34 (ghoneycutt)
v2.2.0 (2013-11-08)
Closed issues:
- Could not find dependency File[httpd_vdir] #29
Merged pull requests:
- Refactor spec tests #31 (ghoneycutt)
v2.1.3 (2013-09-29)
v2.1.2 (2013-09-27)
Closed issues:
- cron job to dump database has permission error #17
Merged pull requests:
- Update travis to test syntax validation and lint. #24 (ghoneycutt)
- Secure dashboard #22 (ghoneycutt)
v2.1.1 (2013-09-22)
Closed issues:
Merged pull requests:
- Note needed sudoers entry in README for cron jobs #21 (ghoneycutt)
- Fix dump_dashboard_database and redirect output #19 (kentjohansson)
- Show status of Travis-ci in README #16 (ghoneycutt)
- Differentiate between Dashboard server and not. #15 (ghoneycutt)
v2.1.0 (2013-06-14)
Closed issues:
- documentation is incomplete #10
- puppetmaster service #4
- documentation is incomplete #3
- is it possible to use git to store puppet conf? #1
Merged pull requests:
- Add option to use htpasswd for Dashboard. #14 (ghoneycutt)
- Spec tests #13 (kividiot)
- Update of documentation #12 (kividiot)
- Add documentation #8 (ghoneycutt)
- Ensure puppetmaster service is not started at boot time #7 (ghoneycutt)
- Removed stopping of puppetmaster #6 (MWinther)
- Basic documentation #5 (MWinther)
- Rebirth #2 (ghoneycutt)
* This Change Log was automatically generated by github_changelog_generator
Dependencies
- puppetlabs/cron_core (>= 1.0.0 <2.0.0)
- puppetlabs/inifile (>= 1.6.0 < 2.0.0)
- puppetlabs/stdlib (>= 4.6.0 < 6.0.0)
Copyright (C) 2010-2017 Garrett Honeycutt <code@garretthoneycutt.com> Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.