Mise en place d'un réplicat LDAP
Date de publication : 08/08/2006 , Date de mise à jour : 12/10/2006
Par
julp (Autres articles)
La réplication offre la possibilité d'avoir une sauvegarde en temps réel des
données de l'annuaire et de pouvoir alléger le trafic en lecture.
Après avoir installé et configuré vos annuaires LDAP, ce tutorial vous aidera
à mettre en place la réplication étape par étape.
Introduction
1. Création d'un utilisateur pour la réplication
2. Configuration de l'annuaire maître
3. Configuration de l'annuaire esclave
4. Démarrage des différents services
4.1. Préparation du démarrage automatique
4.2. Copie de la base sur l'annuaire esclave
4.3. Démarrage des annuaires et service de réplication
5. Problèmes connus
5.1. Plantage de slapd
5.2. La réplication ne fonctionne plus
Introduction
Le système de réplication dans son fonctionnement et sa fonction est
similaire à ceux qui équipent les bases de données, les serveurs de
noms (DNS), ... La réplication de l'annuaire permet :
-
la création d'une copie en temps réel de l'annuaire sur une(des)
autre(s) machine(s). En effet, lorsqu'un nouvel objet est créé ou
bien lors d'une modification d'un objet (cela inclue la suppression)
sur l'annuaire maître, il fait suivre cette requête à(aux) annuaire(s)
esclave(s).
-
d'alléger le trafic à destination du serveur maître en utilisant
le ou les serveurs esclaves pour toutes les requêtes de lecture
(recherche). En effet, toute demande de modification d'un objet vous
sera rejetée par les annuaires esclaves, seul l'annuaire maître sera
capable de l'effectuer.
 |
N'oubliez pas d'adapter les DN à votre configuration.
|
1. Création d'un utilisateur pour la réplication
Il est recommandé de créer un utilisateur LDAP spécifique (classe d'objet
person ou fille par héritage) pour la réplication. Celui-ci ne sera ainsi
utilisé que par l'annuaire maître pour accéder à un annuaire esclave. Vous
pouvez, par ailleurs, choisir un utilisateur différent par annuaire esclave.
Voici à titre d'exemple, notre utilisateur au format LDIF :
dn: cn=replication,ou=Systeme,dc=mon_domaine,dc=fr
objectClass: top
objectClass: person
cn: replication
sn: replication
userPassword: {MD5}8p+r5jekcr9SIrEqC8Xfdw==
|
L'ajout à l'annuaire maître se fait avec la commande suivante :
ldapadd -H ldap://<adresse ou nom de la machine maître> -D "cn=manager,dc=mon_domaine,dc=fr" -W -x -f <le fichier LDIF ci-dessus>
|
2. Configuration de l'annuaire maître
Il faut apporter quelques modifications à la configuration de l'annuaire
maître afin de faire fonctionner la réplication. En effet, l'utilisateur
associé à la réplication doit avoir accès en lecture aux objets de
l'annuaire (éventuellement partielle) et il faut également lui indiquer
le serveur LDAP accueillant la réplication pour qu'il puisse communiquer
avec ce dernier. Par conséquent, voici les modifications et/ou ajouts à
apporter à votre fichier /usr/local/etc/openldap/slapd.conf :
access to *
by dn="cn=manager,dc=mon_domaine,dc=fr" write
by dn="cn=replication,ou=Systeme,dc=mon_domaine,dc=fr" read
by users read
replica
uri=ldap://<adresse ou nom de l'annuaire esclave>
binddn="cn=replication,ou=Systeme,dc=domain,dc=net"
bindmethod=simple credentials=<le mot de passe associé à ce compte en clair>
# Journal
replogfile /var/db/openldap-slurp/replica/replog
# ...
|
3. Configuration de l'annuaire esclave
Dans le cas de l'annuaire esclave, il faut aussi apporter quelques
modifications où à l'inverse d'un annuaire maître, il faut autoriser
l'utilisateur de réplication à écrire et lui indiquer qui est son serveur
LDAP maître. Voici les modifications et/ou ajouts à apporter à votre
fichier /usr/local/etc/openldap/slapd.conf :
access to *
by dn="cn=manager,dc=mon_domaine,dc=fr" write
by dn="cn=replication,ou=Systeme,dc=mon_domaine,dc=fr" write
by users read
updatedn "cn=replication,ou=Systeme,dc=mon_domaine,dc=fr"
updateref "ldap://<adresse ou nom de l'annuaire maître>"
|
4. Démarrage des différents services
4.1. Préparation du démarrage automatique
Votre fichier /etc/rc.conf de votre annuaire maître doit contenir :
slapd_enable="YES"
slapd_flags="-h ldap:///"
slurpd_enable="YES"
|
Et quant à l'annuaire esclave accueillant la réplique :
slapd_enable="YES"
slapd_flags="-h ldap:///"
|
Vous avez sans doute remarqué la présence de slurpd seulement
sur l'annuaire maître, en effet, c'est ce programme qui se charge
de renvoyer les requêtes vers les annuaires esclaves ainsi que du
journal qui garde sous forme LDIF les modifications (à exploiter
lorsque la réplication n'a pas fonctionné).
4.2. Copie de la base sur l'annuaire esclave
Copiez l'ensemble des fichiers de la base LDAP de l'annuaire maître
situés dans /var/db/openldap-data sur l'annuaire esclave via
SFTP inclus à SSH par exemple.
Assurez vous, sur l'annuaire maître, que l'utilisateur et groupe
propriétaire du répertoire /var/db/openldap-slurp et de son
contenu est bien ldap. Si ce n'est pas le cas, réglez le problème
avec cette commande :
chown -R ldap:ldap /var/db/openldap-slurp
|
4.3. Démarrage des annuaires et service de réplication
Démarrer enfin les services dans cet ordre :
- slapd maître + slurpd : /usr/local/etc/rc.d/slapd.sh start && /usr/local/etc/rc.d/slurpd.sh start
- slapd esclave : /usr/local/etc/rc.d/slapd.sh start
5. Problèmes connus
5.1. Plantage de slapd
Comment savoir que slapd est planté ? Tout d'abord l'annuaire dans
ce cas ne répond pas à nos différentes requêtes, ce qui attire notre
attention puis en ayant recours à la commande ps vous verrez
que le processus slapd utilise anormalement votre CPU. Les kill et
autres redémarrages n'auront ici aucun effet. Pour y remédier, utilisez
une de ces solutions :
-
Copier la base de l'annuaire primaire sur l'esclave (via sftp lancé
par ssh par exemple)
-
Utiliser la commande de réparation db_recover-X.Y -h /var/db/openldap-data
après avoir fait une sauvegarde de la base (X.Y représente la version de db).
5.2. La réplication ne fonctionne plus
En cas de disfonctionnement de la réplication (notamment après la mise
à jour d'OpenLDAP), assurez-vous que l'utilisateur ldap est bien
propriétaire du répertoire /var/db/openldap-slurp ainsi que de
son contenu. Si ce n'est pas le cas utilisez la commande :
chown -R ldap:ldap /var/db/openldap-slurp
|


Copyright © 2006 julp. Aucune reproduction, même partielle, ne peut être faite
de ce site et de l'ensemble de son contenu : textes, documents, images, etc
sans l'autorisation expresse de l'auteur.
Sinon vous encourez selon la loi jusqu'à 3 ans de prison et jusqu'à 300 000 E
de dommages et intérêts.
Cette page est déposée à la
SACD.