This module started as a fork of jlambert121-puppet, for some fixes/additions, and has since diverged enough I wanted to publish it on its own. This is an awesome module and was already pretty complete when I started to augment it. Credit for 99% of it should go to the original author. I'm simply adding features I need in a production environment.
- Overview
- Module Description - What the module does and why it is useful
- Setup - The basics of getting started with puppet
- Usage - Configuration options and additional functionality
- Reference - An under-the-hood peek at what the module is doing and how
- Limitations - OS compatibility, etc.
- TODO
- Development - Guide for contributing to the module
- Changelog/Contributors
A puppet module to manage puppet-agent(or puppet) and puppetserver (the closure server, not ruby).
This is a puppet module to manage puppet(puppet 3.x and 4.x) and puppetserver >= 2.0.0
Currently acceptance tests are a bit wonky due to beaker's inability to handle puppet AIO packages
- puppet and puppetserver services
- cron entry (if desired) for scheduled puppet runs
- /etc/puppetlabs/puppet/, /etc/puppetlabs/puppetserver/, maybe /etc/puppet if using a puppet3 agent
This module can be installed with
puppet module install sjoeboo-puppet
Basic usage only managing puppet and the puppetmaster at "puppet.${::domain}"
class { 'puppet': }
Setting up a puppetserver node (with agent running as daemon)
class { 'puppet':
runmode => 'service',
server => true,
}
###Parameters
#####agent
Boolean. Whether or not the agent should be installed
Default: true
#####puppet_version
String. Version of the puppet agent to install
Default: latest
#####ca_server
String. Hostname of the CA server to be used by the agent
Default: undef
#####use_srv_records
Boolean. Whether or not to use DNS SRV records
Default: false
#####srv_domain
String. Domain to use for DNS SRV records
Default: undef
#####runmode
Enum['cron', 'service', 'none']. How the puppet agent runs should be scheduled.
Default: cron
#####runinterval
String. Frequency of agent checkins if runmode is 'service'. No effect otherwise.
Default: 30m
#####environment
String. Environment for this agent
Default: production
#####server
Boolean. Whether or not the server should be installed
Default: false
#####dns_alt_names
Array[String]. Alternative DNS names for this server
Default: undef
#####fileserver_conf
Hash[String, Hash[String, String]]. Fileserver mounts to configure
Default: undef
The format of this value is:
{
mountpoint => {
parameter => value
}
}
Boolean. Whether or not this module should manage the hiera.yaml file
Default: true
#####hiera_source
String. Source for hiera.yaml to install. Will enable hiera lookups on the server
Default: undef
#####jruby_instances
Integer. Number of JRuby instances to start up inside the puppetserver JVM
Default: $::processors[count]-1
Note: if this value is not >= 1, then this is defaulted to 1.
#####server_puppetdb
Boolean. Whether or not puppetdb termini and route configuration should be installed
Default: false
#####server_puppetdb_port
Integer. Port puppetdb is listening on.
Default: 8081
#####server_puppetdb_server
String. Hostname where puppetdb is running. Required if puppetdb => true
Default: undef
#####server_puppetdb_version
String. Version of puppetdb-termini to install.
Default: latest
#####server_ca_enabled
Boolean. Whether or not to enable the CA server
Default: true
#####server_certname
String. Allow overriding certname
Default: undef
#####server_java_opts
String. Java options for puppet server
Default: -Xms2g -Xmx2g -XX:MaxPermSize=256m
#####server_log_dir
String. Location of puppetserver logs
Default: /var/log/puppetserver
#####server_log_file
String. Name of puppetserver logfile
Default: puppetserver.log
#####server_reports
Array[String]. List of reports to enable
Default: undef
#####server_version
String. Version of puppetserver to install.
Default: latest
#####use_legacy_auth
Boolean. Whether to use the deprecated /etc/puppetlabs/puppet/auth.conf (true) or the new /etc/puppetlabs/puppetserver/conf.d/auth.conf (false).
Default: false
#####server_ssl_cert
String. Path to server ssl certificate (see https://docs.puppetlabs.com/puppetserver/2.2/config_file_webserver.html)
Default: undef
#####server_ssl_key
String. Path to server ssl key (see https://docs.puppetlabs.com/puppetserver/2.2/config_file_webserver.html)
Default: undef
#####server_ssl_ca_cert
String. Path to server ssl CA certificate (see https://docs.puppetlabs.com/puppetserver/2.2/config_file_webserver.html)
Default: undef
#####server_ssl_cert_chain
String. Path to server ssl certificate chain (see https://docs.puppetlabs.com/puppetserver/2.2/config_file_webserver.html)
Default: undef
#####server_ssl_crl_path
String. Path to server ssl CRL (see https://docs.puppetlabs.com/puppetserver/2.2/config_file_webserver.html)
Default: undef
#####webserver_opts
Hash. Hash of webserver.conf options, its up to you to make sure they're "Real"
https://docs.puppetlabs.com/puppetserver/2.2/config_file_webserver.html)
Default: undef
puppet
: Entry point for configuring the module
puppet::agent
: Controlls ordering and notfications for agent manipulationpuppet::agent::install
: Installs puppet-agentpuppet::agent::config
: Manages agent configurationpuppet::agent::service
: Manages agent service and cron entriespuppet::common
: Common packages and settings for agent and serverpuppet::params
: Default parameters for the puppet classpuppet::server
: Controlls ordering and notifications for server manipulationpuppet::server::install
: Manages the server packages and pathspuppet::server::config
: Manages the server configurationpuppet::server::service
: Manages the server service
This module is acceptance tested on CentOS 6.5, CentOS 7.0, Ubuntu 12.04, and Ubuntu 14.04. Feedback on other platforms/versions would be appreciated
- Generic agent/common/master config hashes to allow setting and config value?
- Add a 100% optional bit to install repos for you?
Improvements and bug fixes are greatly appreciated. See the contributing guide for information on adding and validating tests for PRs.