Puppet Labs maintains official package repositories for several of the more popular Linux distributions. These repos contain the latest available packages for Puppet, Facter, PuppetDB, Puppet Dashboard, MCollective, and several prerequisites and add-ons for Puppet Labs products.

We also maintain repositories for Puppet Enterprise 2.8.x users. These repos contain additional PE components, as well as modified packages for tools like PuppetDB which will integrate more smoothly with PE’s namespaced installation layout. Note these only apply to users of PE 2.8. In PE 3.x, PuppetDB and other components are already integrated.

This page explains how to enable these repositories on all of the supported operating systems.

Our repositories will be maintained for the life of the corresponding operating system and available for three months after their end of life date. So if an operating system goes end of life on July 15, our repositories for that operating system will still be available until October 15.

This information applies to RHEL itself, as well as any distributions that maintain binary compatibility with it, including but not limited to CentOS, Scientific Linux, Oracle Linux, and Ascendos.

Enabling this repository will let you install Puppet in Enterprise Linux 5 without requiring any other external repositories like EPEL. For Enterprise Linux 6, we recommend that you enable the Optional Channel for dependencies.

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

You can see a full list of these packages on the front page of https://apt.puppetlabs.com/. They are all named puppetlabs-release-<CODE NAME>.deb. (For Ubuntu releases, the code name is the adjective, not the animal.)

Architecture is handled automatically; there is only one package per OS version.

Install the package by running dpkg -i <PACKAGE NAME>.

Run apt-get update to get the new list of available packages.

For example, to enable the repository for Ubuntu 12.04 Precise Pangolin:

Using the Nightly Repos

The nightly repos require that you also have the standard Puppet Labs repos enabled.

Nightly?

Our automated systems will only create new “nightly” repos for builds that pass our acceptance testing on the most popular platforms. This means there will sometimes be a skipped day.

Contents of a Nightly Repo

Each nightly repo only contains a single product. Currently, we only make nightly repos for Puppet, Facter, and PuppetDB.

Latest vs. Specific Commit

There are two kinds of nightly repo for each product:

The “-latest” repo stays around forever, and always contains the latest build. It will have new packages every day or two. These repos are good for persistent canary systems.

The other repos are all named after a specific Git commit. They contain a single build, so you can reliably install the same version on many systems. These repos are good for testing a specific build you’re interested in; for example, if you want to help test an impending release announced on the puppet-users list.

A single-commit repo will get deleted a week or two after it is created, so if you want to keep the packages available, you should import them into your local repository.

Enabling Nightly Repos on Yum-based Systems

Make sure you’ve enabled the main Puppet Labs repos, as described above.

Click through to your repository’s repo_configs/rpm directory, and identify the .repo file that applies to your operating system; this will usually be something like pl-puppet-<COMMIT>-el-7-x86_64.repo.

Download that .repo file into the system’s /etc/yum.repos.d/ directory. For example:

Using the Prerelease Repos

Our open source repository packages also install a disabled prerelease repo, which contains release candidate versions of all Puppet Labs products. Enable this if you wish to test upcoming versions early, or if you urgently need a bug fix that has not gone into a final release yet.

Note: We plan to phase out the prerelease repos in favor of the new and more flexible nightly repos. (See above.) The nightlies are nicer because they’re single-serve; for example, you can enable a specific new version of Puppet without inviting in pre-release versions of everything.

On Debian and Ubuntu

After installing the repos, open your /etc/apt/sources.list.d/puppetlabs.list file for editing. Locate and uncomment the line that begins with deb and ends with devel:

Puppet Enterprise 2.8 Repositories

Use these repositories to install PE-compatible versions of PuppetDB and the Ruby development headers. These repositories should only be used with Puppet Enterprise 2.8 and earlier; PE 3 includes PuppetDB and the Ruby dev libraries by default.

For Red Hat Enterprise Linux and Derivatives

The yum-enterprise.puppetlabs.com repository supports versions 5 and 6 of Red Hat Enterprise Linux and distributions based on it, including but not limited to CentOS, Scientific Linux, and Ascendos. It contains additional components and add-ons compatible with Puppet Enterprise’s installation layout.

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