Skip to content

Commit

Permalink
Rewrited completely the support for ldap
Browse files Browse the repository at this point in the history
  • Loading branch information
Daniele Palumbo committed Nov 27, 2015
1 parent c331e7d commit e691b20
Show file tree
Hide file tree
Showing 4 changed files with 49 additions and 24 deletions.
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -175,7 +175,6 @@ sudo::conf { "foreman-proxy":
| Parameter | Type | Default | Description |
| :-------------- | :------ |:----------- | :---------- |
| enable | boolean | true | Set this to remove or purge all sudoers configs |
| ldap_enable | boolean | false | Set this to add support to LDAP |
| package | string | OS specific | Set package name _(for unsupported platforms)_ |
| package_ensure | string | present | latest, absent, or a specific package version |
| package_source | string | OS specific | Set package source _(for unsupported platforms)_ |
Expand All @@ -185,6 +184,7 @@ sudo::conf { "foreman-proxy":
| config_file_replace | boolean | true | Replace config file with module config file |
| config_dir | string | OS specific | Set config_dir _(for unsupported platforms)_ |
| source | string | OS specific | Set source _(for unsupported platforms)_ |
| ldap_enable | boolean | false | Add support to LDAP |

## sudo::conf class / sudo::configs hash parameters

Expand Down
40 changes: 24 additions & 16 deletions manifests/init.pp
Original file line number Diff line number Diff line change
Expand Up @@ -66,6 +66,10 @@
# what you're doing.
# Default: auto-set, platform specific
#
# [*ldap_enable*]
# Enable ldap support on the package
# Default: false
#
# Actions:
# Installs sudo package and checks the state of sudoers file and
# sudoers.d directory.
Expand All @@ -79,8 +83,8 @@
# [Remember: No empty lines between comments and class definition]
class sudo(
$enable = true,
$ldap_enable = false,
$package = $sudo::params::package,
$package_default = $sudo::params::package,
$package_ldap = $sudo::params::package_ldap,
$package_ensure = $sudo::params::package_ensure,
$package_source = $sudo::params::package_source,
$package_admin_file = $sudo::params::package_admin_file,
Expand All @@ -89,7 +93,8 @@
$config_file = $sudo::params::config_file,
$config_file_replace = true,
$config_dir = $sudo::params::config_dir,
$source = $sudo::params::source
$source = $sudo::params::source,
$ldap_enable = false,
) inherits sudo::params {


Expand All @@ -106,11 +111,27 @@
default: { fail('no $enable is set') }
}

validate_bool($ldap_enable)
case $ldap_enable {
true: {
if $package_ldap == undef {
fail('on your os ldap support for sudo is not yet supported')
}
$package = $package_ldap
}
false: {
$package = $package_default
}
default: { fail('no $ldap_enable is set') }
}


class { 'sudo::package':
package => $package,
package_ensure => $package_ensure,
package_source => $package_source,
package_admin_file => $package_admin_file,
ldap_enable => $ldap_enable,
}

file { $config_file:
Expand Down Expand Up @@ -141,19 +162,6 @@
lens => 'FixedSudoers.lns',
}
}

if $ldap_enable == true and $::operatingsystem == 'Gentoo' {
if defined( '::portage' ) {
Class['sudo'] -> Class['portage']
package_use { 'app-admin/sudo':
use => ['ldap'],
target => 'sudo-flags',
ensure => present,
}
} else {
notify {'portage package needed to define ldap use on sudo':}
}
}

# Load the Hiera based sudoer configuration (if enabled and present)
#
Expand Down
18 changes: 18 additions & 0 deletions manifests/package.pp
Original file line number Diff line number Diff line change
Expand Up @@ -34,8 +34,26 @@
$package_ensure = present,
$package_source = '',
$package_admin_file = '',
$ldap_enable = false,
) {

if $ldap_enable == true {
case $::osfamily {
'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')
}
}
}
}

case $::osfamily {
aix: {
class { 'sudo::package::aix':
Expand Down
13 changes: 6 additions & 7 deletions manifests/params.pp
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
#class sudo::params
#class sudo::params
#Set the paramters for the sudo module
class sudo::params {
$source_base = "puppet:///modules/${module_name}/"
Expand All @@ -17,11 +17,8 @@
}
}
}
if ( $ldap_enable == 'false' ) {
$package = 'sudo'
} else {
$package = 'sudo-ldap'
}
$package = 'sudo'
$package_ldap = 'sudo-ldap'
$package_ensure = 'present'
$package_source = ''
$package_admin_file = ''
Expand All @@ -30,8 +27,9 @@
$config_file_group = 'root'
}
redhat: {
# in redhat sudo package is already compiled for ldap support
$package = 'sudo'
# in redhat sudo package is already compiled for ldap support
$package_ldap = $package

# rhel 5.0 to 5.4 use sudo 1.6.9 which does not support
# includedir, so we have to make sure sudo 1.7 (comes with rhel
Expand Down Expand Up @@ -137,6 +135,7 @@
case $::operatingsystem {
gentoo: {
$package = 'sudo'
$package_ldap = $package
$package_ensure = 'present'
$config_file = '/etc/sudoers'
$config_dir = '/etc/sudoers.d/'
Expand Down

0 comments on commit e691b20

Please sign in to comment.