Share +

Puppet Master   


Install a puppet Master Deploy

What is Puppet?

Puppet is an open source systems management tool for centralizing and automating configuration management.


This box installs a Puppet master to serve modules to be used by other instances which have Puppet agent installed in them.


  • Principle of least privilege. In agent/master Puppet, each agent only gets its own configuration, and is unable to see how other nodes are configured. With Puppet apply, it’s impractical to do this, so every node has access to complete knowledge about how your site is configured. Depending on how you’re configuring your systems, this can potentially raise the risks of horizontal privilege escalation.

  • Ease of centralized reporting and inventory. Agents send reports to the Puppet master by default, and the master can be configured with any number of report handlers to pass these on to other services. You can also connect the master to PuppetDB, a powerful tool for querying inventory and activity data. Puppet apply nodes handle their own information, so if you’re using PuppetDB or sending reports to another service, each node needs to be configured and authorized to connect to it.

  • Ease of updating configurations. Only the Puppet master server(s) have the Puppet modules, main manifests, and other data necessary for compiling catalogs. This means that when you need to update your systems’ configurations, you only need to update content on one (or a few) servers. In a decentralized Puppet apply deployment, you’ll need to sync new configuration code and data to every node.
    CPU and memory usage on managed machines. Since Puppet agent doesn’t compile its own catalogs, it uses fewer resources on the machines it manages, leaving them with more capacity for their designated tasks.

  • Need for a dedicated master server. The Puppet master takes on the performance load of compiling all catalogs, and it should usually be a dedicated machine with a fast processor, lots of RAM, and a fast disk. Not everybody wants to (or is able to) allocate that, and Puppet apply can get around the need for it.
    Need for good network connectivity. Agents need to be able to reach the Puppet master at a reliable hostname in order to configure themselves. If a system lives in a degraded or isolated network environment, you may want it to be more self-sufficient.

  • Security overhead. Agents and masters use HTTPS to secure their communications and authenticate each other, and every system involved needs an SSL certificate. Puppet includes a built-in CA to easily manage certificates, but it’s even easier to not manage them at all. (Of course, you’ll still need to manage security somehow, since you’re probably using Rsync or something to update Puppet content on every node.)


Deployment behavior

An instance executing this box will use bash scripting to download, install and configure a Puppet master server.
This box is to be used in an Agent/Master setup which consists of a central Puppet Master server, where all of your configuration data(modules) will be managed and distributed from, and all your remaining servers will be Puppet Agent nodes, which can be configured by the puppet master server.

Box events handle the Puppet master instance lifecycle as follows:

Install operation:

pre_install event script: downloads and installs the correct release of puppet master in the instance.

modules.git_repo.pre_install event script: installs the git package with the correct package manager for the linux distribution (rpm or apt-get).

Configure operation:

pre_configure event script: downloads and configures puppet.conf and site.pp with the variables's values and saves them into their default location: /etc/puppet/.

modules.git_repo.pre_configure event script: checks for an existing CLONE_DIRECTORY folder. If not it clones the repository of the CLONE_URL into the CLONE_DIRECTORY folder. If it exists, reset the remore url, branch and pulls latest code of the puppet modules.

Start operation:

pre_start event script: restart puppetmaster service.

Supported distributions

This deployment supports these Linux distributions:

  • Amazon Linux AMI 2015.03

  • Centos 6.5, 7

  • RedHat 7

  • Ubuntu 12.04, 14.04


Support for your software purchased via the Marketplace is rendered by the individual Software Provider. The CenturyLink Customer Care Team is unable to provide support for your software. However, if you are experiencing issues with the infrastructure that hosts your software, please open a ticket with Below you can find the contact information for support of this software.

End User License Agreement (EULA)

You Agree to the Provider Terms of Service Associated with this Software.
Not a customer? Register now.

Other Products by CAM




Cloud Application Manager OSS , Open Source

deployment models

  • Cloud Application Manager

operating systems

  • CentOS 5
  • CentOS 6
  • Debian 6
  • RedHat Enterprise Linux 7
  • Ubuntu 12
  • Ubuntu 14