Domanda

So che questo è più simile a una domanda serverfault che una domanda StackOverflow, ma dal momento che serverfault non è ancora, qui vado:

Io dovrei spostare un'applicazione da un server ad un altro RedHat, e senza molto buona conoscenza dei meccanismi interni della domanda, come faccio a spostare il database OpenLDAP da una macchina all'altra, con schemi e tutte le .

Quali file avrei bisogno di copiare? Credo che la messa a punto è abbastanza standard.

È stato utile?

Soluzione

Il problema con SourceRebels risposta è che slapcat(8) non garantisce che i dati siano ordinato per ldapadd(1) / ldapmodify(1). Dalla pagina man:

The  LDIF  generated  by this tool is suitable for use with slapadd(8).
As the entries are in database order, not superior  first  order,  they
cannot be loaded with ldapadd(1) without first being reordered.

Inoltre utilizzando uno strumento che utilizza i file di back-end per il dump del database e quindi utilizzando uno strumento che carica il ldif attraverso il protocollo LDAP non è molto coerente.

Io suggerirei di usare una combinazione di slapcat(8) / slapadd(8) o ldapsearch(1) / ldapmodify(1). La mia preferenza andrebbe a quest'ultimo in quanto non ha bisogno di accesso alla shell al server LDAP o spostare file in giro.

Per esempio, il dump del database da un server master sotto dc = maestro, dc = com e caricarlo in un server di backup

$ ldapsearch -Wx -D "cn=admin_master,dc=master,dc=com" -b "dc=master,dc=com" -H ldap://my.master.host -LLL > ldap_dump-20100525-1.ldif
$ ldapadd -Wx -D "cn=admin_backup,dc=backup,dc=com" -H ldap://my.backup.host -f ldap_dump-20100525-1.ldif

La bandiera -W sopra richiede la password LDAP admin_master tuttavia dal momento che stiamo reindirizzando output a un file è solito vedere il prompt - solo una riga vuota. Vai avanti e digitare la password LDAP admin_master ed e funzionerà. Prima riga del file di output dovrà essere rimosso (Enter LDAP password :) prima di eseguire ldapadd.

Ultimo suggerimento, ldapadd(1) è un hard link al ldapmodify(1) con il -a (aggiungere) bandiera acceso.

Altri suggerimenti

ldapsearch e ldapadd non sono necessariamente i migliori strumenti per clonare il vostro DB LDAP. slapcat e slapadd sono opzioni migliori.

Esporta il tuo DB con slapcat:

slapcat > ldif

Importa DB con slapadd (assicurarsi che il server LDAP è ferma):

slapadd -l ldif

Alcuni appuntamenti:

  • Salva i tuoi schemi personalizzati e objectClasses definizioni sul nuovo server. È possibile cercare i vostri file inclusi in slapd.conf per ottenerlo, per esempio (questa è una parte della mia slapd.conf):

    includere /etc/ldap/schema/core.schema

  • Inserisci i tuoi schemi personalizzati e objectClasses nella vostra nuova installazione OpenLDAP.

  • Usa slapcat comando per esportare il vostro albero pieno LDAP ad un unico vari ldif file .

  • Usa ldapadd per importare i file LDIF alla nuova installazione LDAP.

Io preferisco copiare il database attraverso il protocollo:

prima di tutto essere sicuri di avere gli stessi schemi su entrambi i server.

-dump il database con ldapsearch:
ldapsearch -LLL -Wx -D "cn = admin, dc = dominio" -b "dc = dominio"> domain.ldif

-e importarlo nel nuovo server:
ldapmodify -Wx -D "cn = admin, dc = dominio" -a -f domain.ldif

in oneline:
ldapsearch -LLL -Wx -D "cn = admin, dc = dominio" -b "dc = dominio" | ldapmodify -w passare -D -x "cn = admin, dc = dominio" -a

Usando il bin / LDAP * comandi si sta parlando direttamente con il server durante l'utilizzo di bin / schiaffo * comandi avete a che fare con i file di back-end

Grazie, Vish. Ha lavorato come un fascino! Ho modificato il comando:

ldapsearch -z max -LLL -Wx -D "cn=Manager,dc=domain,dc=fr" -b "dc=domain,dc=fr" >/tmp/save.ldif

ldapmodify -c -Wx -D "cn=Manager,dc=domain,dc=fr" -a -f /tmp/save.ldif

Proprio aggiunto il -z max per evitare la limitazione di dimensione e il -c di andare avanti anche se il dominio di destinazione esiste già (il mio caso).

(Non abbastanza reputazione per scrivere un commento ...)

ldapsearch apre una connessione al server LDAP. Slapcat accede invece direttamente il database, e questo significa che ACL, tempo e dimensione limiti, e altri sottoprodotti della connessione LDAP non vengono valutati, e quindi non altera i dati. (Matt Butcher, "Mastering OpenLDAP")

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top