From 0957dcf36d9b63467a84c5a1d60a0f13932d5a00 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timo=20M=E4kinen?= Date: Fri, 18 Mar 2011 11:24:42 +0200 Subject: [PATCH] Added support for defining yum repositories. --- yum/manifests/init.pp | 52 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) diff --git a/yum/manifests/init.pp b/yum/manifests/init.pp index 5fb2b93..ea00372 100644 --- a/yum/manifests/init.pp +++ b/yum/manifests/init.pp @@ -26,3 +26,55 @@ class yum::updatesd { } } + + +# Add new yum repository. +# +# === Parameters +# +# $name: +# Repository name. +# $baseurl: +# Base URL for this repository. +# $mirrorlist: +# Mirrorlist URL for this repository. +# $descr: +# Repository description. Defaults to $name. +# $gpgkey: +# Location where GPG signing key can be found. If not set +# GPG check will be disabled. +# +# === Sample usage +# +# yum::repo { "tmz-puppet": +# baseurl => "http://tmz.fedorapeople.org/repo/puppet/epel/5/i386/", +# descr => "Puppet for EL 5 - i386", +# gpgkey => "http://tmz.fedorapeople.org/repo/RPM-GPG-KEY-tmz", +# } +# +define yum::repo($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") + } + + if $descr { + $descr_real = $descr + } else { + $descr_real = $name + } + + file { "/etc/yum.repos.d/${name}.repo": + ensure => present, + content => template("yum/yum.repo.erb"), + mode => 0644, + owner => "root", + group => "root", + } + +}