rendered paste bodyclass ldap::params {
case $::operatingsystem {
/(CentOS|RedHat)/: {
$packages = [ 'nss_ldap', 'openldap-clients', 'python-ldap', 'nscd' ]
$config_files = [ '/etc/nsswitch.conf', '/etc/ldap.conf', '/etc/openldap/ldap.conf' ]
$services = [ 'nscd' ]
}
/(Solaris)/: {
$packages = 'naming/ldap'
$config_files = [ '/etc/nsswitch.conf', '/var/ldap/key3.db', '/var/ldap/cert8.db',
'/var/ldap/ldap_client_file', '/var/ldap/ldap_client_cred' ]
$services = [ '/network/ldap/client:default', '/system/name-service-cache:default' ]
}
default: {
fail("Unsupported platform: ${::operatingsystem}")
}
}
}
###################
class ldap (
$packages = $ldap::params::packages,
$config_files = $ldap::params::config_files,
$services = $ldap::params::services
) inherits ldap::params {
package { $packages:
ensure => installed,
}
ldap::config_file{ $config_files: }
service { $services:
ensure => running,
enable => true,
}
#########
define ldap::config_file() {
file { $name:
ensure => file,
owner => 'root',
group => 'root',
source => "puppet:///modules/ldap/${name}",
}
}