Installing Puppet: Red Hat Enterprise Linux (and Derivatives)

This version is out of date. For current versions, see Puppet packages and versions.

Note: This document covers open source releases of Puppet version 3.8 and lower. For current versions, you should see instructions for installing the latest version of Puppet or installing Puppet Enterprise.


Before installing Puppet, review the pre-install tasks.

Supported Versions

Puppet publishes and tests open-source Puppet 3.8 packages for the following versions of Red Hat Enterprise Linux (RHEL) to

  • Enterprise Linux 7
  • Enterprise Linux 6
  • Enterprise Linux 5
  • Enterprise Linux 4

This also applies to any distributions that maintain binary compatibility with RHEL, including but not limited to CentOS, Scientific Linux, and Oracle Linux.

Puppet Enterprise support: PE 3.8 supports 32-bit and 64-bit agents on these versions of RHEL and compatibile operating systems, but doesn’t support masters on Enterprise Linux 4 and 5, or on 32-bit architectures.

To install on other operating systems, see the product navigation.

Step 1: Enable Dependencies (RHEL Only)

CentOS and other community forks have several packages Puppet depends on in their main repos, but RHEL itself is split into channels. If you’re installing Puppet on RHEL, you’ll want to make sure the “optional” channel is enabled. Instructions are available here.

Step 2: Enable the Puppet Package Repository

The newest versions of Puppet can be installed from the package repository.

To enable the repository, run the command below that corresponds to your OS version:

Enterprise Linux 7

$ sudo rpm -ivh

Enterprise Linux 6

$ sudo rpm -ivh

Enterprise Linux 5

$ sudo rpm -ivh

Optionally: Enable Prereleases

To test release candidate (RC) versions of Puppet and related projects, you can enable the prerelease repo, which is disabled by default. Note that RCs can contain unexpected changes, so be careful.

After installing the repos, open your /etc/yum.repos.d/puppetlabs.repo file for editing. Locate the [puppetlabs-devel] stanza, and change the value of the enabled key from 0 to 1:

name=Puppet Labs Devel <%= @dist.capitalize -%> <%= @version -%> - $basearch
baseurl=<%= @dist.downcase -%>/<%= @codename -%>/devel/$basearch

To disable the prerelease repo, change the value back to 0.

Step 3: Install Puppet on the Puppet Master Server

(Skip this step for a standalone deployment.)

On your Puppet masters, run:

sudo yum install puppetserver

This installs Puppet and an init script (/etc/init.d/puppetmaster) that runs a test-quality Puppet master server.

Do not start the Puppet master service yet.


Note: Read our tips on upgrading before upgrading your Puppet deployment.

To upgrade a Puppet master to the latest version of Puppet 3, run:

sudo puppet resource package puppet-server ensure=latest

After upgrading, restart the Puppet master web server.

Step 4: Install Puppet on Agent Nodes

On your other nodes, run sudo yum install puppet. This will install Puppet and an init script (/etc/init.d/puppet) for running the puppet agent daemon.

Do not start the puppet service yet.


Note: Be sure to read our tips on upgrading before upgrading your whole Puppet deployment.

To upgrade a Puppet agent to the latest version of Puppet 3, run:

sudo puppet resource package puppet ensure=latest

After upgrading, restart the puppet service.


At this point, Puppet is installed, but it isn’t configured or running. You should now do the post-install tasks.

Puppet sites use proprietary and third-party cookies. By using our sites, you agree to our cookie policy.