Puppet Class: ldap::server::config

Inherits:
ldap::server
Defined in:
manifests/server/config.pp

Overview

Class: ldap::server::config

Manage the configuration of the ldap server service



5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
# File 'manifests/server/config.pp', line 5

class ldap::server::config inherits ldap::server {
  # If $config is true, we will be configuring the "config" LDAP database
  # for storing OpenLDAP configurations in LDAP itself.
  if $config {
    # If $configdn is set, use that in the template.  Else use $rootdn
    if $configdn {
      $_configdn = $configdn
    } else {
      $_configdn = $::ldap::server::rootdn
    }
    # If $configpw is set, use that in the template.  Else use $rootpw
    if $configpw {
      $_configpw = $configpw
    } else {
      $_configpw = $::ldap::server::rootpw
    }
  }

  # If $monitor is true, we will be configuring the "monitor" LDAP database
  # which allows us to query the LDAP server for statistics about itself
  if $monitor {
    # If $monitordn is set, use that in the template.  Else use $rootdn
    if $monitordn {
      $_monitordn = $monitordn
    } else {
      $_monitordn = $::ldap::server::rootdn
    }
    # If $monitorpw is set, use that in the template.  Else use $rootpw
    if $monitorpw {
      $_monitorpw = $monitorpw
    } else {
      $_monitorpw = $::ldap::server::rootpw
    }
  }

  file { $ldap::server::config_file:
    owner   => $ldap::server::ldapowner,
    group   => $ldap::server::ldapgroup,
    # may contain passwords
    mode    => $ldap::server::config_file_mode,
    content => template($ldap::server::config_template),
  }

  if $ldap::server::default_file {
    file { $ldap::server::default_file:
      owner   => 0,
      group   => 0,
      mode    => $ldap::server::default_file_mode,
      content => template($ldap::server::default_template),
    }
  }

  file { $ldap::server::schema_directory:
    ensure => directory,
    owner  => 0,
    group  => 0,
    mode   => $ldap::server::schema_directory_mode,
  }
  ->
  ldap::schema_file { $ldap::server::extra_schemas:
    directory        => $ldap::server::schema_directory,
    source_directory => $ldap::server::schema_source_directory,
  }

  file { $ldap::server::directory:
    ensure => directory,
    owner  => $ldap::server::ldapowner,
    group  => $ldap::server::ldapgroup,
    mode   => $ldap::server::directory_mode,
  }

  file { $ldap::server::run_directory:
    ensure => directory,
    owner  => $ldap::server::ldapowner,
    group  => $ldap::server::ldapgroup,
    mode   => $ldap::server::run_directory_mode,
  }

  if $ldap::server::backend == 'bdb' or $ldap::server::backend == 'hdb' {
    file { $ldap::server::db_config_file:
      owner   => $ldap::server::ldapowner,
      group   => $ldap::server::ldapgroup,
      mode    => $ldap::server::db_config_file_mode,
      content => template($ldap::server::db_config_template),
      require => File[$ldap::server::directory],
    }
  }

  if $ldap::server::dynconfig_directory and $ldap::server::purge_dynconfig_directory == true {
    file { $ldap::server::dynconfig_directory:
      ensure  => absent,
      path    => $ldap::server::dynconfig_directory,
      recurse => true,
      purge   => true,
      force   => true,
    }
  }
}