Bertrand Gouny 10 years ago
parent
commit
24a2d25217
21 changed files with 71 additions and 11 deletions
  1. 0 0
      image/service/slapd/assets/config/bootstrap/README.md
  2. 0 0
      image/service/slapd/assets/config/bootstrap/logging.ldif
  3. 0 0
      image/service/slapd/assets/config/bootstrap/schema/README.md
  4. 0 0
      image/service/slapd/assets/config/bootstrap/schema/mmc/README.md
  5. 0 0
      image/service/slapd/assets/config/bootstrap/schema/mmc/dhcp.schema
  6. 0 0
      image/service/slapd/assets/config/bootstrap/schema/mmc/dnszone.schema
  7. 0 0
      image/service/slapd/assets/config/bootstrap/schema/mmc/mail.schema
  8. 0 0
      image/service/slapd/assets/config/bootstrap/schema/mmc/mmc.schema
  9. 0 0
      image/service/slapd/assets/config/bootstrap/schema/mmc/openssh-lpk.schema
  10. 0 0
      image/service/slapd/assets/config/bootstrap/schema/mmc/quota.schema
  11. 0 0
      image/service/slapd/assets/config/bootstrap/schema/mmc/radius.schema
  12. 0 0
      image/service/slapd/assets/config/bootstrap/schema/mmc/samba.schema
  13. 0 0
      image/service/slapd/assets/config/bootstrap/schema/mmc/zarafa.schema
  14. 0 0
      image/service/slapd/assets/config/bootstrap/security.ldif
  15. 14 0
      image/service/slapd/assets/config/replication/repl-bdd.ldif
  16. 23 0
      image/service/slapd/assets/config/replication/repl-config.ldif
  17. 4 0
      image/service/slapd/assets/config/replication/repl-module.ldif
  18. 8 0
      image/service/slapd/assets/config/replication/repl-user.ldif
  19. 0 0
      image/service/slapd/assets/config/tls/tls-disable.ldif
  20. 0 0
      image/service/slapd/assets/config/tls/tls-enable.ldif
  21. 22 11
      image/service/slapd/container-start.sh

+ 0 - 0
image/service/slapd/assets/config/README.md → image/service/slapd/assets/config/bootstrap/README.md


+ 0 - 0
image/service/slapd/assets/config/logging.ldif → image/service/slapd/assets/config/bootstrap/logging.ldif


+ 0 - 0
image/service/slapd/assets/schema/README.md → image/service/slapd/assets/config/bootstrap/schema/README.md


+ 0 - 0
image/service/slapd/assets/schema/mmc/README.md → image/service/slapd/assets/config/bootstrap/schema/mmc/README.md


+ 0 - 0
image/service/slapd/assets/schema/mmc/dhcp.schema → image/service/slapd/assets/config/bootstrap/schema/mmc/dhcp.schema


+ 0 - 0
image/service/slapd/assets/schema/mmc/dnszone.schema → image/service/slapd/assets/config/bootstrap/schema/mmc/dnszone.schema


+ 0 - 0
image/service/slapd/assets/schema/mmc/mail.schema → image/service/slapd/assets/config/bootstrap/schema/mmc/mail.schema


+ 0 - 0
image/service/slapd/assets/schema/mmc/mmc.schema → image/service/slapd/assets/config/bootstrap/schema/mmc/mmc.schema


+ 0 - 0
image/service/slapd/assets/schema/mmc/openssh-lpk.schema → image/service/slapd/assets/config/bootstrap/schema/mmc/openssh-lpk.schema


+ 0 - 0
image/service/slapd/assets/schema/mmc/quota.schema → image/service/slapd/assets/config/bootstrap/schema/mmc/quota.schema


+ 0 - 0
image/service/slapd/assets/schema/mmc/radius.schema → image/service/slapd/assets/config/bootstrap/schema/mmc/radius.schema


+ 0 - 0
image/service/slapd/assets/schema/mmc/samba.schema → image/service/slapd/assets/config/bootstrap/schema/mmc/samba.schema


+ 0 - 0
image/service/slapd/assets/schema/mmc/zarafa.schema → image/service/slapd/assets/config/bootstrap/schema/mmc/zarafa.schema


