Defined Type: system::yumgroup

Defined in:
manifests/yumgroup.pp

Overview

Parameters:

  • ensure (Any) (defaults to: 'present')
  • optional (Any) (defaults to: false)
  • sys_schedule (Any) (defaults to: 'daily')
  • usecache (Any) (defaults to: true)


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')
    }
  }
}