All pastes #2131682 Raw Edit

Something

public text v1 · immutable
#2131682 ·published 2012-03-23 23:33 UTC
rendered paste body
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}",
  }
}