2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
|
# File 'manifests/yumgroup.pp', line 2
define system::yumgroup(
$ensure = 'present',
$optional = false,
$sys_schedule = 'daily',
$usecache = true
) {
$pkg_types_arg = $optional ? {
true => '--setopt=group_package_types=optional,default,mandatory',
default => '',
}
$cache = $usecache ? {
true => '-C',
default => '',
}
case $ensure {
'present','installed': {
exec { "Installing ${name} yum group":
command => "/usr/bin/yum -y groupinstall ${pkg_types_arg} '${name}'",
unless => "/usr/bin/yum ${cache} grouplist 2>/dev/null | /usr/bin/perl -ne 'last if /^Available/o; next if /^\\w/o; print' | /bin/grep -qw '${name}'",
timeout => 600,
schedule => $sys_schedule,
}
}
'absent': {
exec { "Removing ${name} yum group":
command => "/usr/bin/yum -y groupremove ${pkg_types_arg} '${name}'",
unless => "/usr/bin/yum ${cache} grouplist 2>/dev/null | /usr/bin/perl -ne 'last if /^Available/o; next if /^\\w/o; print' | /bin/grep -qw '${name}'",
timeout => 600,
schedule => $sys_schedule,
}
}
default: {
fail('Unknown ensure value - valid values are: present, installed or absent')
}
}
}
|