console linux

SLAPD problème de synchronisation entre master et slaves

Problème de synchronisation LDAP

Pour éviter à d’autres de chercher, voici comment résoudre un problème de synchronisation SLAPD entre un LDAP master et ses slaves. Dans mon cas mon master était un Debian Lenny et j’avais 2 slaves en Lenny et tous mes autres slave en Wheezy. Des ajouts de machines ou d’utilisateurs étaient répliqués sur les Lenny mais pas sur les Wheezy.

Utilisez le bon loglevel

Dans mon cas, c’est ldapsync qui ne fonctionnait pas correctement, il faut donc mettre :

Attention que les niveau de logs peuvent d’additionner pour afficher plusieurs catégories de logs en même temps, pour avoir le 16384 et le 2, on notera 16386 par exemple. Voir la page man pour les différents logs.

Solution du problème de synchronisation SLAPD

Ma première solution a été de forcer une réplication. Pour cela il faut éteindre slapd sur un slave et supprimer le contenu de /var/lib/ldap/. Je vous conseille de faire un tgz avant juste au cas 😉 Mais tous les éléments du ldap n’était pas répliqué. Pour vérifier  rapidement, on peut compter les lignes et comparer la dernière entrée :

Après avoir cherché dans les logs /var/log/debug, j’ai remarqué ceci :

Et plus loin ceci est retenté avec un nouveau code :

Un élément bloque la synchronisation, il a fallut chercher lequel.

En s’attardant sur les logs, on peut y voir ceci :

Cela vient du faite que dans certains champs « postalAddress » du LDAP, un caractère non autorisé est apparu, il s’agit du backslash « \ ». Cela est apparu lorsque quelqu’un à faire un import de données MySQL sans vérifier cela.

Le fait que mes serveurs LDAP slave en Lenny n’aient pas eu de souci avec ce caractère vient des schémas utilisés. Ce sont des machines Lenny comme mon LDAP master, alors que les autres sont des Wheezy. Les schémas ont changés entre ces 2 versions…

TODO

Pour que ce problème ne se repose plus à l’avenir il faut :
– soit faire attention aux champs entrés qui ne doivent pas contenir ce \
– soit analyser les schémas de part et d’autres et modifier ceux des slaves en conséquence, mais cela peut prendre du temps.

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">