From eda1988cea08bb0737eb9750a79b51967d56bcf9 Mon Sep 17 00:00:00 2001 From: Thomas Constans Date: Mon, 28 Nov 2022 22:18:20 +0100 Subject: [PATCH] solution --- Readme.md | 39 +++++++++++++++++++++++++++++++++++ replication_add_syncprov.ldif | 10 +++++++++ replication_consumer.ldif | 17 +++++++++++++++ replication_disable.ldif | 5 +++++ replication_producer.ldif | 10 +++++++++ replication_user.ldif | 9 ++++++++ 6 files changed, 90 insertions(+) create mode 100644 Readme.md create mode 100644 replication_add_syncprov.ldif create mode 100644 replication_consumer.ldif create mode 100644 replication_disable.ldif create mode 100644 replication_producer.ldif create mode 100644 replication_user.ldif diff --git a/Readme.md b/Readme.md new file mode 100644 index 0000000..5dc1500 --- /dev/null +++ b/Readme.md @@ -0,0 +1,39 @@ +# Réplication + +## Référence + +📖 Support Ch 9 (p 119) + +## Prérequis + +Un serveur ldap vierge avec avec les caractéristiques suivantes: + + * même suffixe + * même admin + * même schémas + * même overlays + * même modules + +## mettre en place la réplication entre les 2 serveurs + +### sur le producteur: + + - création compte de réplication - replication_user.ldif + - module et overlay synchprov - replication_add_syncprov.ldif + - serverid et index - replication_producer.ldif + +### sur le consommateur: + + - récupérer le certificat CA + - rajouter overlay ppolicy - atelier ppolicy + - configurer syncrepl - replication_consumer.ldif + +## troublehooting + +Vérifier que l'on peut faire un ldapsearch depuis le consumer sur le producer avec le compte de réplication + +Voir les logs, sur le producteur ET le consommateur + +TLS negotiation failure - probablement un pb de certificat non reconnu + +syncrepl_null_callback : error code 0x50 - causé par l'absence de ppolicy sur le consumer \ No newline at end of file diff --git a/replication_add_syncprov.ldif b/replication_add_syncprov.ldif new file mode 100644 index 0000000..a90d83f --- /dev/null +++ b/replication_add_syncprov.ldif @@ -0,0 +1,10 @@ +dn: cn=module,cn=config +objectClass: olcModuleList +cn: module +olcModuleLoad: syncprov.la + +dn: olcOverlay=syncprov, olcDatabase={2}mdb,cn=config +objectclass: olcSyncProvConfig +olcOverlay: syncprov +olcSpCheckpoint: 100 10 +olcSpSessionLog: 200 diff --git a/replication_consumer.ldif b/replication_consumer.ldif new file mode 100644 index 0000000..3eae6d1 --- /dev/null +++ b/replication_consumer.ldif @@ -0,0 +1,17 @@ +#créer une base d'accueil +# avec le meme suffix que la base à répliquer +dn: olcDatabase={2}mdb,cn=config +changetype: modify +replace: olcSyncrepl +olcsyncrepl: rid=001 + provider="ldaps://plop1.formation.opendoor.fr" + binddn="cn=replica,ou=services,dc=example,dc=fr" + bindmethod="simple" + credentials="123Soleil" + tls_cacert="/etc/openldap/certs/ca.pem" + searchbase="dc=example,dc=fr" + type=refreshAndPersist + retry="10 +" +- +replace: olcupdateref +olcupdateref: ldaps://plop1.formation.opendoor.fr diff --git a/replication_disable.ldif b/replication_disable.ldif new file mode 100644 index 0000000..3ac7ce2 --- /dev/null +++ b/replication_disable.ldif @@ -0,0 +1,5 @@ +dn: olcDatabase={2}mdb,cn=config +changetype: modify +delete: olcSyncREPL +- +delete: olcUpdateRef diff --git a/replication_producer.ldif b/replication_producer.ldif new file mode 100644 index 0000000..82df469 --- /dev/null +++ b/replication_producer.ldif @@ -0,0 +1,10 @@ +dn: cn=config +changetype: modify +add: olcServerId +olcServerId: 6 + +dn: olcdatabase={2}mdb,cn=config +changetype: modify +add: olcdbindex +olcdbindex: entryUUID eq +olcdbindex: entryCSN eq diff --git a/replication_user.ldif b/replication_user.ldif new file mode 100644 index 0000000..01a7e2b --- /dev/null +++ b/replication_user.ldif @@ -0,0 +1,9 @@ +dn: ou=services,dc=example,dc=fr +objectclass: organizationalUnit + +dn: cn=replica,ou=services,dc=example,dc=fr +objectclass: person +cn: replica +sn: replica +userpassword: {SSHA}w0iYqR5W1PhINqdu1Lm2oJr8P9kzBR0h +