Defined Type: yum::install

Defined in:
manifests/install.pp

Overview

Define: yum::install

This definition installs or removes rpms from local file or URL via yum install command. This can be better than using just the rpm provider because it will pull all the dependencies.

Parameters:

[*ensure*] - specifies if package group should be
             present (installed) or absent (purged)
[*source*] - file or URL where RPM is available

Actions:

Requires:

RPM based system

Sample usage:

yum::install { 'epel-release':
  ensure => present,
  source => 'https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm',
}

Parameters:

  • source (Any)
  • ensure (Any) (defaults to: present)
  • timeout (Any) (defaults to: undef)


23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
# File 'manifests/install.pp', line 23

define yum::install (
  $source,
  $ensure  = present,
  $timeout = undef,
) {
  validate_string($source)

  Exec {
    path        => '/bin:/usr/bin:/sbin:/usr/sbin',
    environment => 'LC_ALL=C'
  }

  case $ensure {
    present,installed: {
      exec { "yum-install-${name}":
        command => "yum -y install '${source}'",
        unless  => "rpm -q '${name}'",
        timeout => $timeout,
      }
    }

    absent,purged: {
      package { $name:
        ensure => $ensure,
      }
    }

    default: {
      fail("Invalid ensure state: ${ensure}")
    }
  }
}