Docs / Using the Puppet Labs Package Repositories

Using the Puppet Labs Package Repositories

Puppet Labs maintains official package repositories for several of the more popular Linux distributions. To make the repos more predictable, we version them as “Puppet Collections” — each collection has all of the software you need to run a functional Puppet deployment, in versions that are known to work well with each other. Each collection is opt-in, so if you’re running ensure => latest, you’ll get the latest in the collection you’re using. Whenever we make significant breaking changes that introduce incompatibilities between versions of our software, we make a new collection so that you can do major upgrades at your convenience.

Puppet Labs also maintains package repositories for older versions of PuppetDB, MCollective, Puppet Server and several pre-requisites and add-ons for Puppet Labs products. You can also enable package repositories for older Puppet 3.x and Facter 2.x.

This page explains how to enable these repositories on their supported operating systems.

Our repositories will be maintained for the life of the corresponding operating system and available for one month after their end-of-life date.

Using Puppet Collections

Puppet Collections are numbered with integers, beginning with PC1. The higher the integer, the newer the collection.

Yum-based Systems

The yum.puppetlabs.com repository supports the following versions of RHEL and derivatives:

We publish official packages and run automated testing on the following versions for Puppet 4.x:

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, and Oracle Linux.

We publish official packages and run automated testing on the following versions for Puppet 4.x:

  • Fedora 20
  • Fedora 21

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

Enterprise Linux 7

$ sudo rpm -ivh https://yum.puppetlabs.com/puppetlabs-release-pc1-el-7.noarch.rpm

Enterprise Linux 6

$ sudo rpm -ivh https://yum.puppetlabs.com/puppetlabs-release-pc1-el-6.noarch.rpm

Enterprise Linux 5

$ sudo rpm -ivh https://yum.puppetlabs.com/puppetlabs-release--pc1el-5.noarch.rpm

Fedora 20

$ sudo rpm -ivh https://yum.puppetlabs.com/puppetlabs-release-pc1-fedora-20.noarch.rpm

Fedora 21

$ sudo rpm -ivh https://yum.puppetlabs.com/puppetlabs-release-pc1-fedora-21.noarch.rpm

Apt-based Systems

The apt.puppetlabs.com repository supports the following OS versions:

We publish official packages and run automated testing on the following versions for Puppet 4.x:

  • Debian 7 “Wheezy” (current stable release)
  • Ubuntu 14.10 “Warty Warthog”
  • Ubuntu 14.04 LTS “Trusty Tahr”
  • Ubuntu 12.04 LTS “Precise Pangolin”

To enable the repository:

  1. Download the “puppetlabs-release-pc1” package for 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-pc1-<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.
  2. Install the package by running dpkg -i <PACKAGE NAME>.
  3. Run apt-get update to get the new list of available packages.

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

wget https://apt.puppetlabs.com/puppetlabs-release-pc1-precise.deb
sudo dpkg -i puppetlabs-release-pc1-precise.deb
sudo apt-get update

To enable the repository for Ubuntu 14.04 Trusty Tahr:

wget https://apt.puppetlabs.com/puppetlabs-release-pc1-trusty.deb
sudo dpkg -i puppetlabs-release-pc1-trusty.deb
sudo apt-get update

Pre-4.0 Open Source Repositories

Use these repositories to install older, specific versions of open source releases of Puppet, Facter, MCollective, PuppetDB, and more. After enabling the repo, follow the instructions for installing Puppet.

Yum-based Systems Repository

The yum.puppetlabs.com repository supports the following versions of Red Hat Enterprise Linux and distributions based on it:

We publish official packages and run automated testing on the following versions:

Puppet Enterprise also supports RHEL 4, which does not receive packages for open source Puppet.

(Note that RHEL 5 requires an updated Ruby ≥ 1.8.7 from our yum repo.)

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:

Enterprise Linux 7

$ sudo rpm -ivh https://yum.puppetlabs.com/puppetlabs-release-el-7.noarch.rpm

Enterprise Linux 6

$ sudo rpm -ivh https://yum.puppetlabs.com/puppetlabs-release-el-6.noarch.rpm

Enterprise Linux 5

$ sudo rpm -ivh https://yum.puppetlabs.com/puppetlabs-release-el-5.noarch.rpm

The yum.puppetlabs.com repository supports the following Fedora versions:

We publish official packages and run automated testing on the following versions:

  • Fedora 20

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

Fedora 20

$ sudo rpm -ivh https://yum.puppetlabs.com/puppetlabs-release-fedora-20.noarch.rpm

Apt-based Systems Repository

The apt.puppetlabs.com repository supports the following OS versions:

We publish official packages and run automated testing on the following versions:

To enable the repository:

  1. Download the “puppetlabs-release” package for 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.
  2. Install the package by running dpkg -i <PACKAGE NAME>.
  3. Run apt-get update to get the new list of available packages.

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

wget https://apt.puppetlabs.com/puppetlabs-release-precise.deb
sudo dpkg -i puppetlabs-release-precise.deb
sudo apt-get update

To enable the repository for Ubuntu 14.04 Trusty Tahr:

wget https://apt.puppetlabs.com/puppetlabs-release-trusty.deb
sudo dpkg -i puppetlabs-release-trusty.deb
sudo apt-get update

Using the Nightly Repos

We provide automatic nightly repositories, and you can use them to test pre-release builds. These repos are available at https://nightlies.puppetlabs.com/.

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 make nightly repos for Puppet Server, Puppet Agent, and PuppetDB. We also have nightly packages for older Puppet 3.x and Facter 2.x.

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

  1. Make sure you’ve enabled the main Puppet Labs repos, as described above.
  2. In a web browser, go to https://nightlies.puppetlabs.com/. Choose the repository you want; this will be either <PRODUCT>-latest, or <PRODUCT>/<COMMIT>.
  3. 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.
  4. Download that .repo file into the system’s /etc/yum.repos.d/ directory. For example:

     $ cd /etc/yum.repos.d
     $ sudo wget https://nightlies.puppetlabs.com/puppet/30e4febe85e24c278a2830530965871dc3c0eec1/repo_configs/rpm/pl-puppet-30e4febe85e24c278a2830530965871dc3c0eec1-el-7-x86_64.repo
    
  5. Upgrade or install the product as usual.

Enabling Nightly Repos on Apt-based Systems

  1. Make sure you’ve enabled the main Puppet Labs repos, as described above.
  2. In a web browser, go to https://nightlies.puppetlabs.com/. Choose the repository you want; this will be either <PRODUCT>-latest, or <PRODUCT>/<COMMIT>.
  3. Click through to your repository’s repo_configs/deb directory, and identify the .list file that applies to your operating system; this will usually be something like pl-puppet-<COMMIT>-precise.list.
  4. Download that .list file into the system’s /etc/apt/sources.list.d/ directory. For example:

     $ cd /etc/apt/sources.list.d
     $ sudo wget https://nightlies.puppetlabs.com/puppet/30e4febe85e24c278a2830530965871dc3c0eec1/repo_configs/deb/pl-puppet-30e4febe85e24c278a2830530965871dc3c0eec1-precise.list
    
  5. Be sure to run sudo apt-get update.
  6. Upgrade or install the product as usual.

↑ Back to top