28
|
1 |
# Define: yum::group |
|
2 |
# |
|
3 |
# This definition installs or removes yum package group. |
|
4 |
# |
|
5 |
# Parameters: |
|
6 |
# [*ensure*] - specifies if package group should be |
|
7 |
# present (installed) or absent (purged) |
|
8 |
# |
|
9 |
# Actions: |
|
10 |
# |
|
11 |
# Requires: |
|
12 |
# RPM based system |
|
13 |
# |
|
14 |
# Sample usage: |
|
15 |
# yum::group { 'X Window System': |
|
16 |
# ensure => present, |
|
17 |
# } |
|
18 |
# |
|
19 |
define yum::group ( |
|
20 |
$ensure = present |
|
21 |
) { |
|
22 |
Exec { |
|
23 |
path => '/bin:/usr/bin:/sbin:/usr/sbin', |
|
24 |
environment => 'LC_ALL=C' |
|
25 |
} |
|
26 |
|
|
27 |
case $ensure { |
|
28 |
present,installed: { |
|
29 |
exec { "yum-groupinstall-${name}": |
|
30 |
command => "yum -y groupinstall '${name}'", |
|
31 |
unless => "yum grouplist '${name}' | egrep -i '^Installed.+Groups:$'", |
|
32 |
} |
|
33 |
} |
|
34 |
|
|
35 |
absent,purged: { |
|
36 |
exec { "yum-groupremove-${name}": |
|
37 |
command => "yum -y groupremove '${name}'", |
|
38 |
onlyif => "yum grouplist '${name}' | egrep -i '^Installed.+Groups:$'", |
|
39 |
} |
|
40 |
} |
|
41 |
|
|
42 |
default: { |
|
43 |
fail("Invalid ensure state: ${ensure}") |
|
44 |
} |
|
45 |
} |
|
46 |
} |