Version information
This version is compatible with:
- Puppet Enterprise 2019.8.x, 2019.7.x, 2019.5.x, 2019.4.x, 2019.3.x, 2019.2.x, 2019.1.x, 2019.0.x, 2018.1.x, 2017.3.x, 2017.2.x, 2017.1.x, 2016.5.x, 2016.4.x
- Puppet >= 3.0.0 < 7.0.0
- , , , ,
Start using this module
Add this module to your Puppetfile:
mod 'yakatz-epel', '2.0.0'
Learn more about managing modules with a PuppetfileDocumentation
Configure EPEL (Extra Repository for Enterprise Linux)
This module if forked from https://github.com/stahnma/puppet-module-epel in order to release support for RHEL 8.
About
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
Usage
In nearly all cases, you can simply include epel or classify your nodes with the epel class. There are quite a few parameters available if you need to modify the default settings for the epel repository such as having your own mirror, an http proxy, or disable gpg checking.
You can also use a puppet one-liner to get epel onto a system.
puppet apply -e 'include epel'
Proxy
If you have a http proxy required to access the internet, you can use either a class parameter in the epel class (epel_proxy), or edit the $proxy variable in the params.pp file. By default no proxy is assumed.
Why?
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.
Further Information
ChangeLog
=======
1.3.1
- Remove an Epel::Rpm_gpg_key collector that could cause circular dependencies
1.3.0
-
Add ability to disable and not define any resources from this module. This is useful if another module pulls in this module, but you already have epel managed another way.
-
Ability to specify your own TLS certs
-
repo files are now templated instead of sourced.
-
properly use metalink vs mirrorlist
1.2.2
-
Add dep on stdlib for getvar function call
1.2.1
-
Minor fix that lets facter 1.6 still work
-
Enforce strict variables
1.2.0
-
Rework testing to use TravisCI
-
If you specify a baseurl, disable mirrorlist
1.1.1
-
Ensure that GPG keys are using short IDs (issue #33)
1.1.0
-
Default URLs to be https
-
Add ability to include/exclude packages
1.0.2
-
Update README with usage section.
-
Fix regression when os_maj_version fact was required
-
Ready for 1.0 - replace Modulefile with metadata.json
-
Replace os_maj_version custom fact with operatingsystemmajrelease
-
Works for EPEL7 now as well.
Testing
- 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 6.10.1 on CentOS 8
- This was tested using Puppet 3.1.1 on Amazon's AWS Linux
- This was tested using Puppet 3.8 and Puppet 4 now as well!
- Note Ruby 2.2 and Puppet 3.8 are not yet friends.
- I assume it will work on any RHEL variant (Amazon Linux is debatable as a variant)
- Amazon Linux compatability not promised, as EPEL doesn't always work with it.
Lifecycle
- 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.
- This also assumes a facter of greater than 1.7.0 -- at least from a testing perspective.
- I'm not actively fixing bugs for anything in facter < 2 or puppet < 3.8
Unit tests
Install the necessary gems
bundle install --path vendor --without system_tests
Run the RSpec and puppet-lint tests
bundle exec rake test
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
License
Apache Software License 2.0
Author/Contributors
- Aaron slapula@users.noreply.github.com
- Alex Harvey Alex_Harvey@amp.com.au
- Chad Metcalf metcalfc@gmail.com
- Ewoud Kohl van Wijngaarden e.kohlvanwijngaarden@oxilion.nl
- Jeffrey Clark jclark@nmi.com
- Joseph Swick joseph.swick@meltwater.com
- Matthaus Owens mlitteken@gmail.com
- Michael Hanselmann hansmi@vshn.ch
- Michael Stahnke stahnma@fedoraproject.org
- Michael Stahnke stahnma@puppet.com
- Michael Stahnke stahnma@puppetlabs.com
- Michael Stahnke stahnma@websages.com
- Mickaël Canévet mickael.canevet@camptocamp.com
- Nick Le Mouton nick@noodles.net.nz
- Pro Cabales proletaryo@gmail.com
- Proletaryo Cabales proletaryo@gmail.com
- Riccardo Calixte rcalixte@broadinstitute.org
- Robert Story rstory@localhost
- Rob Nelson rnelson0@gmail.com
- Siebrand Mazeland siebrand@kitano.nl
- Stefan Goethals stefan@zipkid.eu
- Tim Rupp caphrim007@gmail.com
- Toni Schmidbauer toni@stderr.at
- Trey Dockendorf treydock@gmail.com
- Troy Bollinger troy@us.ibm.com
- Vlastimil Holer holer@ics.muni.cz
Alternatives
If you're on CentOS 7 or CentOS 8, you can just yum install epel-release
as it's in centos-extras.
Reference
Table of Contents
Classes
epel
: Class epel Actions: Configure the proper repositories and import GPG keys Requires: You should probably be on an Enterprise Linux variaepel::params
: Optional parameters in setting up EPEL
Defined types
epel::rpm_gpg_key
: Define epel::rpm_gpg_key Actions: Import a RPM gpg key Parameters: [path] Path of the RPM GPG key to import Reqiures: You should
Classes
epel
Class epel
Actions: Configure the proper repositories and import GPG keys
Requires: You should probably be on an Enterprise Linux variant. (Centos, RHEL, Scientific, Oracle, Ascendos, et al)
Sample Usage: include epel
Parameters
The following parameters are available in the epel
class.
epel_mirrorlist
Data type: Any
Default value: $epel::params::epel_mirrorlist
epel_baseurl
Data type: Any
Default value: $epel::params::epel_baseurl
epel_failovermethod
Data type: Any
Default value: $epel::params::epel_failovermethod
epel_proxy
Data type: Any
Default value: $epel::params::epel_proxy
epel_enabled
Data type: Any
Default value: $epel::params::epel_enabled
epel_gpgcheck
Data type: Any
Default value: $epel::params::epel_gpgcheck
epel_managed
Data type: Any
Default value: $epel::params::epel_managed
epel_exclude
Data type: Any
Default value: undef
epel_includepkgs
Data type: Any
Default value: undef
epel_sslclientkey
Data type: Any
Default value: undef
epel_sslclientcert
Data type: Any
Default value: undef
epel_testing_mirrorlist
Data type: Any
Default value: $epel::params::epel_testing_mirrorlist
epel_testing_baseurl
Data type: Any
Default value: $epel::params::epel_testing_baseurl
epel_testing_failovermethod
Data type: Any
Default value: $epel::params::epel_testing_failovermethod
epel_testing_proxy
Data type: Any
Default value: $epel::params::epel_testing_proxy
epel_testing_enabled
Data type: Any
Default value: $epel::params::epel_testing_enabled
epel_testing_gpgcheck
Data type: Any
Default value: $epel::params::epel_testing_gpgcheck
epel_testing_managed
Data type: Any
Default value: $epel::params::epel_testing_managed
epel_testing_exclude
Data type: Any
Default value: undef
epel_testing_includepkgs
Data type: Any
Default value: undef
epel_testing_sslclientkey
Data type: Any
Default value: undef
epel_testing_sslclientcert
Data type: Any
Default value: undef
epel_source_mirrorlist
Data type: Any
Default value: $epel::params::epel_source_mirrorlist
epel_source_baseurl
Data type: Any
Default value: $epel::params::epel_source_baseurl
epel_source_failovermethod
Data type: Any
Default value: $epel::params::epel_source_failovermethod
epel_source_proxy
Data type: Any
Default value: $epel::params::epel_source_proxy
epel_source_enabled
Data type: Any
Default value: $epel::params::epel_source_enabled
epel_source_gpgcheck
Data type: Any
Default value: $epel::params::epel_source_gpgcheck
epel_source_managed
Data type: Any
Default value: $epel::params::epel_source_managed
epel_source_exclude
Data type: Any
Default value: undef
epel_source_includepkgs
Data type: Any
Default value: undef
epel_source_sslclientkey
Data type: Any
Default value: undef
epel_source_sslclientcert
Data type: Any
Default value: undef
epel_debuginfo_mirrorlist
Data type: Any
Default value: $epel::params::epel_debuginfo_mirrorlist
epel_debuginfo_baseurl
Data type: Any
Default value: $epel::params::epel_debuginfo_baseurl
epel_debuginfo_failovermethod
Data type: Any
Default value: $epel::params::epel_debuginfo_failovermethod
epel_debuginfo_proxy
Data type: Any
Default value: $epel::params::epel_debuginfo_proxy
epel_debuginfo_enabled
Data type: Any
Default value: $epel::params::epel_debuginfo_enabled
epel_debuginfo_gpgcheck
Data type: Any
Default value: $epel::params::epel_debuginfo_gpgcheck
epel_debuginfo_managed
Data type: Any
Default value: $epel::params::epel_debuginfo_managed
epel_debuginfo_exclude
Data type: Any
Default value: undef
epel_debuginfo_includepkgs
Data type: Any
Default value: undef
epel_debuginfo_sslclientkey
Data type: Any
Default value: undef
epel_debuginfo_sslclientcert
Data type: Any
Default value: undef
epel_testing_source_mirrorlist
Data type: Any
Default value: $epel::params::epel_testing_source_mirrorlist
epel_testing_source_baseurl
Data type: Any
Default value: $epel::params::epel_testing_source_baseurl
epel_testing_source_failovermethod
Data type: Any
Default value: $epel::params::epel_testing_source_failovermethod
epel_testing_source_proxy
Data type: Any
Default value: $epel::params::epel_testing_source_proxy
epel_testing_source_enabled
Data type: Any
Default value: $epel::params::epel_testing_source_enabled
epel_testing_source_gpgcheck
Data type: Any
Default value: $epel::params::epel_testing_source_gpgcheck
epel_testing_source_managed
Data type: Any
Default value: $epel::params::epel_testing_source_managed
epel_testing_source_exclude
Data type: Any
Default value: undef
epel_testing_source_includepkgs
Data type: Any
Default value: undef
epel_testing_source_sslclientkey
Data type: Any
Default value: undef
epel_testing_source_sslclientcert
Data type: Any
Default value: undef
epel_testing_debuginfo_mirrorlist
Data type: Any
Default value: $epel::params::epel_testing_debuginfo_mirrorlist
epel_testing_debuginfo_baseurl
Data type: Any
Default value: $epel::params::epel_testing_debuginfo_baseurl
epel_testing_debuginfo_failovermethod
Data type: Any
Default value: $epel::params::epel_testing_debuginfo_failovermethod
epel_testing_debuginfo_proxy
Data type: Any
Default value: $epel::params::epel_testing_debuginfo_proxy
epel_testing_debuginfo_enabled
Data type: Any
Default value: $epel::params::epel_testing_debuginfo_enabled
epel_testing_debuginfo_gpgcheck
Data type: Any
Default value: $epel::params::epel_testing_debuginfo_gpgcheck
epel_testing_debuginfo_managed
Data type: Any
Default value: $epel::params::epel_testing_debuginfo_managed
epel_testing_debuginfo_exclude
Data type: Any
Default value: undef
epel_testing_debuginfo_includepkgs
Data type: Any
Default value: undef
epel_testing_debuginfo_sslclientkey
Data type: Any
Default value: undef
epel_testing_debuginfo_sslclientcert
Data type: Any
Default value: undef
epel_gpg_managed
Data type: Any
Default value: $epel::params::epel_gpg_managed
os_maj_release
Data type: Any
Default value: $epel::params::os_maj_release
epel::params
Optional parameters in setting up EPEL
Defined types
epel::rpm_gpg_key
Define epel::rpm_gpg_key
Actions: Import a RPM gpg key
Parameters:
[path] Path of the RPM GPG key to import
Reqiures: You should probably be on an Enterprise Linux variant. (Centos, RHEL, Scientific, Oracle, Ascendos, et al)
Sample Usage: epel::rpm_gpg_key{ "EPEL-6": path => "/etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6" }
Parameters
The following parameters are available in the epel::rpm_gpg_key
defined type.
path
Data type: Any
Dependencies
- puppetlabs/stdlib (>= 3.0.0 < 7.0.0)
Copyright 2012-2014 Michael Stahnke Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.