Forge Home

puppet

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

18,958 downloads

14,113 latest version

2.8 quality score

We run a couple of automated
scans to help you access a
module's quality. Each module is
given a score based on how well
the author has formatted their
code and documentation and
modules are also checked for
malware using VirusTotal.

Please note, the information below
is for guidance only and neither of
these methods should be considered
an endorsement by Puppet.

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 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.2.0
  • , ,

Start using this module

  • r10k or Code Manager
  • Bolt
  • Manual installation
  • Direct download

Add this module to your Puppetfile:

mod 'sjoeboo-puppet', '0.9.0'
Learn more about managing modules with a Puppetfile

Add this module to your Bolt project:

bolt module add sjoeboo-puppet
Learn more about using this module with an existing project

Manually install this module globally with Puppet module tool:

puppet module install sjoeboo-puppet --version 0.9.0

Direct download is not typically how you would use a Puppet module to manage your infrastructure, but you may want to download the module in order to inspect the code.

Download

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