Table des matières

Réplication du Serveur LDAP

Nous souhaitons répliquer l'intégralité d'un serveur LDAP (maître) sur un autre serveur (esclave).

Il y a deux solutions possibles, utiliser slurpd ou bien syncrepl. Nous utiliserons cette 2ème méthode. Syncrepl se base sur LDAP Content Synchronisation. Il y peu de modifications à faire sur le serveur maître.

La documentation d'installation du serveur LDAP est disponible ici : installation serveur LDAP.

Configuration du maître

Configurer le maître n'est pas trés compliqué.

Dans /etc/ldap/slapd.conf :

 # rootdn directive for specifying a superuser on the database. This is needed 
 # for syncrepl. 
 rootdn          "cn=admin,dc=mdl29,dc=net" 
 rootpw          {SHA}W6ph5Mm5Pz8GgiULbPgzG37mj9g=
  
 moduleload syncprov 
 overlay syncprov
 syncprov-checkpoint 100 10
 syncprov-sessionlog 100

Reste enfin à redémarrer le service sur l’annuaire maître pour que la réplication fonctionne.

 /etc/init.d/slapd restart

Configuration de l'esclave

Coté esclave, il est existe deux méthodes de réplication lorsqu’on utilise SyncRepl :

L’exemple ci-dessous décrit la configuration d’un esclave en mode “refreshAndPersist” qui présente beaucoup plus d’intérêt dans le sens ou ce mode permet d’obtenir une synchro en temps réél de l’annaire esclave.

Schémas du serveur esclave

Une méthode rapide peut-être de copier simplement tous les schémas du maître avec une commande du type :

 scp root@ip_du_serveur_LDAP_maitre:/etc/ldap/schema/*.schema /etc/ldap/schema/

Bien évidemment, il reste à modifier le fichier slapd.conf pour correspondre à la configuration du maître.

Contrairement à slurpd, avec SyncRepl l’annuaire esclave ne doit pas nécessairement être identique à l’annuaire maître lorsque l’on démarre la réplication. La méthode la plus simple est donc de supprimer complètement les données existantes sur l’esclave et de démarrer ensuite la réplication. De cette façon, au démarrage du démon, syncrepl va copier l’intégralité de l’annuaire maître sur l’esclave.

 /etc/init.d/slapd stop 
 rm /var/lib/ldap/* 
 /etc/init.d/slapd start

Dans /etc/ldap/slapd.conf :

 # rootdn directive for specifying a superuser on the database. This is needed
 # for syncrepl.
 
 rootdn          "cn=admin,dc=mdl29,dc=net" 
 rootpw          {SHA}W6ph5Mm5Pz8GgiULbPgzG37mj9g=
 
 syncrepl   rid=100
        provider=ldap://ip_du_serveur_LDAP_maitre:389 
        type=refreshAndPersist
        retry="60 10 300 +"
        searchbase="dc=mdl29,dc=net"
        scope=sub
        schemachecking=on
        bindmethod=simple
        binddn="cn=admin,dc=mdl29,dc=net"
        credentials="motdepasse_en_clair"         
 updateref       ldap://ip_du_serveur_LDAP_maitre:389 

On redémarre le service :

  /etc/init.d/slapd restart
Cette configuration impose la vérification des schémas grâce à l’option schemachecking=on. Il faut donc impérativement que l’ensemble des schémas utilisés sur le maître soient disponibles sur les esclaves.

Explication

Écriture depuis un esclave

La réplication proposée est une réplication de type maître / esclave. C’est à dire qu’il n’est possible de faire des modifications que sur le maître. Pour contourner le problème, il est possible d’indiquer à un esclave de transmettre les demandes d’écriture à l’annuaire maître. Pour cela, il suffit d’ajouter la ligne suivante dans le fichier /etc/ldap/slapd.conf de l’esclave :

 updateref       ldap://ip_du_serveur_LDAP_maitre:389