diff -r a2342f26c9de -r b0b56e0f8c7f dev/provisioning/modules/yum/manifests/group.pp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/dev/provisioning/modules/yum/manifests/group.pp Fri Jan 15 15:35:00 2016 +0100 @@ -0,0 +1,46 @@ +# Define: yum::group +# +# This definition installs or removes yum package group. +# +# Parameters: +# [*ensure*] - specifies if package group should be +# present (installed) or absent (purged) +# +# Actions: +# +# Requires: +# RPM based system +# +# Sample usage: +# yum::group { 'X Window System': +# ensure => present, +# } +# +define yum::group ( + $ensure = present +) { + Exec { + path => '/bin:/usr/bin:/sbin:/usr/sbin', + environment => 'LC_ALL=C' + } + + case $ensure { + present,installed: { + exec { "yum-groupinstall-${name}": + command => "yum -y groupinstall '${name}'", + unless => "yum grouplist '${name}' | egrep -i '^Installed.+Groups:$'", + } + } + + absent,purged: { + exec { "yum-groupremove-${name}": + command => "yum -y groupremove '${name}'", + onlyif => "yum grouplist '${name}' | egrep -i '^Installed.+Groups:$'", + } + } + + default: { + fail("Invalid ensure state: ${ensure}") + } + } +}