--- /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'],
+ }
+}