163 lines
4.9 KiB
Puppet
163 lines
4.9 KiB
Puppet
|
|
# Install yum-updatesd service
|
|
#
|
|
class yum::updatesd {
|
|
|
|
package { "yum-updatesd":
|
|
ensure => installed,
|
|
}
|
|
|
|
file { "/etc/yum/yum-updatesd.conf":
|
|
ensure => present,
|
|
source => [ "puppet:///files/yum/yum-updatesd.conf.${fqdn}",
|
|
"puppet:///files/yum/yum-updatesd.conf",
|
|
"puppet:///modules/yum/yum-updatesd.conf", ],
|
|
mode => 0644,
|
|
owner => root,
|
|
group => root,
|
|
notify => Service["yum-updatesd"],
|
|
}
|
|
|
|
service { "yum-updatesd":
|
|
ensure => running,
|
|
enable => true,
|
|
hasstatus => true,
|
|
require => Package["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 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"],
|
|
}
|
|
$gpgkey_real = "file:///etc/pki/rpm-gpg/RPM-GPG-KEY-${name}"
|
|
} else {
|
|
$gpgkey_real = $gpgkey
|
|
}
|
|
|
|
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",
|
|
}
|
|
|
|
}
|
|
|
|
|
|
# Add Fedora EPEL repository
|
|
#
|
|
class yum::repo::epel {
|
|
|
|
if $operatingsystem != "CentOS" {
|
|
fail("EPEL repository not supported in ${operatingsystem}")
|
|
}
|
|
|
|
yum::repo { "epel":
|
|
descr => "Extra Packages for Enterprise Linux ${lsbmajdistrelease} - \$basearch",
|
|
mirrorlist => "http://mirrors.fedoraproject.org/mirrorlist?repo=epel-${lsbmajdistrelease}&arch=\$basearch",
|
|
gpgkey => "https://fedoraproject.org/static/217521F6.txt",
|
|
}
|
|
|
|
}
|
|
|
|
|
|
# Add RPM Fusion Free repository
|
|
#
|
|
class yum::repo::rpmfusion-free {
|
|
|
|
case $operatingsystem {
|
|
"centos": { $flavor = "el" }
|
|
"fedora": { $flavor = "fedora" }
|
|
default: { fail("RPM Fusion Free repository not supported in ${operatingsystem}") }
|
|
}
|
|
|
|
yum::repo { "rpmfusion-free":
|
|
descr => "RPM Fusion for ${flavor} \$releasever - Free",
|
|
mirrorlist => "http://mirrors.rpmfusion.org/mirrorlist?repo=free-${flavor}-\$releasever&arch=\$basearch",
|
|
gpgkey => "http://rpmfusion.org/keys?action=AttachFile&do=get&target=RPM-GPG-KEY-rpmfusion-free-${flavor}",
|
|
}
|
|
yum::repo { "rpmfusion-free-updates":
|
|
descr => "RPM Fusion for ${flavor} \$releasever - Free",
|
|
mirrorlist => "http://mirrors.rpmfusion.org/mirrorlist?repo=free-${flavor}-updates-released-\$releasever&arch=\$basearch",
|
|
gpgkey => "http://rpmfusion.org/keys?action=AttachFile&do=get&target=RPM-GPG-KEY-rpmfusion-free-${flavor}",
|
|
}
|
|
|
|
}
|
|
|
|
|
|
# Add RPM Fusion Nonfree repository
|
|
#
|
|
# Enabling this will also enable RPM Fusion Free repository.
|
|
#
|
|
class yum::repo::rpmfusion-nonfree {
|
|
|
|
case $operatingsystem {
|
|
"centos": { $flavor = "el" }
|
|
"fedora": { $flavor = "fedora" }
|
|
default: { fail("RPM Fusion Free repository not supported in ${operatingsystem}") }
|
|
}
|
|
|
|
include yum::repo::rpmfusion-free
|
|
|
|
yum::repo { "rpmfusion-nonfree":
|
|
descr => "RPM Fusion for ${flavor} \$releasever - Nonfree",
|
|
mirrorlist => "http://mirrors.rpmfusion.org/mirrorlist?repo=nonfree-${flavor}-\$releasever&arch=\$basearch",
|
|
gpgkey => "http://rpmfusion.org/keys?action=AttachFile&do=get&target=RPM-GPG-KEY-rpmfusion-nonfree-${flavor}",
|
|
}
|
|
yum::repo { "rpmfusion-nonfree-updates":
|
|
descr => "RPM Fusion for ${flavor} \$releasever - Nonfree",
|
|
mirrorlist => "http://mirrors.rpmfusion.org/mirrorlist?repo=nonfree-${flavor}-updates-released-\$releasever&arch=\$basearch",
|
|
gpgkey => "http://rpmfusion.org/keys?action=AttachFile&do=get&target=RPM-GPG-KEY-rpmfusion-nonfree-${flavor}",
|
|
}
|
|
|
|
}
|