Version information
This version is compatible with:
- Puppet Enterprise 2023.8.x, 2023.7.x, 2023.6.x, 2023.5.x, 2023.4.x, 2023.3.x, 2023.2.x, 2023.1.x, 2023.0.x, 2021.7.x, 2021.6.x, 2021.5.x, 2021.4.x, 2021.3.x, 2021.2.x, 2021.1.x, 2021.0.x, 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 < 9.0.0
- Scientific, RedHat, Debian
Start using this module
Add this module to your Puppetfile:
mod 'tskirvin-puppet', '1.4.4'
Learn more about managing modules with a PuppetfileDocumentation
puppet-puppet
This puppet module is meant to manage /etc/puppet/puppet.conf and its family. It provides hooks for rsyslog + logrotate, and is configurable via hiera.
This module began life as a merge between some old puppet code, the ghoneycutt puppet module, and a lot of local custom work. It's currently in production across at least two sites, one large (~2700 nodes) and one small (~3 nodes).
Classes
puppet::agent
Manages the puppet agent. This means either running the service as a daemon (default), or via cron on a regular basis.
Parameters:
cron_command Command to run if we are running via cron. There is a
default, and I do not use it much so somebody should
look at it in more detail.
cron_user User to run the cronjob as; defaults to 'root'.
cron_run_at_boot Set this if you're running in 'cron' mode.
cron_run_in_noop If set, we won't actually make any changes. Defaults to
false.
cron_run_interval If running via cron, how often should we run? Defaults
to 30 (minutes).
cron_earliest_hour Don't run the cronjob before this hour (except for boot)
cron_latest_hour Don't run the cronjob after this hour (except for boot)
daemon_name If we are running as a daemon, what is the daemon name?
Defaults to 'puppet'.
run_method Pick one of: 'service' or 'cron'; default is 'service'
puppet::config
Manages /etc/puppet/puppet.conf
. It is meant for configuration via hiera.
There are puppet-strings-compatible docs included; a few specific useful
parameters should provide some flavor:
agent Should we configure the puppet agent variables?
Defaults to true.
certname Maps to the certname field in [main]. Defaults to $facts['networking']['fqdn']
enc Are we using an external node classifier? If so, set
this to the right script name. Defaults to 'false'.
env Default puppet environment; required.
env_timeout 180 (seconds)
is_ca Am I the Certificate Authority? Corresponds to the 'ca'
field. Defaults to false.
log_level What severity should puppet use? Defaults to 'notice'.
master Should we configure the puppet master variables?
Defaults to false.
no_warnings Array of strings from which to ignore warnings; maps to the
'disable_warnings' field. Empty by default.
runinterval How often should the puppet daemon run? Defaults to unset.
runtimeout What is the max runtime any catalog should have?
run_in_noop If set, don't make any changes with a puppet run.
Defaults to false.
server The main puppet server name. Required, no default.
splaylimit How much random time should we add to runinterval?
Defaults to unset.
strict https://puppet.com/docs/puppet/5.5/configuration.html#strict
use_puppetdb If set, turns on puppetdb for storeconfigs. Defaults
to off.
puppet::puppetserver, puppet::puppetserver::java
Start the puppetserver
process. Currently not very configurable.
puppet::syslog
Set up syslog to log to /var/log/puppet.log
(configurable).
Prerequisites
- puppetlabs/stdlib
Unreleased
Current
[1.4.4]
- config.pp - switching from $::fqdn to help with puppet 8
- puppetserver.pp - processorcount to $facts['processor']['count']
- templates/puppetserver-webserver.erb - fqdn fixes again
- README updates to match
[1.4.3]
spec/classes/puppetserver_java_spec.rb
- lint cleanup- updated to work with PDK 1.15 (was 1.10)
puppet::config
- can now setenv_timeout
tounlimited
[1.4.2]
-
puppetserver::java
- no longer setting Xms or Xmx parameters (they're no longer "required" in modern puppets after 6.1 or so) -
puppet::agent
- when using an agent, actually set theensure
parameter had been configured (h/t @hammondr)
[1.4.1]
puppetserver::java
- matching^JAVA_ARGS=
instead ofJAVA_ARGS
because the latter matches multiple things now.
[1.4.0]
- Adding 'ReservedCodeCache' size values to java args on puppet servers, as per https://puppet.com/docs/puppetserver/6.1/known_issues.html
[1.3.2]
- removing explicit connection to saz/rsyslog. Trying to handle things manually for now.
[1.3.1]
- If
agent
is not set, then you also don't needenv
orserver
. This can come in handy for server-less setups. - Reworked test suite for pdk 1.8.0 and modern Ruby.
strict_variables
added to puppet::config (by Morre morre@mor.re)
[1.3.0]
puppet::config
- added lots of new parameters (mostly from Pat Riehecky riehecky@fnal.gov) -proxy_host
,configtimeout
,log_level
,runinterval
,runtimeout
,show_diff
,splaylimit
,strict
puppet::agent
- cron-options are now much more powerful and usefulpuppet::config
- removedtrusted_server_facts
puppet::puppetserver
now does more things, but isn't as configurable; this is what I've been using upstream for a while though.puppet::puppetserver::java
provides some java tuning options- Significantly better test suite (pdk 1.7.0)
[1.2.0]
- Puppet 4 support
puppet::config
- lots of new parameters, especiallyextra_master
,extra_main
, andextra_agent
- removed
manifests/master.pp
andmanifests/master/*
as no longer useful manifests/puppetserver.pp
exists in basic form- syslog stuff moved from
agent.pp
tosyslog.pp
- Test suite works in modern world
[1.1.1]
- Documentation fixes
- Documenting explicit support for RedHat instead of just Scientific Linux
- metadata.json - updates to better match upstream standards
[1.1.0]
-
Wrote a full test suite.
-
Re-factored all modules in association with the test suite, to make the testing easier and more consistent.
-
Documentation fixes
-
top-level puppet manifest - now loads puppet::config
-
puppet::agent
- added 'cron_user' parameter
- logdir is now a boolean instead of an empty string
-
puppet::config
- removed parameters: 'basedir', 'modules'
- changed from default 'UNSET' to empty string: 'ca_server', 'enc', 'reporturl'
- explicitly checking the input values: 'env', 'port', 'server', 'timeout'
- puppet.conf is explicitly less-verbose
-
puppet::master
- removed parameters: 'contact', 'hiera'
- no longer manage /etc/puppet/tagmail.conf
-
puppet::master::mod_passenger
- renamed parameter 'basedir' to 'rackdir'
- no longer require package 'rake'
- manage Service['puppetmaster'] locally
- disabling SSLv3 in the passenger fragment
-
puppet::master::webrick
- removed parameter 'is_ca'
- manage Service['puppetmaster'] locally
[1.0.0]
- First public version.
Dependencies
- puppetlabs/stdlib (>= 4.5.1 < 6.0.0)
Copyright (C) 2013- Tim Skirvin <tskirvin@fnal.gov> 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.