Cinquième partie de la série de tuto sur OpenLDAP consacrée à la sauvegarde et restauration des données.
Jusque la, nous avons vu l’installation, les overlays,inséré nos premières données, et appris comment les modifier.
Voyons maintenant comment effectuer des sauvegardes de tout cela.
Rappel, j’utilise des alias que je défini au début de cet article.
I – Sauvegarde
On va prendre connaissance de l’endroit ou sont stockées les données.
# lsearch -b "cn=config" "(&(objectClass=olcDatabaseConfig))" olcDbDirectory
Ce qui va donner :
dn: olcDatabase={-1}frontend,cn=config dn: olcDatabase={0}config,cn=config dn: olcDatabase={1}mdb,cn=config olcDbDirectory: /var/lib/ldap
La ligne qui nous intéresse est /var/lib/ldap.
A – Configuration
Cette commande peut être lancée avec le service LDAP en fonctionnement.
# slapcat -b cn=config > save_config.ldif
B – Données
Comme pour la configuration, cette commande peut être lancée avec le service en fonctionnement.
# slapcat -b dc=debugo,dc=fr > save_data.ldif
II – Restauration
A – Configuration
On commence par arrêter le serveur si celui ci tourne :
# service slapd stop
On va supprimer l’existant :
# rm /etc/ldap/slapd.d/ -r
On va recréer :
# mkdir /etc/ldap/slapd.d/
On réinjecte :
# slapadd -F /etc/ldap/slapd.d -b cn=config -l save_config.ldif
On redonne les droits
# chown -R openldap:openldap /etc/ldap/slapd.d/
On peut relancer :
# service slapd start
B – Données
On commence par arrêter le serveur si celui ci tourne :
# service slapd stop
On va supprimer l’existant (repertoire que nous avons noté au début) :
# rm /var/lib/ldap/ -r
On va recréer :
# mkdir /var/lib/ldap/
On réinjecte :
# slapadd -b dc=debugo,dc=fr -l save_data.ldif
On redonne les droits
# chown -R openldap:openldap /var/lib/ldap/
On ré-indexe :
# slapindex
On relance le serveur :
# service slapd start
Et voila ! Ces manipulations sont simple, mais ne les négligez pas, il reste assez facile de fusiller un annuaire LDAP avec quelques fausses manipulations…
Dans l’article suivant, nous allons voir la réplication.
Bonjour,
Merci pour la série de tuto c’est top ! Je la suis jour après jour ! Question, quand est-ce que la partie réplication va sortir ? Je me base sur votre blog pour mon projet de fin d’année et j’ai beau avoir péché des infos un peu partout la partie synchro ne fonctionne pas :'(
Bonjour Vincent. Ce devrait arriver bientôt.
J’avais prévu de ne pas la traiter de suite (envie de faire une pause sur le ldap)
Du coup, je vais quand même travailler dessus et la mettre à disposition le plus vite possible.
En attendant, n’hésitez pas à lire le reste du blog, vous trouverez surement d’autre tutos intéressants 😉
Trop cool merci tu me sauve ! Tu es la doc la plus claire que j’ai pu trouver j’ai bien compris pas mal de choses sur le LDAP grâce à toi 😀
Yes les tutos virtu m’intéresse bien 😉
Pas de soucis. En effet, le LDAP est plutôt barbare si on ne prend pas le temps de comprendre bien certains concepts. C’est pour cela que je détaille un max, etc… Le tuto sur la réplication arrive ce soir ou demian. Mes tests en cours fonctionnent. Me reste plus qu’a écrire tout cela. Au passage, ce sera de la réplication maitre-maitre…
Bonjour, encore merci pour tous ces articles et votre méthodologie très au point.
Lors que je teste la restauration sous Debian 9, je rencontre une erreur:
slapadd -b cn=config -l /tmp/save_config_20190909.ldif
5d767a73 could not stat config file « /etc/ldap/slapd.conf »: No such file or directory (2)
slapadd: bad configuration file!
le fichier slapd.conf est dans /usr/share/slapd. Est-ce une bonne pratique de créer un lien ou est-ce de la bidouille?
Merci
Bonjour.
Désolé pour la réponse tardive.
Heu, je me demande si j’ai pas oublié un truc. Faut que je reteste.
Avec un touch /etc/ldap/slapd.conf ca donne quoi ?
Bonjour Nicolas,
et merci d’avoir répondu.
Je viens seulement de tester et voici le résultat:
root@ant-olp-001:~# slapadd -b cn=config -l /tmp/save_config_20190909.ldif
slapadd: could not add entry dn= »cn=config » (line=1):
_ 1.44% eta none elapsed none spd 5.5 M/s
Closing DB…
J’avais mis le sujet de côté quelques jours, et je vais regarder de plus près.
Merci encore
Bonjour Nicolas,
Je rattaque sur le sujet. J’ai eu un peu de mal avec lsearch en début de tuto. Je suis passé par « ldapsearch -QLLLY EXTERNAL -H ldapi:/// » sans quoi je n’obtenais aucun résultat.
Ensuite, pour restaurer j’avais mélangé des commandes avec slapadd -b au lieu de -F. Cette fois c’est bon.
Par contre j’ai restauré sur un autre serveur en vue d’une réplication, et je ne démarre pas (Failed to start LSB: OpenLDAP standalone server (Lightweight Directory Access Protocol).
Est-ce qu’il y aurait moyen d’avoir des logs un peu plus parlant? Est-ce qu’il ya des prérequis pour que la restauration fonctionne sur un autre serveur?
Merci
Salut et désolé pour le retard.
As tu crée les alias ladd,etc, comme je l’indique au début du tuto ? 😉
Simple rajout pour le problème que j’ai rencontré: Dans les logs de démarrage on trouvait une ligne « main: TLS init def ctx failed: -1 » que je n’avais pas vue.
J’avais activé TLS sur le serveur d’origine…
J’ai paramétré la partie SSL (même nom de fichiers de certificats clef privée/clef publique/certificats CA).
… et c’est tout bon!
Bon, content que tu y sois arrivé au final 😉
N’hésites pas à me dire si y’a d’autres soucis.
De mon côté tout fonctionne bien. merci
Je dois bien avouer que je ne comprends pas pourquoi il est indiqué de supprimer la sauvegarde de /etc/ldap/slapd.d à la restauration des données. Dans ce cas quid de la restauration de la configuration ?
Je pense qu’il faut, si on supprime le répertoire /etc/ldap/slapd.d, à la fois restaurer la configuration ET les données…
Je me répond…
PIOTR TU DEVRAIS RÉAPPRENDRE À LIRE !
En effet j’ai zappé que pour la config c’est dans /etc/ldap/slapd.d et que les données sont dans /var/lib/ldap !
No comments…
Sinon, suite à une alerte à la ré-indexation à propos du fait de l’exécuter en « root » je suggère de l’exécuter avec les droits « openldap » plutôt :
# sudo -u openldap slapindex
Ça me semble beaucoup mieux…
Bonjour Piotr 😉
Yep je suis d’accord, j’ai la mauvaise habitude de faire beaucoup de manip en root.