1 puppet code class bob_openldap {
3 puppet code define server (
4 puppet code $argsfile = undef,
5 puppet code $bdb_cachesize = '',
6 puppet code $bdb_checkpoint = '',
7 puppet code $bdb_directory = undef,
8 puppet code $bdb_idlcachesize = '',
9 puppet code $bdb_rootdn,
10 puppet code $bdb_rootpw,
11 puppet code $bdb_shm_key = '',
12 puppet code $bdb_suffix,
13 puppet code $conf_path = undef,
14 puppet code $conf_dir = undef,
15 puppet code $enable = false,
16 puppet code $include = [],
17 puppet code $includepath = undef,
18 puppet code $modulepath = '',
19 puppet code $modules = [],
20 puppet code $package = undef,
21 puppet code $pidfile = undef,
22 puppet code $sysconf_path = undef
25 puppet code $resource_name = "bob_openldap_server"
27 puppet code if($name != "params") {
28 puppet code fail("${resource_name}: This function is a singleton. Make sure the resource name is 'params'.")
31 puppet code case $operatingsystem {
33 puppet code case $operatingsystemrelease {
34 puppet code /^(12|13)$/: {
35 puppet code if(!$argsfile) { $_argsfile = "/var/run/openldap/slapd.args" }
36 puppet code if(!$bdb_directory) { $_bdb_directory = "/var/lib/ldap" }
37 puppet code if(!$conf_path) { $_conf_path = "/etc/openldap/slapd.conf" }
38 puppet code if(!$conf_dir) { $_conf_dir = "/etc/openldap/slapd.d" }
39 puppet code if(!$package) { $_package = ["openldap-servers"] }
40 puppet code if(!$pidfile) { $_pidfile = "/var/run/openldap/slapd.pid" }
41 puppet code if(!$service) { $_service = "slapd" }
42 puppet code if(!$sysconf_path) { $_sysconf_path = "/etc/sysconfig/ldap" }
48 puppet comment # Presume the OS did not match and because these args are necessary, just
49 puppet comment # bail with an error.
50 puppet code if(!($_argsfile and $_bdb_directory and $_pidfile and $_conf_path and
51 puppet code $_package and $_service and $_sysconf_path and $_conf_dir)) {
52 puppet code fail("${resource_name}: Unsupported operating system: ${operatingsystem} version ${operatingsystemrelease} and you have not setup the args for: argsfile, bdb_directory, conf_dir, conf_path, package, pidfile, sysconf_path and service.")
55 puppet comment # Fix paths - add forward slashes at the end of strings without them
56 puppet code $_includepath = regsubst($includepath, '([^/])$', '\1/')
57 puppet code $_dbconf_path = "${_bdb_directory}/DB_CONFIG"
61 puppet code $_conf_path:
62 puppet code content => template("bob_openldap/slapd.conf"),
63 puppet code require => Package[$_package],
64 puppet code owner => "ldap",
65 puppet code group => "root",
66 puppet code mode => "0440",
67 puppet code notify => Service[$_service];
68 puppet code $_sysconf_path:
69 puppet code content => template("bob_openldap/ldap.sysconf"),
70 puppet code require => Package[$_package],
71 puppet code owner => "root",
72 puppet code group => "root",
73 puppet code mode => "0644";
74 puppet code $_conf_dir:
75 puppet code force => true,
76 puppet code ensure => absent,
77 puppet code before => Service[$_service];
78 puppet code $_dbconf_path:
79 puppet code content => "",
80 puppet code notify => Service[$_service];
83 puppet code $_package:
84 puppet code ensure => installed;
87 puppet code $_service:
88 puppet code ensure => $enable ? {
89 puppet code true => "running",
90 puppet code false => "stopped"
92 puppet code enable => $enable,
93 puppet code hasstatus => true,
94 puppet code require => [ Package[$_package], File[$_conf_path] ];
98 puppet code define client (
100 puppet code $network_timeout = '',
101 puppet code $path = undef,
102 puppet code $timeout = '',
103 puppet code $binddn = '',
104 puppet code $tls_cacertdir = undef,
108 puppet code $resource_name = "bob_openldap_client"
110 puppet code if($name != "params") {
111 puppet code fail("${resource_name}: This function is a singleton. Make sure the resource name is 'params'.")
114 puppet code case $operatingsystem {
115 puppet code Fedora: {
116 puppet code case $operatingsystemrelease {
117 puppet code /^(12|13)$/: {
118 puppet code if(!$tls_cacertdir) { $_tls_cacertdir = "/etc/openldap/cacerts" }
119 puppet code if(!$path) { $_path = "/etc/openldap/ldap.conf" }
125 puppet comment # Presume the OS did not match and because these args are necessary, just
126 puppet comment # bail with an error.
127 puppet code if(!($_tls_cacertdir and $_path)) {
128 puppet code fail("${resource_name}: Unsupported operating system: ${operatingsystem} version ${operatingsystemrelease} and you have not setup the args for: tls_cacertdir, path.")
131 puppet comment # Fix some vars, ready for templating
132 puppet code $_base = $base
133 puppet code $_binddn = $binddn
134 puppet code $_network_timeout = $network_timeout
135 puppet code $_timeout = $timeout
136 puppet code $_uri = $uri
140 puppet code content => template("bob_openldap/ldap.conf")