Puppet Class: sudo::package

Defined in:
manifests/package.pp

Summary

Installs the sudo package on various platforms.

Overview

Class: sudo::package

Parameters:

  • package (Optional[String[1]]) (defaults to: undef)

    The name of the sudo package to be installed

  • package_ensure (String[1]) (defaults to: present)

    Ensure if present or absent

  • package_source (Optional[String[1]]) (defaults to: undef)

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

  • package_provider (Optional[String[1]]) (defaults to: undef)

    Set package provider

  • package_admin_file (Optional[String[1]]) (defaults to: undef)

    Solaris 10 package admin file for unattended installation

  • ldap_enable (Boolean) (defaults to: false)

    Set ldap use flag for sudo package

Author:

  • Toni Schmidbauer <toni@stderr.at>



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

class sudo::package (
  Optional[String[1]] $package            = undef,
  String[1]           $package_ensure     = present,
  Optional[String[1]] $package_source     = undef,
  Optional[String[1]] $package_provider   = undef,
  Optional[String[1]] $package_admin_file = undef,
  Boolean             $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'] {
    'Darwin': {}
    'AIX': {
      class { 'sudo::package::aix':
        package        => $package,
        package_source => $package_source,
      }
    }
    'Solaris': {
      class { 'sudo::package::solaris':
        package            => $package,
        package_source     => $package_source,
        package_admin_file => $package_admin_file,
      }
    }
    default: {
      if $package {
        package { $package:
          ensure   => $package_ensure,
          provider => $package_provider,
        }
      }
    }
  }
}