+ 0 - 0
image/service/slapd/assets/config/security.ldif → image/service/slapd/assets/config/bootstrap/security.ldif


+ 14 - 0
image/service/slapd/assets/config/replication/repl-bdd.ldif

@@ -0,0 +1,14 @@
+dn: olcDatabase={2}bdb,cn=config
+changetype: modify
+add: olcSyncRepl
+olcSyncRepl: rid=003 provider=ldap://ldap1.example.org binddn="cn=replicator,ou=Admins,dc=example,dc=org" bindmethod=simple credentials=Secret123 searchbase="dc=example,dc=org" type=refreshAndPersist retry="5 5 5 +" timeout=3
+olcSyncRepl: rid=004 provider=ldap://ldap2.example.org binddn="cn=replicator,ou=Admins,dc=example,dc=org" bindmethod=simple credentials=Secret123 searchbase="dc=example,dc=org" type=refreshAndPersist retry="5 5 5 +" timeout=3
+-
+add: olcMirrorMode
+olcMirrorMode: TRUE
+
+dn: olcOverlay=syncprov,olcDatabase={2}bdb,cn=config
+changetype: add
+objectClass: olcOverlayConfig
+objectClass: olcSyncProvConfig
+olcOverlay: syncprov

+ 23 - 0
image/service/slapd/assets/config/replication/repl-config.ldif

@@ -0,0 +1,23 @@
+#Specify ServerID for both the masters
+dn: cn=config
+changetype: modify
+add: olcServerID
+olcServerID: 101 ldap://ldap1.example.org
+olcServerID: 201 ldap://ldap2.example.org
+
+#Enable Syncprov Overlay for config database
+dn: olcOverlay=syncprov,olcDatabase={0}config,cn=config
+changetype: add
+objectclass: olcOverlayConfig
+objectclass: olcSyncProvConfig
+olcOverlay: syncprov
+
+#Configure SyncRepl for config database
+dn: olcDatabase={0}config,cn=config
+changetype: modify
+add: olcSyncRepl
+olcSyncRepl: rid=001 provider=ldap://ldap1.example.org binddn="cn=admin,cn=config" bindmethod=simple credentials=config searchbase="cn=config" type=refreshAndPersist retry="5 5 300 5" timeout=1
+olcSyncRepl: rid=002 provider=ldap://ldap2.example.org binddn="cn=admin,cn=config" bindmethod=simple credentials=config searchbase="cn=config" type=refreshAndPersist retry="5 5 300 5" timeout=1
+-
+add: olcMirrorMode
+olcMirrorMode: TRUE

+ 4 - 0
image/service/slapd/assets/config/replication/repl-module.ldif

@@ -0,0 +1,4 @@
+dn: cn=module,cn=config
+objectClass: olcModuleList
+cn: module
+olcModuleLoad: syncprov.la

+ 8 - 0
image/service/slapd/assets/config/replication/repl-user.ldif

@@ -0,0 +1,8 @@
+dn: cn=replicator,dc=example,dc=org
+  changetype: add
+  objectClass: top
+  objectClass: person
+  cn: synchronisator
+  sn: synchronisator
+  description: LDAP synchronisator
+  userPassword: {SSHA}hAUGoGZEFAyJnZg/Q/aTWGnpdDv9edCh

+ 0 - 0
image/service/slapd/assets/tls-disable.ldif → image/service/slapd/assets/config/tls/tls-disable.ldif


+ 0 - 0
image/service/slapd/assets/tls-enable.ldif → image/service/slapd/assets/config/tls/tls-enable.ldif


+ 22 - 11
image/service/slapd/container-start.sh

@@ -1,4 +1,4 @@
-#!/bin/bash -ex
+#!/bin/bash -e
 
 FIRST_START_DONE="/etc/docker-openldap-first-start-done"
 WAS_STARTED_WITH_TLS="/etc/ldap/slapd.d/docker-openldap-was-started-with-tls"
@@ -114,15 +114,15 @@ EOF
       ldapadd -c -Y EXTERNAL -Q -H ldapi:/// -f /etc/ldap/schema/ppolicy.ldif
     fi
 
