Forge Home

puppet

Puppet server installation and setup

6,771 downloads

54 latest version

5.0 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.23.0 (latest)
  • 0.22.5
  • 0.19.10
  • 0.19.3
  • 0.19.1
  • 0.14.0
  • 0.10.0
  • 0.8.0
  • 0.7.1
  • 0.6.1
  • 0.5.2
  • 0.4.3
  • 0.4.2
  • 0.4.1
  • 0.4.0
  • 0.3.6
  • 0.3.5
  • 0.3.4
  • 0.3.2
  • 0.3.1
  • 0.1.5
  • 0.1.3
released Oct 30th 2024
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
  • , ,
Tasks:
  • hostname
  • repo
Plans:
  • run
  • install
  • clean
  • hostname
  • bootstrap
  • clean
  • sign
  • and 5 more. See all plans

Start using this module

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

Add this module to your Puppetfile:

mod 'aursu-puppet', '0.23.0'
Learn more about managing modules with a Puppetfile

Add this module to your Bolt project:

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

Manually install this module globally with Puppet module tool:

puppet module install aursu-puppet --version 0.23.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

aursu/puppet — version 0.23.0 Oct 30th 2024

puppet

Table of Contents

  1. Description
  2. Setup - The basics of getting started with puppet
  3. Usage - Configuration options and additional functionality
  4. Limitations - OS compatibility, etc.
  5. Development - Guide for contributing to the module

Description

This Puppet module is primarily designed to manage the Puppet server itself, automating its configuration, deployment, and maintenance tasks. This ensures the Puppet server operates efficiently and remains up-to-date.

Additionally, the module includes functionality to manage the Puppet agent as well.

Setup

This module can be utilized in two primary ways:

  1. As a Regular Puppet Module (e.g., included in a Puppetfile)

    For direct inclusion in your Puppet environment, specify the module in your Puppetfile as follows:

    mod 'puppet',
      git: 'https://github.com/aursu/puppet-puppet.git',
      tag: 'v0.19.1'
    

    Alternatively, you can specify the version directly if it’s available from the module repository on Puppet Forge:

    mod 'aursu/puppet', '0.19.1'
    
  2. As a Puppet Server Bootstrap Tool Using Puppet Bolt

    The module includes a Bolt project located in the bootstrap/bolt subfolder. Within this project, there is a Bolt plan named puppet_bootstrap::server that is specifically designed for bootstrapping a Puppet server.

    Using this setup with Puppet Bolt facilitates a more efficient and straightforward installation process for the Puppet server. This method provides a predefined sequence of actions that automate much of the manual setup, streamlining the deployment of Puppet server environments. It also significantly reduces the complexity of the initial server configuration.

    Initiate the bootstrapping and subsequent Puppet agent run in the production environment with the following commands:

    bolt plan run puppet_bootstrap::server -t puppetservers
    bolt plan run puppet_agent::run -t puppetservers environment=production
    

    For a more detailed description, refer to the bootstrap directory.

What puppet affects

When integrated into a Puppet catalog to configure a Puppet server, the puppet module offers comprehensive control over several crucial configurations and components of both the Puppet server and the overall Puppet infrastructure:

Setup Requirements OPTIONAL

Beginning with puppet

Usage

r10k Cache Directory Setup

To configure a custom cache directory for r10k instead of the default (/var/cache/r10k, as defined in puppet::params), there are a few options:

  1. Define the r10k_cachedir parameter:

    • If the puppet::profile::server profile is in use, you can set the r10k_cachedir parameter to the desired cache directory.
    • Similarly, if the puppet::profile::puppet profile is in use, you can also define this parameter for that profile.
  2. Set the global variable puppet::globals::r10k_cachedir:

    • Alternatively, define the global variable puppet::globals::r10k_cachedir. This corresponds to the r10k_cachedir parameter in the puppet::globals class, allowing you to override the default cache directory across the entire configuration. This option is particularly useful when Bolt plans, such as puppet_bootstrap::server or puppet::server::bootstrap, are in use.

Adding r10k to Cron

To schedule the r10k command in cron, use the puppet::r10k_crontab_setup flag. Set this flag to true to enable the setup of r10k in the crontab.

Puppet Agent Bootstrap

The puppet::agent::bootstrap class is responsible for bootstrapping a Puppet node. It performs the following steps:

  1. First Run: It executes the puppet agent --test command to initiate the creation of a Puppet private key and request a certificate from the Puppet server.

  2. Subsequent Runs: On subsequent executions, it attempts to download the certificate from the Puppet server. If the certificate is not yet available, the agent will continue to attempt fetching it on each run until the certificate is successfully retrieved.

  3. Handling certname: If a certname is specified during the certificate request, the private key and certificate will be propagated into the appropriate locations using the fqdn (fully qualified domain name), if it differs from certname.

The Bolt plan puppet::bootstrap is available to automate the setup of Puppet agents on nodes. This plan performs the following tasks:

  1. Install Puppet Agent: It uses the puppet::agent::install Bolt plan to install the Puppet agent on the target node.

  2. Configure Puppet: It configures the puppet.conf file with the necessary settings, including the Puppet server name and, if provided, the certname.

  3. Run Bootstrap: Finally, it runs the puppet::agent::bootstrap Bolt plan to initiate the Puppet agent bootstrap process, which handles certificate requests and private key creation.

Limitations