# # 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', default => '1.6.5', } 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']; } } } } } }