Newer
Older
#
# RH specific classes that provide RPM repositories.
# base::rpm::yumrepo definition
#
# namevar must match source file name
define base::rpm::yumrepo ($source='base/rpm') {
file { "/etc/yum.repos.d/${name}":
source => "puppet:///modules/${source}/${name}",
require => [ Package['yum'], File['/etc/yum.repos.d'] ]
}
}
# base::rpm::openafs - provides openafs yum config
class base::rpm::openafs {
$openafsver = $lsbmajdistrelease ? {
'4' => '1.6.2',
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
}
base::rpm::yumrepo { "openafs-${openafsver}-EL${::lsbmajdistrelease}.repo": }
}
# rpm class. applied to every RHEL system via basenode (os module)
class base::rpm {
include base::rpm::openafs
case $::operatingsystem {
'redhat': {
$redhatPackages = [
'yum',
]
package { $redhatPackages: ensure => present }
file { '/etc/yum.repos.d':
ensure => directory,
mode => 0755,
recurse => true,
purge => true,
}
# Apply to all RHEL releases
base::rpm::yumrepo { "dag-EL${::lsbmajdistrelease}.repo": }
base::rpm::yumrepo { "stanford-priv-EL${::lsbmajdistrelease}.repo": }
base::rpm::yumrepo { "stanford-rhel${::lsbmajdistrelease}.repo": }
base::rpm::yumrepo { "stanford-EL${::lsbmajdistrelease}.repo": }
file {
# newsyslog config to rotate /var/log/yum.log
'/etc/newsyslog.daily/yum':
source => 'puppet:///modules/base/rpm/etc/newsyslog.daily/yum',
require => Package['newsyslog'];
}
case $::lsbmajdistrelease {
# RHEL4
'4': {
include base::up2date
base::rpm::yumrepo { 'rhel4.repo': }
}
# RHEL5 & RHEL6
'5','6': {
$yumpackage = $::lsbmajdistrelease ? {
'5' => 'yum-downloadonly',
'6' => 'yum-plugin-downloadonly',
}
package { $yumpackage: ensure => present; }
# disable yum rhn plugin
exec { 'disable yum rhn plugin':
command => "perl -pe 's/enabled = 1/enabled = 0/' -i /etc/yum/pluginconf.d/rhnplugin.conf",
onlyif => "[ -e /etc/yum/pluginconf.d/rhnplugin.conf ] && grep -q 'enabled = 1' /etc/yum/pluginconf.d/rhnplugin.conf",
}
# enable yum plugins in general
exec { 'enable yum plugins':
command => "perl -pe 's/plugins=0/plugins=1/' -i /etc/yum.conf",
onlyif => "grep -q 'plugins=0' /etc/yum.conf",
require => Exec['disable yum rhn plugin'],
}
}
}
# only RHEL4 and RHEL5 use rpmpkgs log
case $::lsbmajdistrelease {
'4','5': {
file {
# rotate /var/log/rpmpkgs weekly
'/etc/newsyslog.weekly/rpmpkgs':
source => 'puppet:///modules/base/rpm/etc/newsyslog.weekly/rpmpkgs',
require => Package['newsyslog'];
}
}
}
}
}