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. 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.

Open Source Repositories

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

For Red Hat Enterprise Linux and Derivatives

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 http://yum.puppetlabs.com/puppetlabs-release-el-7.noarch.rpm

Enterprise Linux 6

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

Enterprise Linux 5

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

For Debian and Ubuntu

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

For Fedora

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

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

  • Fedora 19
  • Fedora 20

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

Fedora 19

$ sudo rpm -ivh http://yum.puppetlabs.com/puppetlabs-release-fedora-19.noarch.rpm

Fedora 20

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

Using the Nightly Repos

We provide automatic nightly repositories, and you can use them to test pre-release builds. These repos are available at http://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 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

  1. Make sure you’ve enabled the main Puppet Labs repos, as described above.
  2. In a web browser, go to http://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 http://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 http://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 http://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.

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:

# Puppetlabs devel (uncomment to activate)
deb http://apt.puppetlabs.com precise devel
# deb-src http://apt.puppetlabs.com precise devel

To disable the prerelease repo, re-comment the line.

On Fedora, RHEL, and Derivatives

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:

[puppetlabs-devel]
name=Puppet Labs Devel <%= @dist.capitalize -%> <%= @version -%> - $basearch
baseurl=http://yum.puppetlabs.com/<%= @dist.downcase -%>/<%= @codename -%>/devel/$basearch
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-puppetlabs
enabled=1
gpgcheck=1

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

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:

Enterprise Linux 5

i386
$ sudo rpm -ivh https://yum-enterprise.puppetlabs.com/el/5/extras/i386/puppetlabs-enterprise-release-extras-5-2.noarch.rpm
x86_64
$ sudo rpm -ivh https://yum-enterprise.puppetlabs.com/el/5/extras/x86_64/puppetlabs-enterprise-release-extras-5-2.noarch.rpm

Enterprise Linux 6

i386
$ sudo rpm -ivh https://yum-enterprise.puppetlabs.com/el/6/extras/i386/puppetlabs-enterprise-release-extras-6-2.noarch.rpm
x86_64
$ sudo rpm -ivh https://yum-enterprise.puppetlabs.com/el/6/extras/x86_64/puppetlabs-enterprise-release-extras-6-2.noarch.rpm

For Debian and Ubuntu

The apt-enterprise.puppetlabs.com repository supports Debian 6 (“Squeeze”), Ubuntu 10.04 LTS, and Ubuntu 12.04 LTS.

To enable the repository, run the commands below:

$ wget http://apt-enterprise.puppetlabs.com/puppetlabs-enterprise-release-extras_1.0-2_all.deb
$ sudo dpkg -i puppetlabs-enterprise-release-extras_1.0-2_all.deb
$ sudo apt-get update

↑ Back to top