Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add options to disable repo resources when desired #54

Closed
wants to merge 1 commit into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,9 +20,9 @@ Other repositories that will setup but disabled (as per the epel-release setup)
# Usage

In nearly all cases, you can simply _include epel_ or classify your nodes with
the epel class. There are quite a few paramters available if you need to modify
the default settings for the epel repository such having your own mirror, an
http proxy, disable gpg checking.
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.

Expand Down
206 changes: 115 additions & 91 deletions manifests/init.pp
Original file line number Diff line number Diff line change
Expand Up @@ -17,13 +17,15 @@
$epel_proxy = $epel::params::epel_proxy,
$epel_enabled = $epel::params::epel_enabled,
$epel_gpgcheck = $epel::params::epel_gpgcheck,
$epel_managed = $epel::params::epel_managed,
$epel_exclude = undef,
$epel_includepkgs = undef,
$epel_testing_baseurl = $epel::params::epel_testing_baseurl,
$epel_testing_failovermethod = $epel::params::epel_testing_failovermethod,
$epel_testing_proxy = $epel::params::epel_testing_proxy,
$epel_testing_enabled = $epel::params::epel_testing_enabled,
$epel_testing_gpgcheck = $epel::params::epel_testing_gpgcheck,
$epel_testing_managed = $epel::params::epel_testing_managed,
$epel_testing_exclude = undef,
$epel_testing_includepkgs = undef,
$epel_source_mirrorlist = $epel::params::epel_source_mirrorlist,
Expand All @@ -32,6 +34,7 @@
$epel_source_proxy = $epel::params::epel_source_proxy,
$epel_source_enabled = $epel::params::epel_source_enabled,
$epel_source_gpgcheck = $epel::params::epel_source_gpgcheck,
$epel_source_managed = $epel::params::epel_source_managed,
$epel_source_exclude = undef,
$epel_source_includepkgs = undef,
$epel_debuginfo_mirrorlist = $epel::params::epel_debuginfo_mirrorlist,
Expand All @@ -40,133 +43,154 @@
$epel_debuginfo_proxy = $epel::params::epel_debuginfo_proxy,
$epel_debuginfo_enabled = $epel::params::epel_debuginfo_enabled,
$epel_debuginfo_gpgcheck = $epel::params::epel_debuginfo_gpgcheck,
$epel_debuginfo_managed = $epel::params::epel_debuginfo_managed,
$epel_debuginfo_exclude = undef,
$epel_debuginfo_includepkgs = undef,
$epel_testing_source_baseurl = $epel::params::epel_testing_source_baseurl,
$epel_testing_source_failovermethod = $epel::params::epel_testing_source_failovermethod,
$epel_testing_source_proxy = $epel::params::epel_testing_source_proxy,
$epel_testing_source_enabled = $epel::params::epel_testing_source_enabled,
$epel_testing_source_gpgcheck = $epel::params::epel_testing_source_gpgcheck,
$epel_testing_source_managed = $epel::params::epel_testing_source_managed,
$epel_testing_source_exclude = undef,
$epel_testing_source_includepkgs = undef,
$epel_testing_debuginfo_baseurl = $epel::params::epel_testing_debuginfo_baseurl,
$epel_testing_debuginfo_failovermethod = $epel::params::epel_testing_debuginfo_failovermethod,
$epel_testing_debuginfo_proxy = $epel::params::epel_testing_debuginfo_proxy,
$epel_testing_debuginfo_enabled = $epel::params::epel_testing_debuginfo_enabled,
$epel_testing_debuginfo_gpgcheck = $epel::params::epel_testing_debuginfo_gpgcheck,
$epel_testing_debuginfo_managed = $epel::params::epel_testing_debuginfo_managed,
$epel_testing_debuginfo_exclude = undef,
$epel_testing_debuginfo_includepkgs = undef,
$epel_gpg_managed = $epel::params::epel_gpg_managed,
$os_maj_release = $epel::params::os_maj_release,
) inherits epel::params {

Epel::Rpm_gpg_key <| |> -> Yumrepo <| |>

if "${::osfamily}" == 'RedHat' and "${::operatingsystem}" !~ /Fedora|Amazon/ { # lint:ignore:only_variable_string
yumrepo { 'epel-testing':
baseurl => $epel_testing_baseurl,
failovermethod => $epel_testing_failovermethod,
proxy => $epel_testing_proxy,
enabled => $epel_testing_enabled,
gpgcheck => $epel_testing_gpgcheck,
gpgkey => "file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-${os_maj_release}",
descr => "Extra Packages for Enterprise Linux ${os_maj_release} - Testing - \$basearch ",
exclude => $epel_testing_exclude,
includepkgs => $epel_testing_includepkgs,
if $epel_testing_managed {
yumrepo { 'epel-testing':
baseurl => $epel_testing_baseurl,
failovermethod => $epel_testing_failovermethod,
proxy => $epel_testing_proxy,
enabled => $epel_testing_enabled,
gpgcheck => $epel_testing_gpgcheck,
gpgkey => "file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-${os_maj_release}",
descr => "Extra Packages for Enterprise Linux ${os_maj_release} - Testing - \$basearch ",
exclude => $epel_testing_exclude,
includepkgs => $epel_testing_includepkgs,
}
}

yumrepo { 'epel-testing-debuginfo':
baseurl => $epel_testing_debuginfo_baseurl,
failovermethod => $epel_testing_debuginfo_failovermethod,
proxy => $epel_testing_debuginfo_proxy,
enabled => $epel_testing_debuginfo_enabled,
gpgcheck => $epel_testing_debuginfo_gpgcheck,
gpgkey => "file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-${os_maj_release}",
descr => "Extra Packages for Enterprise Linux ${os_maj_release} - Testing - \$basearch - Debug",
exclude => $epel_testing_debuginfo_exclude,
includepkgs => $epel_testing_debuginfo_includepkgs,
if $epel_testing_debuginfo_managed {
yumrepo { 'epel-testing-debuginfo':
baseurl => $epel_testing_debuginfo_baseurl,
failovermethod => $epel_testing_debuginfo_failovermethod,
proxy => $epel_testing_debuginfo_proxy,
enabled => $epel_testing_debuginfo_enabled,
gpgcheck => $epel_testing_debuginfo_gpgcheck,
gpgkey => "file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-${os_maj_release}",
descr => "Extra Packages for Enterprise Linux ${os_maj_release} - Testing - \$basearch - Debug",
exclude => $epel_testing_debuginfo_exclude,
includepkgs => $epel_testing_debuginfo_includepkgs,
}
}

yumrepo { 'epel-testing-source':
baseurl => $epel_testing_source_baseurl,
failovermethod => $epel_testing_source_failovermethod,
proxy => $epel_testing_source_proxy,
enabled => $epel_testing_source_enabled,
gpgcheck => $epel_testing_source_gpgcheck,
gpgkey => "file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-${os_maj_release}",
descr => "Extra Packages for Enterprise Linux ${os_maj_release} - Testing - \$basearch - Source",
exclude => $epel_testing_source_exclude,
includepkgs => $epel_testing_source_includepkgs,
if $epel_testing_source_managed {
yumrepo { 'epel-testing-source':
baseurl => $epel_testing_source_baseurl,
failovermethod => $epel_testing_source_failovermethod,
proxy => $epel_testing_source_proxy,
enabled => $epel_testing_source_enabled,
gpgcheck => $epel_testing_source_gpgcheck,
gpgkey => "file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-${os_maj_release}",
descr => "Extra Packages for Enterprise Linux ${os_maj_release} - Testing - \$basearch - Source",
exclude => $epel_testing_source_exclude,
includepkgs => $epel_testing_source_includepkgs,
}
}

yumrepo { 'epel':
# lint:ignore:selector_inside_resource
mirrorlist => $epel_baseurl ? {
'absent' => $epel_mirrorlist,
default => 'absent',
},
# lint:endignore
baseurl => $epel_baseurl,
failovermethod => $epel_failovermethod,
proxy => $epel_proxy,
enabled => $epel_enabled,
gpgcheck => $epel_gpgcheck,
gpgkey => "file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-${os_maj_release}",
descr => "Extra Packages for Enterprise Linux ${os_maj_release} - \$basearch",
exclude => $epel_exclude,
includepkgs => $epel_includepkgs,
if $epel_managed {
yumrepo { 'epel':
# lint:ignore:selector_inside_resource
mirrorlist => $epel_baseurl ? {
'absent' => $epel_mirrorlist,
default => 'absent',
},
# lint:endignore
baseurl => $epel_baseurl,
failovermethod => $epel_failovermethod,
proxy => $epel_proxy,
enabled => $epel_enabled,
gpgcheck => $epel_gpgcheck,
gpgkey => "file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-${os_maj_release}",
descr => "Extra Packages for Enterprise Linux ${os_maj_release} - \$basearch",
exclude => $epel_exclude,
includepkgs => $epel_includepkgs,
}
}

yumrepo { 'epel-debuginfo':
# lint:ignore:selector_inside_resource
mirrorlist => $epel_debuginfo_baseurl ? {
'absent' => $epel_debuginfo_mirrorlist,
default => 'absent',
},
# lint:endignore
baseurl => $epel_debuginfo_baseurl,
failovermethod => $epel_debuginfo_failovermethod,
proxy => $epel_debuginfo_proxy,
enabled => $epel_debuginfo_enabled,
gpgcheck => $epel_debuginfo_gpgcheck,
gpgkey => "file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-${os_maj_release}",
descr => "Extra Packages for Enterprise Linux ${os_maj_release} - \$basearch - Debug",
exclude => $epel_debuginfo_exclude,
includepkgs => $epel_debuginfo_includepkgs,
if $epel_debuginfo_managed {
yumrepo { 'epel-debuginfo':
# lint:ignore:selector_inside_resource
mirrorlist => $epel_debuginfo_baseurl ? {
'absent' => $epel_debuginfo_mirrorlist,
default => 'absent',
},
# lint:endignore
baseurl => $epel_debuginfo_baseurl,
failovermethod => $epel_debuginfo_failovermethod,
proxy => $epel_debuginfo_proxy,
enabled => $epel_debuginfo_enabled,
gpgcheck => $epel_debuginfo_gpgcheck,
gpgkey => "file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-${os_maj_release}",
descr => "Extra Packages for Enterprise Linux ${os_maj_release} - \$basearch - Debug",
exclude => $epel_debuginfo_exclude,
includepkgs => $epel_debuginfo_includepkgs,
}
}

yumrepo { 'epel-source':
# lint:ignore:selector_inside_resource
mirrorlist => $epel_source_baseurl ? {
'absent' => $epel_source_mirrorlist,
default => 'absent',
},
# lint:endignore
baseurl => $epel_source_baseurl,
failovermethod => $epel_source_failovermethod,
proxy => $epel_source_proxy,
enabled => $epel_source_enabled,
gpgcheck => $epel_source_gpgcheck,
gpgkey => "file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-${os_maj_release}",
descr => "Extra Packages for Enterprise Linux ${os_maj_release} - \$basearch - Source",
exclude => $epel_source_exclude,
includepkgs => $epel_source_includepkgs,
if $epel_source_managed {
yumrepo { 'epel-source':
# lint:ignore:selector_inside_resource
mirrorlist => $epel_source_baseurl ? {
'absent' => $epel_source_mirrorlist,
default => 'absent',
},
# lint:endignore
baseurl => $epel_source_baseurl,
failovermethod => $epel_source_failovermethod,
proxy => $epel_source_proxy,
enabled => $epel_source_enabled,
gpgcheck => $epel_source_gpgcheck,
gpgkey => "file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-${os_maj_release}",
descr => "Extra Packages for Enterprise Linux ${os_maj_release} - \$basearch - Source",
exclude => $epel_source_exclude,
includepkgs => $epel_source_includepkgs,
}
}

file { "/etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-${os_maj_release}":
ensure => present,
owner => 'root',
group => 'root',
mode => '0644',
source => "puppet:///modules/epel/RPM-GPG-KEY-EPEL-${os_maj_release}",
}
if $epel_gpg_managed {
file { "/etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-${os_maj_release}":
ensure => present,
owner => 'root',
group => 'root',
mode => '0644',
source => "puppet:///modules/epel/RPM-GPG-KEY-EPEL-${os_maj_release}",
}

epel::rpm_gpg_key{ "EPEL-${os_maj_release}":
path => "/etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-${os_maj_release}",
before => Yumrepo['epel','epel-source','epel-debuginfo','epel-testing','epel-testing-source','epel-testing-debuginfo'],
epel::rpm_gpg_key{ "EPEL-${os_maj_release}":
path => "/etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-${os_maj_release}",
}
}

} elsif "${::osfamily}" == 'RedHat' and "${::operatingsystem}" == 'Amazon' { # lint:ignore:only_variable_string
yumrepo { 'epel':
enabled => $epel_enabled,
gpgcheck => $epel_gpgcheck,
if $epel_managed {
yumrepo { 'epel':
enabled => $epel_enabled,
gpgcheck => $epel_gpgcheck,
}
}
} else {
notice ("Your operating system ${::operatingsystem} will not have the EPEL repository applied")
Expand Down
8 changes: 7 additions & 1 deletion manifests/params.pp
Original file line number Diff line number Diff line change
Expand Up @@ -21,32 +21,38 @@
$epel_proxy = $proxy
$epel_enabled = '1'
$epel_gpgcheck = '1'
$epel_managed = true
$epel_testing_baseurl = "https://download.fedoraproject.org/pub/epel/testing/${os_maj_release}/\$basearch"
$epel_testing_failovermethod = 'priority'
$epel_testing_proxy = $proxy
$epel_testing_enabled = '0'
$epel_testing_gpgcheck = '1'
$epel_testing_managed = true
$epel_source_mirrorlist = "https://mirrors.fedoraproject.org/mirrorlist?repo=epel-source-${os_maj_release}&arch=\$basearch"
$epel_source_baseurl = 'absent'
$epel_source_failovermethod = 'priority'
$epel_source_proxy = $proxy
$epel_source_enabled = '0'
$epel_source_gpgcheck = '1'
$epel_source_managed = true
$epel_debuginfo_mirrorlist = "https://mirrors.fedoraproject.org/mirrorlist?repo=epel-debug-${os_maj_release}&arch=\$basearch"
$epel_debuginfo_baseurl = 'absent'
$epel_debuginfo_failovermethod = 'priority'
$epel_debuginfo_proxy = $proxy
$epel_debuginfo_enabled = '0'
$epel_debuginfo_gpgcheck = '1'
$epel_debuginfo_managed = true
$epel_testing_source_baseurl = "https://download.fedoraproject.org/pub/epel/testing/${os_maj_release}/SRPMS"
$epel_testing_source_failovermethod = 'priority'
$epel_testing_source_proxy = $proxy
$epel_testing_source_enabled = '0'
$epel_testing_source_gpgcheck = '1'
$epel_testing_source_managed = true
$epel_testing_debuginfo_baseurl = "https://download.fedoraproject.org/pub/epel/testing/${os_maj_release}/\$basearch/debug"
$epel_testing_debuginfo_failovermethod = 'priority'
$epel_testing_debuginfo_proxy = $proxy
$epel_testing_debuginfo_enabled = '0'
$epel_testing_debuginfo_gpgcheck = '1'

$epel_testing_debuginfo_managed = true
$epel_gpg_managed = true
}