Table of Contents
- 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
Overview
A puppet module to manage puppet-agent and puppetserver (the closure server, not ruby).
Module Description
This is a puppet module to manage puppet >= 4.0.0 and puppetserver >= 2.0.0.
Currently acceptance tests are a bit wonky due to beaker's inability to handle puppet AIO packages
Setup
What puppet affects
- puppet and puppetserver services
- cron entry (if desired) for scheduled puppet runs
- /etc/puppetlabs/puppet/, /etc/puppetlabs/puppetserver/
Beginning with puppet
This module can be installed with
puppet module install jlambert121-puppet
Usage
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 Configuration
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
Defaul: 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
environment
String. Environment for this agent
Default: production
Server Configuration
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
}
}
manage_hiera
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
Reference
Classes
Public Classes
puppet
: Entry point for configuring the module
Private Classes
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
Limitations
General
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
TODO
- [ ] Add /opt/puppetlabs/bin to PATH
- [ ] Support setting environment_timeout
- [ ] Support configuring autosign
Development
Improvements and bug fixes are greatly appreciated. See the contributing guide for information on adding and validating tests for PRs.