Puppet Class: sudo::package

Defined in:
manifests/package.pp

Overview

Class: sudo::package

Installs the sudo package on various platforms.

Parameters

Document parameters here.

package

The name of the sudo package to be installed

package_ensure

Ensure if present or absent

package_source

Where to find the sudo packge, should be a local file or a uri

package_provider

Set package provider

Authors

Toni Schmidbauer <toni@stderr.at>

Copyright 2013 Toni Schmidbauer

Parameters:

  • package (Any) (defaults to: '')
  • package_ensure (Any) (defaults to: present)
  • package_source (Any) (defaults to: '')
  • package_provider (Any) (defaults to: undef)
  • package_admin_file (Any) (defaults to: '')
  • ldap_enable (Any) (defaults to: false)


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
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
# File 'manifests/package.pp', line 29

class sudo::package (
  $package            = '',
  $package_ensure     = present,
  $package_source     = '',
  $package_provider   = undef,
  $package_admin_file = '',
  $ldap_enable        = false,
) {
  if $ldap_enable == true {
    case $facts['os']['family'] {
      'Gentoo': {
        if defined( 'portage' ) {
          Class['sudo'] -> Class['portage']
          package_use { 'app-admin/sudo':
            ensure => present,
            use    => ['ldap'],
            target => 'sudo-flags',
          }
        } else {
          fail ('portage package needed to define ldap use on sudo')
        }
      }
      default: {}
    }
  }

  case $facts['os']['family'] {
    'AIX': {
      class { 'sudo::package::aix':
        package          => $package,
        package_source   => $package_source,
        package_ensure   => $package_ensure,
        package_provider => $package_provider,
      }
    }
    'Darwin': {}
    'Solaris': {
      class { 'sudo::package::solaris':
        package            => $package,
        package_source     => $package_source,
        package_ensure     => $package_ensure,
        package_admin_file => $package_admin_file,
        package_provider   => $package_provider,
      }
    }
    default: {
      if $package != '' {
        ensure_packages([
            $package,
          ], {
            'ensure'   => $package_ensure,
            'provider' => $package_provider,
        })
      }
    }
  }
}