diff -r a2342f26c9de -r b0b56e0f8c7f dev/provisioning/modules/yum/manifests/init.pp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/dev/provisioning/modules/yum/manifests/init.pp Fri Jan 15 15:35:00 2016 +0100 @@ -0,0 +1,90 @@ +# Class: yum +# +# Manage Yum configuration. +# +# Parameters: +# [*keepcache*] - Yum option keepcache +# [*debuglevel*] - Yum option debuglevel +# [*exactarch*] - Yum option exactarch +# [*obsoletes*] - Yum option obsoletes +# [*gpgcheck*] - Yum option gpgcheck +# [*installonly_limit*] - Yum option installonly_limit +# [*keep_kernel_devel*] - On old kernels purge keep devel packages. +# +# Actions: +# +# Requires: +# RPM based system +# +# Sample usage: +# class { 'yum': +# installonly_limit => 2, +# } +# +class yum ( + $keepcache = $yum::params::keepcache, + $debuglevel = $yum::params::debuglevel, + $exactarch = $yum::params::exactarch, + $obsoletes = $yum::params::obsoletes, + $gpgcheck = $yum::params::gpgcheck, + $installonly_limit = $yum::params::installonly_limit, + $keep_kernel_devel = $yum::params::keep_kernel_devel +) inherits yum::params { + + validate_bool($keepcache, $exactarch, $obsoletes, $gpgcheck) + validate_bool($keep_kernel_devel) + + unless is_integer($installonly_limit) { + validate_string($installonly_limit) + } + + unless is_integer($debuglevel) { + validate_string($debuglevel) + } + + # configure Yum + yum::config { 'keepcache': + ensure => bool2num($keepcache), + } + + yum::config { 'debuglevel': + ensure => $debuglevel, + } + + yum::config { 'exactarch': + ensure => bool2num($exactarch) + } + + yum::config { 'obsoletes': + ensure => bool2num($obsoletes) + } + + yum::config { 'gpgcheck': + ensure => bool2num($gpgcheck) + } + + yum::config { 'installonly_limit': + ensure => $installonly_limit, + notify => Exec['package-cleanup_oldkernels'], + } + + # cleanup old kernels + ensure_packages(['yum-utils']) + + $_pc_cmd = delete_undef_values([ + '/usr/bin/package-cleanup', + '--oldkernels', + "--count=${installonly_limit}", + '-y', + $keep_kernel_devel ? { + true => '--keepdevel', + default => undef, + }, + ]) + + exec { 'package-cleanup_oldkernels': + command => shellquote($_pc_cmd), + refreshonly => true, + require => Package['yum-utils'], + } +}