dev/provisioning/modules/yum/manifests/group.pp
changeset 28 b0b56e0f8c7f
equal deleted inserted replaced
27:a2342f26c9de 28:b0b56e0f8c7f
       
     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 }