-    # convert  schemas to ldif
+    # convert schemas to ldif
     SCHEMAS=""
-    for f in $(find /osixia/slapd/schema -name \*.schema -type f); do
+    for f in $(find /osixia/slapd/config/bootstrap/schema -name \*.schema -type f); do
       SCHEMAS="$SCHEMAS ${f}"
     done
     /osixia/slapd/schema-to-ldif.sh "$SCHEMAS"
 
     # add schemas
-    for f in $(find /osixia/slapd/schema -name \*.ldif -type f); do
+    for f in $(find /osixia/slapd/config/bootstrap/schema -name \*.ldif -type f); do
       echo "Processing file ${f}"
       # add schema if not already exists
       SCHEMA=$(basename "${f}" .ldif)
@@ -137,10 +137,10 @@ EOF
 
     # adapt security config file
     get_base_dn
-    sed -i "s|dc=example,dc=org|$BASE_DN|g" /osixia/slapd/config/security.ldif
+    sed -i "s|dc=example,dc=org|$BASE_DN|g" /osixia/slapd/config/bootstrap/security.ldif
 
     # process config files
-    for f in $(find /osixia/slapd/config -name \*.ldif -type f); do
+    for f in $(find /osixia/slapd/config/bootstrap -name \*.ldif -type f); do
       echo "Processing file ${f}"
       ldapmodify -Y EXTERNAL -Q -H ldapi:/// -f $f
     done
@@ -153,11 +153,11 @@ EOF
     check_tls_files $SSL_CA_CRT_FILENAME $SSL_CRT_FILENAME $SSL_KEY_FILENAME
 
     # adapt tls ldif
-    sed -i "s,/osixia/slapd/ssl/ca.crt,/osixia/slapd/ssl/${SSL_CA_CRT_FILENAME},g" /osixia/slapd/tls-enable.ldif
-    sed -i "s,/osixia/slapd/ssl/ldap.crt,/osixia/slapd/ssl/${SSL_CRT_FILENAME},g" /osixia/slapd/tls-enable.ldif
-    sed -i "s,/osixia/slapd/ssl/ldap.key,/osixia/slapd/ssl/${SSL_KEY_FILENAME},g" /osixia/slapd/tls-enable.ldif
+    sed -i "s,/osixia/slapd/ssl/ca.crt,/osixia/slapd/ssl/${SSL_CA_CRT_FILENAME},g" /osixia/slapd/config/tls/tls-enable.ldif
+    sed -i "s,/osixia/slapd/ssl/ldap.crt,/osixia/slapd/ssl/${SSL_CRT_FILENAME},g" /osixia/slapd/config/tls/tls-enable.ldif
+    sed -i "s,/osixia/slapd/ssl/ldap.key,/osixia/slapd/ssl/${SSL_KEY_FILENAME},g" /osixia/slapd/config/tls/tls-enable.ldif
 
-    ldapmodify -Y EXTERNAL -Q -H ldapi:/// -f /osixia/slapd/tls-enable.ldif
+    ldapmodify -Y EXTERNAL -Q -H ldapi:/// -f /osixia/slapd/config/tls/tls-enable.ldif
 
     [[ -f "$WAS_STARTED_WITH_TLS" ]] && rm -f "$WAS_STARTED_WITH_TLS"
     touch $WAS_STARTED_WITH_TLS
@@ -176,10 +176,21 @@ EOF
   else
 
     [[ -f "$WAS_STARTED_WITH_TLS" ]] && rm -f "$WAS_STARTED_WITH_TLS"
-    ldapmodify -c -Y EXTERNAL -Q -H ldapi:/// -f /osixia/slapd/tls-disable.ldif || true
+    ldapmodify -c -Y EXTERNAL -Q -H ldapi:/// -f /osixia/slapd/config/tls/tls-disable.ldif || true
 
   fi
 
+
+  # replication config
+  if [ "${USE_REPLICATION,,}" == "true" ]; then
+
+
+  else
+
+
+  fi
+
+
   # stop OpenLDAP
   kill -INT `cat /run/slapd/slapd.pid`