class ldap {
        File {  owner => "root",
                group => "root",
                mode => "0644"
        }

        case $operatingsystem {
                centos: { $ldap_packages = ["nss_ldap", "openldap-clients"] }
                debian: { $ldap_packages = ["ldap-utils", "libldap2", "libnss-ldap", "libpam-ldap"] }
        }

        package { $ldap_packages:
                ensure => installed }

        file { $operatingsystem ? {
                debian => [ "/etc/libnss-ldap.conf", "/etc/pam_ldap.conf" ],
                centos => "/etc/ldap.conf",
                default => [ "/etc/libnss-ldap.conf", "/etc/pam_ldap.conf" ]
                }:

                source  => "puppet:///ldap/libnss-ldap.conf" 
        }

        file { $operatingsystem ? {
                debian => "/etc/ldap.conf",
                centos => "/etc/openldap/ldap.conf",
                default => "/etc/ldap.conf"
                }:

                source  => "puppet:///ldap/ldap.conf"

        }

        file { $operatingsystem ? {
                debian => "/etc/nsswitch.conf",
                centos => "/etc/nsswitch.conf",
                default => "/etc/nsswitch.conf"
                }:

                source  => "puppet:///ldap/nsswitch.conf"
        }

        file { $operatingsystem ? {
                debian => "/etc/pam.d/common-account",
                centos => "",
                default => ""
                }:

                source  => "puppet:///ldap/common-account"
        }

        file { $operatingsystem ? {
                debian => "/etc/pam.d/common-auth",
                centos => "",
                default => ""
                }:

                source  => "puppet:///ldap/common-auth"
        }
}