Added support for ensure option into yum::repo.
This commit is contained in:
parent
d1e6bf1acd
commit
a30e3e70fc
2 changed files with 45 additions and 32 deletions
|
@ -128,6 +128,9 @@ class yum::exclude {
|
|||
#
|
||||
# $name:
|
||||
# Repository name.
|
||||
# $ensure:
|
||||
# Present/enable enables repository (default), absent removes
|
||||
# repository completely and disable disables repository.
|
||||
# $baseurl:
|
||||
# Base URL for this repository.
|
||||
# $mirrorlist:
|
||||
|
@ -146,45 +149,55 @@ class yum::exclude {
|
|||
# gpgkey => "http://tmz.fedorapeople.org/repo/RPM-GPG-KEY-tmz",
|
||||
# }
|
||||
#
|
||||
define yum::repo($baseurl="", $mirrorlist="", $descr="", $gpgkey="") {
|
||||
define yum::repo($ensure="present", $baseurl="", $mirrorlist="", $descr="", $gpgkey="") {
|
||||
|
||||
tag("bootstrap")
|
||||
|
||||
if !$baseurl and !$mirrorlist {
|
||||
fail("Either \$baseurl or \$mirrorlist needs to be defined for yum::repo")
|
||||
}
|
||||
if $baseurl and $mirrorlist {
|
||||
fail("Cannot set both \$baseurl and \$mirrorlist for yum::repo")
|
||||
}
|
||||
# can't use ensure variable inside template :(
|
||||
$status = $ensure
|
||||
|
||||
if regsubst($gpgkey, "^(puppet://).*", '\1') == "puppet://" {
|
||||
file { "/etc/pki/rpm-gpg/RPM-GPG-KEY-${name}":
|
||||
ensure => present,
|
||||
source => $gpgkey,
|
||||
mode => "0644",
|
||||
owner => "root",
|
||||
group => "root",
|
||||
before => File["/etc/yum.repos.d/${name}.repo"],
|
||||
notify => Exec["rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-${name}"],
|
||||
}
|
||||
exec { "rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-${name}":
|
||||
path => "/bin:/usr/bin:/sbin:/usr/sbin",
|
||||
user => "root",
|
||||
refreshonly => true,
|
||||
}
|
||||
$gpgkey_real = "file:///etc/pki/rpm-gpg/RPM-GPG-KEY-${name}"
|
||||
} else {
|
||||
$gpgkey_real = $gpgkey
|
||||
}
|
||||
if $status != "absent" {
|
||||
|
||||
if !$baseurl and !$mirrorlist {
|
||||
fail("Either \$baseurl or \$mirrorlist needs to be defined for yum::repo")
|
||||
}
|
||||
if $baseurl and $mirrorlist {
|
||||
fail("Cannot set both \$baseurl and \$mirrorlist for yum::repo")
|
||||
}
|
||||
|
||||
if regsubst($gpgkey, "^(puppet://).*", '\1') == "puppet://" {
|
||||
file { "/etc/pki/rpm-gpg/RPM-GPG-KEY-${name}":
|
||||
ensure => present,
|
||||
source => $gpgkey,
|
||||
mode => "0644",
|
||||
owner => "root",
|
||||
group => "root",
|
||||
before => File["/etc/yum.repos.d/${name}.repo"],
|
||||
notify => Exec["rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-${name}"],
|
||||
}
|
||||
exec { "rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-${name}":
|
||||
path => "/bin:/usr/bin:/sbin:/usr/sbin",
|
||||
user => "root",
|
||||
refreshonly => true,
|
||||
}
|
||||
$gpgkey_real = "file:///etc/pki/rpm-gpg/RPM-GPG-KEY-${name}"
|
||||
} else {
|
||||
$gpgkey_real = $gpgkey
|
||||
}
|
||||
|
||||
if $descr {
|
||||
$descr_real = $descr
|
||||
} else {
|
||||
$descr_real = $name
|
||||
}
|
||||
|
||||
if $descr {
|
||||
$descr_real = $descr
|
||||
} else {
|
||||
$descr_real = $name
|
||||
}
|
||||
|
||||
file { "/etc/yum.repos.d/${name}.repo":
|
||||
ensure => present,
|
||||
ensure => $status ? {
|
||||
"absent" => absent,
|
||||
default => present,
|
||||
},
|
||||
content => template("yum/yum.repo.erb"),
|
||||
mode => "0644",
|
||||
owner => "root",
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
[<%= name %>]
|
||||
name=<%= descr_real %>
|
||||
enabled=1
|
||||
enabled=<% if status == 'disable' %>0<% else %>1<% end %>
|
||||
<% if baseurl != '' -%>
|
||||
baseurl=<%= baseurl %>
|
||||
<% else -%>
|
||||
|
|
Loading…
Add table
Reference in a new issue