Forge Home


Bolt plans used to deploy an at-scale Puppet Enterprise architecture


85 latest version

4.7 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

  • 3.16.1 (latest)
  • 3.16.0
  • 3.15.1
  • 3.15.0
  • 3.14.0
  • 3.13.1
  • 3.13.0
  • 3.12.0
  • 3.11.1
  • 3.11.0
  • 3.10.0
  • 3.9.0
  • 3.8.0
  • 3.7.0
  • 3.6.0
  • 3.5.0
  • 3.4.0
  • 3.3.0
  • 3.2.0
  • 3.1.0
  • 3.0.1
  • 3.0.0
  • 2.5.0
  • 2.4.5
  • 2.4.4
  • 2.4.3
  • 2.4.2
  • 2.4.1
  • 2.4.0
  • 2.3.0
  • 2.2.1
  • 2.2.0
  • 2.1.1
  • 2.1.0
released Nov 23rd 2023
This version is compatible with:
  • Puppet Enterprise 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
  • Puppet >= 7.0.0 < 9.0.0
  • , , ,
  • agent_install
  • backup_classification
  • cert_data
  • cert_valid_status
  • code_manager
  • code_sync_status
  • divert_code_manager
  • and 23 more. See all tasks
  • add_compiler
  • add_database
  • add_replica
  • backup_ca
  • convert
  • install
  • divert_code_manager
  • and 21 more. See all plans

Start using this module

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

Add this module to your Puppetfile:

mod 'puppetlabs-peadm', '3.16.1'
Learn more about managing modules with a Puppetfile

Add this module to your Bolt project:

bolt module add puppetlabs-peadm
Learn more about using this module with an existing project

Manually install this module globally with Puppet module tool:

puppet module install puppetlabs-peadm --version 3.16.1

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.



puppetlabs/peadm — version 3.16.1 Nov 23rd 2023

Puppet Enterprise (pe) Administration (adm) Module

This Puppet module contains Bolt plans used to deploy and manage Puppet Enterprise infrastructure. Plans are provided to automate common lifecycle activities in order to increase velocity and reduce the possibility of human error incurred by manually performing these activities.

The peadm module is able to deploy and manage Puppet Enterprise 2019.7 and higher for Standard, Large, and Extra Large architectures.

Table of Contents

Expectations and support

While the peadm module was initially built by the Puppet Solutions Architecture team to streamline particularly large and complex Puppet Enterprise deployments, but has matured to a point where we believe that users with a reasonable understanding of Puppet Enterprise architecture can use it on their own.

As a Puppet Enterprise customer this tool is supported through Puppet Enterprise's standard and premium service, and if you have questions or need assistance, you are welcome to reach out to your Support team for help, or to talk to your Sales or Technical Account Manager contacts to arrange a chat with one of us on the Solutions Architect team.

We also love contributions! We're more than happy to also chat about any ideas you may have for improving this module, or offer guidance on ways you could get involved.


The normal usage pattern for peadm is as follows.

  1. Users set up a Bolt host from which they can run peadm plans. The Bolt host can be any machine that has ssh access to all of the PE nodes.
  2. Users run the peadm::install plan to bootstrap a new PE cluster. Depending on the architecture chosen, peadm may create some node groups in the classifier to set parameters on the built-in puppet_enterprise module, tuning it for large or extra large architectures.
  3. Users use and operate their PE cluster as normal. The peadm module is not used again until the next upgrade.
  4. When it is time to upgrade, users run the peadm::upgrade plan from their Bolt host to accelerate and aid in the upgrade process.

What peadm affects

  • The peadm::install plan adds a number of custom OID trusted facts to the certificates of PE infrastructure nodes as it deploys them. These trusted facts are later used by the plans to quickly and correctly identify nodes in particular roles.
  • Up to four node groups may be created to help configure puppet_enterprise class parameters for PE infrastructure roles. The most notable configuration is the designation of compilers as being either "A" or "B" nodes for availability.

What peadm does not affect

  • The peadm module is not required to exist or be present outside of the point(s) in time it is used to create a new PE cluster, or upgrade an existing cluster. No new Puppet classes or other persistent content not provided out-of-box by PE itself is applied to PE infrastructure nodes by the peadm module.
  • Having used the peadm module to install or to upgrade a PE cluster is not known to affect or curtail the ability to use any normal, documented PE procedures, e.g. failover to a replica, or manual upgrade of a cluster.


  • Puppet Enterprise 2019.8.1 or newer (tested with PE 2021.7)
  • Bolt 3.17.0 or newer (tested with Bolt 3.21.0)
  • EL 7, EL 8, Ubuntu 18.04, or Ubuntu 20.04
  • Classifier Data enabled. This PE feature is enabled by default on new installs, but can be disabled by users if they remove the relevant configuration from their global hiera.yaml file. See the PE docs for more information.


Follow the links below to usage instructions for each peadm plan.


Information from the Puppet documentation site that will help you understand which architecture is right for you.

Documentation pertaining to additional uses of peadm.

Getting Help

  • If you find bugs with this module, please make use of issues in the project on GitHub
  • If you are a Puppet Enterprise (PE) customer that uses peadm to manage a deployment of PE and are currently having an outage or need assistance troubleshooting another issue, e.g. upgrades, contact the Support Team


This codebase is licensed under Apache 2.0. However, the open source dependencies included in this codebase might be subject to other software licenses such as AGPL, GPL2.0, and MIT.