Added support for ensure option into yum::repo.

This commit is contained in:
Timo Mkinen 2012-08-24 12:41:39 +03:00
parent d1e6bf1acd
commit a30e3e70fc
2 changed files with 45 additions and 32 deletions

View file

@ -128,6 +128,9 @@ class yum::exclude {
# #
# $name: # $name:
# Repository name. # Repository name.
# $ensure:
# Present/enable enables repository (default), absent removes
# repository completely and disable disables repository.
# $baseurl: # $baseurl:
# Base URL for this repository. # Base URL for this repository.
# $mirrorlist: # $mirrorlist:
@ -146,45 +149,55 @@ class yum::exclude {
# gpgkey => "http://tmz.fedorapeople.org/repo/RPM-GPG-KEY-tmz", # 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") tag("bootstrap")
if !$baseurl and !$mirrorlist { # can't use ensure variable inside template :(
fail("Either \$baseurl or \$mirrorlist needs to be defined for yum::repo") $status = $ensure
}
if $baseurl and $mirrorlist {
fail("Cannot set both \$baseurl and \$mirrorlist for yum::repo")
}
if regsubst($gpgkey, "^(puppet://).*", '\1') == "puppet://" { if $status != "absent" {
file { "/etc/pki/rpm-gpg/RPM-GPG-KEY-${name}":
ensure => present, if !$baseurl and !$mirrorlist {
source => $gpgkey, fail("Either \$baseurl or \$mirrorlist needs to be defined for yum::repo")
mode => "0644", }
owner => "root", if $baseurl and $mirrorlist {
group => "root", fail("Cannot set both \$baseurl and \$mirrorlist for yum::repo")
before => File["/etc/yum.repos.d/${name}.repo"], }
notify => Exec["rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-${name}"],
} if regsubst($gpgkey, "^(puppet://).*", '\1') == "puppet://" {
exec { "rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-${name}": file { "/etc/pki/rpm-gpg/RPM-GPG-KEY-${name}":
path => "/bin:/usr/bin:/sbin:/usr/sbin", ensure => present,
user => "root", source => $gpgkey,
refreshonly => true, mode => "0644",
} owner => "root",
$gpgkey_real = "file:///etc/pki/rpm-gpg/RPM-GPG-KEY-${name}" group => "root",
} else { before => File["/etc/yum.repos.d/${name}.repo"],
$gpgkey_real = $gpgkey 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": file { "/etc/yum.repos.d/${name}.repo":
ensure => present, ensure => $status ? {
"absent" => absent,
default => present,
},
content => template("yum/yum.repo.erb"), content => template("yum/yum.repo.erb"),
mode => "0644", mode => "0644",
owner => "root", owner => "root",

View file

@ -1,6 +1,6 @@
[<%= name %>] [<%= name %>]
name=<%= descr_real %> name=<%= descr_real %>
enabled=1 enabled=<% if status == 'disable' %>0<% else %>1<% end %>
<% if baseurl != '' -%> <% if baseurl != '' -%>
baseurl=<%= baseurl %> baseurl=<%= baseurl %>
<% else -%> <% else -%>