diff options
Diffstat (limited to 'modules/openldap/manifests')
| -rw-r--r-- | modules/openldap/manifests/config.pp | 7 | ||||
| -rw-r--r-- | modules/openldap/manifests/exported_slave.pp | 3 | ||||
| -rw-r--r-- | modules/openldap/manifests/init.pp | 122 | ||||
| -rw-r--r-- | modules/openldap/manifests/master.pp | 50 | ||||
| -rw-r--r-- | modules/openldap/manifests/slave.pp | 23 | ||||
| -rw-r--r-- | modules/openldap/manifests/slave_instance.pp | 8 | ||||
| -rw-r--r-- | modules/openldap/manifests/var.pp | 3 |
7 files changed, 115 insertions, 101 deletions
diff --git a/modules/openldap/manifests/config.pp b/modules/openldap/manifests/config.pp new file mode 100644 index 00000000..336f8a23 --- /dev/null +++ b/modules/openldap/manifests/config.pp @@ -0,0 +1,7 @@ +define openldap::config($content) { + file { $name: + require => Package['openldap-servers'], + content => $content, + notify => Exec["slaptest"], + } +} diff --git a/modules/openldap/manifests/exported_slave.pp b/modules/openldap/manifests/exported_slave.pp new file mode 100644 index 00000000..5b9f6b87 --- /dev/null +++ b/modules/openldap/manifests/exported_slave.pp @@ -0,0 +1,3 @@ +# this define is here only to be exported by slave +# and later used by get_ldap_servers +define openldap::exported_slave { } diff --git a/modules/openldap/manifests/init.pp b/modules/openldap/manifests/init.pp index 4f2c2d33..34a214a2 100644 --- a/modules/openldap/manifests/init.pp +++ b/modules/openldap/manifests/init.pp @@ -1,114 +1,34 @@ class openldap { - define config($content) { - file { $name: - require => Package["openldap-servers"], - content => $content, - notify => Exec["/etc/init.d/ldap check"], - } - } - - class common { - package { 'openldap-servers': } - - service { ldap: - subscribe => Package['openldap-servers'], - require => Openssl::Self_signed_cert["ldap.$domain"], - } - - exec { "/etc/init.d/ldap check": - refreshonly => true, - notify => Service["ldap"], - } + include openldap::var - file {"/etc/ssl/openldap/": - ensure => directory, - } + package { 'openldap-servers': } - openssl::self_signed_cert{ "ldap.$domain": - directory => "/etc/ssl/openldap/" - } - - openldap::config { - '/etc/openldap/slapd.conf': content => ""; - '/etc/openldap/mandriva-dit-access.conf': content => ""; - '/etc/sysconfig/ldap': content => ""; - } + service { $openldap::var::service: + subscribe => Package['openldap-servers'], + require => Openssl::Self_signed_cert["ldap.${::domain}"], } - class master inherits common { - Openldap::Config['/etc/openldap/mandriva-dit-access.conf'] { - content => template("openldap/mandriva-dit-access.conf"), - } - - $ldap_test_password = extlookup("ldap_test_password",'x') - $ldap_test_directory = "/var/lib/ldap/test" - file { "$ldap_test_directory": - ensure => directory, - group => ldap, - owner => ldap, - require => Package["openldap-servers"], - before => Service['ldap'], - } - - Openldap::Config['/etc/openldap/slapd.conf'] { - content => template("openldap/slapd.conf", "openldap/slapd.test.conf"), - } - - Openldap::Config['/etc/sysconfig/ldap'] { - content => template("openldap/ldap.sysconfig"), - } - - if $environment == "test" { - # if we ae in a test vm, we need to fill the directory - # with data - package { "openldap-clients": } - - local_script { "init_ldap.sh": - content => template('openldap/init_ldap.sh'), - require => Package["openldap-clients"], - } - - exec { "init_ldap.sh": - # taken arbitrary among all possible files - creates => "/var/lib/ldap/objectClass.bdb", - require => Local_script["init_ldap.sh"], - } - } + exec { "slaptest": + refreshonly => true, + notify => Service[$openldap::var::service], } - # this define is here only to be exported by slave - # and later used by get_ldap_servers - define exported_slave { - + file { '/etc/ssl/openldap/': + ensure => directory, } - # TODO create the user for sync in ldap - # syntaxic sugar - define slave_instance($rid) { - # seems the inheritance do not work as I believe - include openldap::common - class { 'openldap::slave': - rid => $rid, - } + openssl::self_signed_cert{ "ldap.${::domain}": + directory => '/etc/ssl/openldap/', } - class slave($rid) inherits common { - - @@openldap::exported_slave { $rid: } - - $sync_password = extlookup("ldap_syncuser-$hostname",'x') - - # same access rights as master - Openldap::Config['/etc/openldap/mandriva-dit-access.conf'] { - content => template("openldap/mandriva-dit-access.conf"), - } - - Openldap::Config['/etc/openldap/slapd.conf'] { - content => template("openldap/slapd.conf",'openldap/slapd.syncrepl.conf'), - } - - Openldap::Config['/etc/sysconfig/ldap'] { - content => template("openldap/ldap.sysconfig"), - } + openldap::config { + '/etc/openldap/slapd.conf': + content => ''; + '/etc/openldap/mandriva-dit-access.conf': + content => ''; + '/etc/sysconfig/ldap': + content => ''; + '/etc/sysconfig/slapd': + content => ''; } } diff --git a/modules/openldap/manifests/master.pp b/modules/openldap/manifests/master.pp new file mode 100644 index 00000000..53122628 --- /dev/null +++ b/modules/openldap/manifests/master.pp @@ -0,0 +1,50 @@ +class openldap::master inherits openldap { + include openldap::var + + Openldap::Config['/etc/openldap/mandriva-dit-access.conf'] { + content => template('openldap/mandriva-dit-access.conf'), + } + + $ldap_test_password = extlookup('ldap_test_password','x') + $ldap_test_directory = '/var/lib/ldap/test' + file { $ldap_test_directory: + ensure => directory, + group => 'ldap', + owner => 'ldap', + require => Package['openldap-servers'], + before => Service[$openldap::var::service], + } + + Openldap::Config['/etc/openldap/slapd.conf'] { + content => template('openldap/slapd.conf', 'openldap/slapd.test.conf'), + } + + Openldap::Config['/etc/sysconfig/ldap'] { + content => template('openldap/ldap.sysconfig'), + } + + Openldap::Config['/etc/sysconfig/slapd'] { + content => template('openldap/slapd.sysconfig'), + } + + host { "ldap.${::domain}": + ip => '127.0.0.1', + } + + if $::environment == 'test' { + # if we are in a test vm, we need to fill the directory + # with data + package { 'openldap-clients': } + + mga_common::local_script { 'init_ldap.sh': + content => template('openldap/init_ldap.sh'), + require => Package['openldap-clients'], + } + + exec { 'init_ldap.sh': + # taken arbitrary among all possible files + creates => '/var/lib/ldap/objectClass.bdb', + require => Mga_common::Local_script['init_ldap.sh'], + } + } +} diff --git a/modules/openldap/manifests/slave.pp b/modules/openldap/manifests/slave.pp new file mode 100644 index 00000000..ba0cfb9d --- /dev/null +++ b/modules/openldap/manifests/slave.pp @@ -0,0 +1,23 @@ +class openldap::slave($rid) inherits openldap { + + @@openldap::exported_slave { $rid: } + + $sync_password = extlookup("ldap_syncuser-${::hostname}",'x') + + # same access rights as master + Openldap::Config['/etc/openldap/mandriva-dit-access.conf'] { + content => template('openldap/mandriva-dit-access.conf'), + } + + Openldap::Config['/etc/openldap/slapd.conf'] { + content => template('openldap/slapd.conf','openldap/slapd.syncrepl.conf'), + } + + Openldap::Config['/etc/sysconfig/ldap'] { + content => template('openldap/ldap.sysconfig'), + } + + Openldap::Config['/etc/sysconfig/slapd'] { + content => template('openldap/slapd-slave.sysconfig'), + } +} diff --git a/modules/openldap/manifests/slave_instance.pp b/modules/openldap/manifests/slave_instance.pp new file mode 100644 index 00000000..fbf998c6 --- /dev/null +++ b/modules/openldap/manifests/slave_instance.pp @@ -0,0 +1,8 @@ +# TODO create the user for sync in ldap +# this define is mainly syntactic sugar +define openldap::slave_instance($rid) { + include openldap + class { 'openldap::slave': + rid => $rid, + } +} diff --git a/modules/openldap/manifests/var.pp b/modules/openldap/manifests/var.pp new file mode 100644 index 00000000..d6947eb8 --- /dev/null +++ b/modules/openldap/manifests/var.pp @@ -0,0 +1,3 @@ +class openldap::var { + $service = 'slapd' +} |
