puppet

Module to manage puppet(agent(3)or 4), puppet-server

Matt Nicholson

sjoeboo

15,125 downloads

10,893 latest version

2.8 quality score

Version information

  • 0.9.0 (latest)
  • 0.8.8
  • 0.8.7
  • 0.8.6
  • 0.8.5
  • 0.8.4
  • 0.8.3
  • 0.8.2
  • 0.8.1
released Aug 12th 2016
This version is compatible with:
  • Puppet Enterprise 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.2.0
  • RedHat
    ,
    CentOS
    ,
    Ubuntu

Start using this module

Documentation

sjoeboo/puppet — version 0.9.0 Aug 12th 2016

DISCLAIMER

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.

Table of Contents

  1. Overview
  2. Module Description - What the module does and why it is useful
  3. Setup - The basics of getting started with puppet
  4. Usage - Configuration options and additional functionality
  5. Reference - An under-the-hood peek at what the module is doing and how
  6. Limitations - OS compatibility, etc.
  7. TODO
  8. Development - Guide for contributing to the module
  9. Changelog/Contributors

Overview

A puppet module to manage puppet-agent(or puppet) and puppetserver (the closure server, not ruby).

Module Description

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

Setup

What puppet affects

  • 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

Beginning with puppet

This module can be installed with

  puppet module install sjoeboo-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

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 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

#####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

Reference

Classes

Public Classes

  • puppet: Entry point for configuring the module

Private Classes

  • puppet::agent: Controlls ordering and notfications for agent manipulation
  • puppet::agent::install: Installs puppet-agent
  • puppet::agent::config: Manages agent configuration
  • puppet::agent::service: Manages agent service and cron entries
  • puppet::common: Common packages and settings for agent and server
  • puppet::params: Default parameters for the puppet class
  • puppet::server: Controlls ordering and notifications for server manipulation
  • puppet::server::install: Manages the server packages and paths
  • puppet::server::config: Manages the server configuration
  • puppet::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

  • Generic agent/common/master config hashes to allow setting and config value?
  • Add a 100% optional bit to install repos for you?

Development

Improvements and bug fixes are greatly appreciated. See the contributing guide for information on adding and validating tests for PRs.

Changelog / Contributors

Changelog

Contributors