161 lines
3.6 KiB
Puppet
161 lines
3.6 KiB
Puppet
|
|
# Install and configure ldap client
|
|
#
|
|
# === Global variables
|
|
#
|
|
# $ldap_server:
|
|
# Array containing LDAP server URI's.
|
|
#
|
|
# $ldap_basedn:
|
|
# LDAP base DN.
|
|
#
|
|
# $ldap_login_umask:
|
|
# Default umask for LDAP users in OpenBSD, defaults to 077.
|
|
#
|
|
class ldap::client {
|
|
|
|
package { "openldap-client":
|
|
name => $operatingsystem ? {
|
|
openbsd => "openldap-client",
|
|
default => "openldap-clients",
|
|
},
|
|
ensure => installed,
|
|
}
|
|
|
|
file { "/etc/openldap/ldap.conf":
|
|
ensure => present,
|
|
content => template("ldap/ldap.conf.erb"),
|
|
mode => 0644,
|
|
owner => root,
|
|
group => $operatingsystem ? {
|
|
openbsd => wheel,
|
|
default => root,
|
|
},
|
|
require => Package["openldap-client"],
|
|
}
|
|
|
|
case $operatingsystem {
|
|
OpenBSD: {
|
|
if ! $ldap_login_umask {
|
|
$ldap_login_umask = "077"
|
|
}
|
|
|
|
package { "login_ldap":
|
|
ensure => installed,
|
|
}
|
|
|
|
file { "/etc/login.conf":
|
|
ensure => present,
|
|
content => template("ldap/login.conf.erb"),
|
|
mode => 0644,
|
|
owner => root,
|
|
group => wheel,
|
|
require => [ File["/etc/openldap/ldap.conf"],
|
|
Package["login_ldap"], ]
|
|
}
|
|
}
|
|
}
|
|
|
|
}
|
|
|
|
|
|
# Install python ldap bindings.
|
|
#
|
|
class ldap::client::python inherits ldap::client {
|
|
|
|
package { "python-ldap":
|
|
name => $operatingsystem ? {
|
|
openbsd => "py-ldap",
|
|
default => "python-ldap",
|
|
},
|
|
ensure => installed,
|
|
}
|
|
|
|
}
|
|
|
|
|
|
# Install Ruby ldap bindings.
|
|
#
|
|
class ldap::client::ruby inherits ldap::client {
|
|
|
|
package { "ruby-ldap":
|
|
ensure => installed,
|
|
}
|
|
|
|
}
|
|
|
|
|
|
# Install OpenLDAP server.
|
|
#
|
|
class ldap::server {
|
|
|
|
package { [ "openldap-servers", "openldap-servers-overlays", ]:
|
|
ensure => installed,
|
|
}
|
|
|
|
service { "ldap":
|
|
ensure => running,
|
|
enable => true,
|
|
require => Package["openldap-servers"],
|
|
}
|
|
|
|
file { "/etc/openldap/slapd.conf":
|
|
ensure => present,
|
|
source => [ "puppet:///files/ldap/slapd.conf.${fqdn}",
|
|
"puppet:///files/ldap/slapd.conf", ],
|
|
mode => 0640,
|
|
owner => root,
|
|
group => ldap,
|
|
notify => Service["ldap"],
|
|
require => Package["openldap-servers"],
|
|
}
|
|
|
|
file { "/var/lib/ldap/DB_CONFIG":
|
|
ensure => present,
|
|
source => [ "puppet:///files/ldap/DB_CONFIG.${fqdn}",
|
|
"puppet:///files/ldap/DB_CONFIG",
|
|
"puppet:///ldap/DB_CONFIG", ],
|
|
mode => 0644,
|
|
owner => root,
|
|
group => root,
|
|
require => Package["openldap-servers"],
|
|
}
|
|
|
|
ldap::server::schema { "apple-auth": }
|
|
ldap::server::schema { "apple": }
|
|
ldap::server::schema { "autofs": }
|
|
ldap::server::schema { "dnszone": }
|
|
ldap::server::schema { "hdb": }
|
|
ldap::server::schema { "openssh-lpk": }
|
|
ldap::server::schema { "rfc2307bis": }
|
|
ldap::server::schema { "samba": }
|
|
|
|
}
|
|
|
|
|
|
# Install custom schema to OpenLDAP.
|
|
#
|
|
# === Parameters
|
|
#
|
|
# $name:
|
|
# Schema name.
|
|
#
|
|
# === Sample usage
|
|
#
|
|
# ldap::server::schema { "samba": }
|
|
#
|
|
define ldap::server::schema() {
|
|
|
|
include ldap::server
|
|
|
|
file { "/etc/openldap/schema/${name}.schema":
|
|
ensure => present,
|
|
source => [ "puppet:///files/ldap/${name}.schema",
|
|
"puppet:///ldap/${name}.schema", ],
|
|
mode => 0644,
|
|
owner => root,
|
|
group => root,
|
|
require => Package["openldap-servers"],
|
|
}
|
|
|
|
}
|