commit eda1988cea08bb0737eb9750a79b51967d56bcf9 Author: Thomas Constans Date: Mon Nov 28 22:18:20 2022 +0100 solution 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 +