class 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}", } }