Forge Home


Provide a curl|bash puppet install script for puppet masters


10,748 latest version

4.6 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.1.1 (latest)
released Dec 13th 2014
This version is compatible with:
  • , , , , ,

Start using this module

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

Add this module to your Puppetfile:

mod 'danieldreier-puppet_installer', '0.1.1'
Learn more about managing modules with a Puppetfile

Add this module to your Bolt project:

bolt module add danieldreier-puppet_installer
Learn more about using this module with an existing project

Manually install this module globally with Puppet module tool:

puppet module install danieldreier-puppet_installer --version 0.1.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.



danieldreier/puppet_installer — version 0.1.1 Dec 13th 2014

Puppet Agent Install Script

  1. Overview
  2. Module Description - What the module does and why it is useful
  3. Setup - The basics of getting started with puppet_installer
  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. Development - Guide for contributing to the module


Install and run puppet agents on new nodes by doing a curl | bash.

Module Description

This module is primarily a wrapper around a shell script that installs Puppet on most common platforms, then connects back to the puppet master for an initial agent run.

To facilitate that workflow, this module deploys the script, modestly templates it for your puppetmaster fqdn, then sets up an apache or nginx vhost to host the script.


What puppet_installer affects

  • Creates a folder in /etc/puppet/www to store the install script
  • Sets up an Apache or Nginx vhost

Setup Requirements

To do this in a secure way, you really should buy an SSL certificate and use it instead of piggybacking on your master's SSL cert like it does by default. You can get a cert for under $10/yr. Bbefore you have the node connected to the master, you have no way to trust the master's SSL certificate.

Beyond that, typing --insecure on each curl gets old quick.

Beginning with puppet_installer

At the most basic, you'll need something like:

include nginx

class {'::puppet_installer':
  master    => $::fqdn,
  webserver => 'nginx',
  www_root  => '/etc/puppet/www',
  ssl_cert  => "/var/lib/puppet/ssl/certs/${::fqdn}.pem",
  ssl_key   => "/var/lib/puppet/ssl/private_keys/${::fqdn}.pem",

This module is really intended to be used from the [puppetlabs-operations/puppet][puppet-puppet] module. However, I haven't gotten that PR merged yet, so you'll have to wait for further instructions.