Ceci est une ancienne révision du document !
Table des matières
Replication LDAP avec slurpd
La methode de replication via slurpd n'est pas la méthode conseillée : on constate de nombreux problemes de synchronisation, il vaut mieux utiliser syncrepl pour la réplication (bientot un article la dessus). Pourquoi cet article alors ? tout simplement que syncrepl ne marche pas avec OpenLDAP 2.3 qui est inclus dans la Debian Etch par exemple
Ebauche d'article : a compléter
Prérequis
- Le serveur esclave doit être physiquement sur une autre machine que le serveur maître. Il n’est pas possible de faire de la réplication d’une base LDAP sur le même serveur que la base principale - de toutes manières cela n’a aucun intérêt.
- Le type de backend utilisé doit être identique
- Les versions (au moins majeures ) d’OpenLdap doivent etre identiques sur le maitre et l'esclave. Il est conseillé d'avoir la même version
- Les serveurs maitre et esclave doivent être à la même l'heure
L'annuaire a répliquer est situé sur ldap-1.mondomaine.com, et la replication se fait sur ldap-2.mondomaine.com, la racine du LDAP a répliquer est “dc=local”
Préparatifs
- Créer un compte dédié a la réplication dans l'annuaire LDAP. Ce compte sera nommé “Replicator” . Il ne sera pas utilisé sur le maitre, mais aura les droits d'ecriture sur le LDAP au niveau de l'esclave car il servira à effectuer les mises a jour. Le mot de passe de ce compte sera en clair dans le fichier de configuration /etc/ldap/slapd.conf
Configuration du maitre
Il faut maintenant configurer les services slapd et slurpd sur le maître pour que celui ci agisse en tant que tel. Cette configuration se fait dans le fichier /etc/openldap/slapd.conf :
Les directives suivantes sont à ajouter :
- replogfile : fichier de réplication. C’est ce fichier qui est utilisé par slurpd pour la réplication.
- replica : directive de compte de réplication. Ces informations seront utilisées par le maître pour contacter et mettre à jour l’esclave :
- host : adresse IP et port ldap de l’esclave
- binddn = compte à utiliser pour mettre à jour l’esclave.
- bindmethod = methode de cryptage et mot de passe du compte de réplication (ici “simple”)
La directive ’replica’ comprend les arguments host, binddn et bindmethod. Si vous passez une ligne entre les arguments assurez vous qu’il y ai au moins un espace en début de ligne .
Il faut donc ajouter dans le fichier slapd.conf :
# Replication configuration (this computer is a slurpd master ) replogfile /var/lib/ldap/replog replica host=ldap-2.mondomaine.com:389 binddn="cn=Replicator,dc=local" bindmethod=simple credentials="MotDePasseEnClair"
Effectuer la copie des fichiers du maître sur l’esclave
Tout d’abord, copier le fichier slapd.conf, après avoir stoppé OpenLdap sur l’esclave - (esclave) service ldap stop ….(changez de console !! ) - (maitre) scp /etc/openldap/slapd.conf root@10.44.180.6 :/etc/openldap/copiePDC/slapd.conf
Faites ensuite un export de la base LDAP du maître sur l’esclave. Il est nécessaire de stopper le maître à ce moment pour éviter des problèmes d’intégrité de la base. - (maitre) service ldap stop - (maitre) slapcat -l /tmp/maitre.ldif - (maitre) scp /tmp/maitre.ldif root@10.44.180.6 :/etc/openldap/copiePDC/maitre.ldif
Redémarrer ensuite openldap sur le mâitre :
- (maitre) service ldap start Remarquer que le service slurpd démarre également, du aux directives que nous venons d’ajouter. Configurer l’esclave
Nous avons besoin de OpenLdap et des schémas nécessaires aux classes d’objet ldap gérées( NIS, samba, etc, … ).
Remplacer le fichier slapd.conf de l’esclave par celui du maître. ( faites un copie de l’ancien fichier si besoin ).
- (esclave) cd /etc/openldap - (esclave) mv slapd.conf slapd.old - (esclave) cp copiePDC/slapd.conf slapd.conf
Commenter les lignes de réplication ajoutées précédemment :
Modifier la directive ACL pour donner les droits au compte Replicator de modifier l’esclave.
Indiquer également l’adresse du maître et le compte qu’il utilisera (Replicator ), pour modifier l’esclave
Importer la base sur l’esclave. - (esclave) cd /etc/openldap - (esclave) slapadd -l copiePDC/maitre.ldif
Vérifier les droits d“écriture et de lecture dans le répertoire /var/lib/ldap qui doivent être positionnés pour le compte ’ldap’. A défaut, faire :
- (esclave) chown -R ldap:ldap /var/lib/ldap/*
Démarrer l’esclave
- (esclave) service ldap start