Forge Home


Setup the EPEL package repo


9,689 latest version

3.5 quality score

We run a couple of automated
scans to help you access a
module's quality. Each module is
given a score based on how well
the author has formatted their
code and documentation and
modules are also checked for
malware using VirusTotal.

Please note, the information below
is for guidance only and neither of
these methods should be considered
an endorsement by Puppet.

Version information

  • 0.1.0 (latest)
released Jun 10th 2014

Start using this module

  • r10k or Code Manager
  • Bolt
  • Manual installation
  • Direct download

Add this module to your Puppetfile:

mod 'zerlgi-epel', '0.1.0'
Learn more about managing modules with a Puppetfile

Add this module to your Bolt project:

bolt module add zerlgi-epel
Learn more about using this module with an existing project

Manually install this module globally with Puppet module tool:

puppet module install zerlgi-epel --version 0.1.0

Direct download is not typically how you would use a Puppet module to manage your infrastructure, but you may want to download the module in order to inspect the code.

Tags: redhat, rhel, linux, epel


zerlgi/epel — version 0.1.0 Jun 10th 2014

Configure EPEL (Extra Repository for Enterprise Linux)


This module basically just mimics the epel-release rpm. The same repos are enabled/disabled and the GPG key is imported. In the end you will end up with the EPEL repos configured.

The following Repos will be setup and enabled by default:

  • epel

Other repositories that will setup but disabled (as per the epel-release setup)

  • epel-debuginfo
  • epel-source
  • epel-testing
  • epel-testing-debuginfo
  • epel-testing-source


If you have an http proxy required to access the internet, you can use either a class parameter in the epel class, or edit the $proxy variable in the params.pp file. By default no proxy is assumed.


I am a big fan of EPEL. I actually was one of the people who helped get it going. I am also the owner of the epel-release package, so in general this module should stay fairly up to date with the official upstream package.

I just got sick of coding Puppet modules and basically having an assumption that EPEL was setup or installed. I can now depend on this module instead.

I realize it is fairly trivial to get EPEL setup. Every now-and-then however the path to epel-release changes because something changes in the package (mass rebuild, rpm build macros updates, etc). This module will bypass the changing URL and just setup the package mirrors.

This does mean that if you are looking for RPM macros that are normally included with EPEL release, this will not have them.

Futher Information


  • This is commonly used on Puppet Enterprise 3.x
  • This was tested using Puppet 3.3.0 on Centos5/6
  • This was tested using Puppet 3.1.1 on Amazon's AWS Linux
  • I assume it will work on any RHEL variant


  • No functionality has been introduced that should break Puppet 2.6 or 2.7, but I am no longer testing these versions of Puppet as they are end-of-lifed from Puppet Labs.
  • RHEL 7 beta is out. Once EPEL 7 beta is out, I'll be testing/updating this module as well.

Unit tests

Install the necessary gems

bundle install

Run the RSpec and puppet-lint tests

bundle exec rake ci

System tests

If you have Vagrant >=1.1.0 you can also run system tests:

RSPEC_SET=centos-64-x64 bundle exec rake spec:system

Available RSPEC_SET options are in .nodeset.yml


Apache Software License 2.0