Outils pour utilisateurs

Outils du site


braveo:docinstallreplicldap

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 :

  • refreshOnly : L’esclave se met à jour périodiquement en utilisant les données du maître. Par exemple, il se connecte toute les heures pour vérifier si des données ont été modifiées.
  • refreshAndPersist : L’esclave conserve une connexion persistante avec l’annuaire maître et les données sont répliquées en temps réel lors de chaque modification sur le maître.

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

  • rid: Identifiant du serveur. Il semble qu'il doivent être unique entre réplicat
  • provider: Le maître de réplication, peut être le master ldap ou un réplicat mis en maître de réplication.
  • type: Le type de réplication refreshAndPersist ou refreshOnly
  • retry: indique la reconnexion en cas de perte de connexion(ici 10 fois toutes les 60s, puis à l'infini toutes les 300s)
  • searchbase: le dn de réplication
  • filter: Filtre pour la réplication
  • scope: sub, one
  • schemachecking: si on vérifie la cohérence avec le schéma
  • updatedn: le dn qui va écrire la réplication (pas besoin qu'il soit dans le LDAP)
  • bindmethod: simple
  • binddn: le dn qui va se connecter au maître de réplication
  • credentials: le mot de passe de ce dn
  • updateref: le serveur maître ldap

É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
braveo/docinstallreplicldap.txt · Dernière modification: 2016/07/19 15:36 (modification externe)