Comment puis-je cloner un OpenLDAP base de données
Je sais que c'est plus comme un serverfault question que stackoverflow question, mais depuis serverfault n'est pas encore, j'y vais:
Je suis censé pour déplacer une application d'un serveur redhat à l'autre, et sans une très bonne connaissance du fonctionnement interne de l'application, comment pourrais-je déplacer le OpenLDAP base de données à partir d'une machine à l'autre, avec des schémas et tout.
Ce que les fichiers que j'ai besoin de copier? Je crois que le programme d'installation est assez standard.
Vous devez vous connecter pour publier un commentaire.
Le problème avec SourceRebels réponse est que
slapcat(8)
ne garantit pas que les données sont commandés pourldapadd(1)
/ldapmodify(1)
. À partir de la page de man :Plus à l'aide d'un outil qui utilise le backend fichiers de dump de la base de données, puis à l'aide d'un outil qui se charge de la ldif à travers le protocole ldap n'est pas très cohérent.
Je vous suggère d'utiliser une combinaison de
slapcat(8)
/slapadd(8)
OUldapsearch(1)
/ldapmodify(1)
. Ma préférence irait à la dernière, car il n'a pas besoin d'un accès au shell du serveur ldap ou le déplacement de fichiers.Par exemple, faire un dump de la base de données à partir d'un serveur maître sous dc=maître,dc=com, et de le charger sur un serveur de sauvegarde
L'option-W au-dessus des invites pour ldap admin_master mot de passe, mais puisque nous sommes à la redirection de la sortie vers un fichier que vous avez l'habitude de voir l'invite - juste une ligne vide. Allez-y et tapez votre ldap admin_master mot de passe et fonctionne. Première ligne de votre fichier de sortie aura besoin d'être enlevé (Entrez le Mot de passe LDAP:) avant d'exécuter ldapadd.
Dernier conseil,
ldapadd(1)
est un lien en dur pourldapmodify(1)
avec le-a
(ajouter) indicateur allumé.-W
ou-w mypassword
est-y passwordfile
. Rendre le fichier de mot de passe ne soit lisible que par root.ldapsearch et ldapadd ne sont pas nécessairement les meilleurs outils pour cloner votre LDAP DB. slapcat et slapadd sont beaucoup de meilleures options.
Exporter votre base de données avec la commande slapcat:
De l'importation de la DB avec slapadd (assurez-vous que le serveur LDAP est à l'arrêt):
Quelques rendez-vous:
Enregistrer votre personnalisé de schémas et de objectclasses définitions sur votre nouveau serveur. Vous pouvez rechercher vos fichiers inclus dans slapd.conf pour obtenir, par exemple (c'est une partie de mon slapd.conf):
include /etc/ldap/schema/core.schéma
Inclure votre personnalisé de schémas et de objectclasses dans votre nouvelle installation de openLDAP.
Utilisation slapcat de commande à l'exportation complète de votre arborescence LDAP à un seul/divers ldif fichiers.
Utilisation ldapadd pour importer les fichiers ldif sur votre nouveau LDAP installation.
Je préfère copier la base de données via le protocole:
tout d'abord assurez-vous d'avoir les mêmes schémas sur les deux serveurs.
-dump de la base de données avec la commande ldapsearch:
ldapsearch-LLL-Wx -D "cn=admin,dc=domain" -b "dc=domaine" > domaine.ldif
-et de l'importer dans le nouveau serveur:
la commande ldapmodify -Wx -D "cn=admin,dc=domain" -a-f de domaine.ldif
dans oneline:
ldapsearch-LLL-Wx -D "cn=admin,dc=domain" -b "dc=domain" | ldapmodify -w pass-x -D "cn=admin,dc=domain" -un
À l'aide de la bin/ldap* les commandes que vous parlez directement avec le serveur en utilisant bin/slap* les commandes que vous faites affaire avec le backend fichiers
Merci, Vish. A travaillé comme un charme! J'ai édité la commande:
Juste ajouté le
-z max
pour éviter la limitation de la taille et de la-c
d'aller sur le même si le domaine cible existe déjà (mon cas).(Pas assez de réputation pour écrire un commentaire...)
Ldapsearch ouvre une connexion au serveur LDAP.
Slapcat au lieu accède à la base de données directement, et cela signifie que les Acl, le temps et les limites de taille, et d'autres sous-produits de la connexion LDAP ne sont pas évaluées, et donc de ne pas modifier les données. (Matt Boucher, "La Maîtrise De La OpenLDAP")