una servidor puede pla instalación grupos esta cuenta crear configuración con como archivo linux ldap redhat openldap

linux - servidor - ¿Cómo puedo clonar una base de datos OpenLDAP?



ldap server linux (6)

Sé que esto es más como una pregunta de servidor que una pregunta de stackoverflow, pero como la falla del servidor no está aún, aquí voy:

Se supone que debo mover una aplicación de un servidor de redhat a otro, y sin un buen conocimiento del funcionamiento interno de la aplicación, ¿cómo movería la base de datos de OpenLDAP de una máquina a otra, con esquemas y todo?

¿Qué archivos necesitaría copiar? Creo que la configuración es bastante estándar.


(No hay suficiente reputación para escribir un comentario ...)

Ldapsearch abre una conexión al servidor LDAP. Slapcat accede a la base de datos directamente, lo que significa que las ACL, los límites de tiempo y tamaño y otros subproductos de la conexión LDAP no se evalúan y, por lo tanto, no alterarán los datos. (Matt Butcher, "Dominio de OpenLDAP")


Algunas citas:

  • Guarde sus definiciones de esquemas personalizados y clases de objetos en su nuevo servidor. Puede buscar los archivos incluidos en slapd.conf para obtenerlos, por ejemplo (esto es parte de mi slapd.conf):

    incluye /etc/ldap/schema/core.schema

  • Incluya sus esquemas personalizados y clases de objetos en su nueva instalación de openLDAP.

  • Utilice el comando slapcat para exportar su árbol LDAP completo a un solo / varios archivos ldif .

  • Use ldapadd para importar los archivos ldif en su nueva instalación de LDAP.


Gracias, Vish. ¡Trabajado como un encanto! Edité el 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

Acabo de agregar el -z max para evitar la limitación de tamaño y el -c para continuar incluso si el dominio de destino ya existe (mi caso).


Prefiero copiar la base de datos a través del protocolo:

en primer lugar, asegúrese de tener los mismos esquemas en ambos servidores.

-dump la base de datos con ldapsearch:
ldapsearch -LLL -Wx -D "cn = admin, dc = dominio" -b "dc = dominio"> domain.ldif

e importarlo en el nuevo servidor:
ldapmodify -Wx -D "cn = admin, dc = dominio" -a -f dominio.ldif

en línea:
ldapsearch -LLL -Wx -D "cn = admin, dc = dominio" -b "dc = dominio" | ldapmodify -w pass -x -D "cn = admin, dc = dominio" -a

Al usar los comandos bin / ldap * está hablando directamente con el servidor mientras usa los comandos bin / slap *, usted está tratando con los archivos de back-end.


ldapsearch y ldapadd no son necesariamente las mejores herramientas para clonar su base de datos LDAP. slapcat y slapadd son opciones mucho mejores.

Exporte su base de datos con slapcat:

slapcat > ldif

Importe la base de datos con slapadd (asegúrese de que el servidor LDAP esté detenido):

slapadd -l ldif


El problema con la respuesta de SourceRebels es que slapcat(8) no garantiza que los datos ldapadd(1) ordenados para ldapadd(1) / ldapmodify(1) . Desde la página 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.

Además, usar una herramienta que usa los archivos de fondo para volcar la base de datos y luego usar una herramienta que carga el archivo ldif a través del protocolo ldap no es muy consistente.

Sugeriría usar una combinación de slapcat(8) / slapadd(8) O ldapsearch(1) / ldapmodify(1) . Mi preferencia iría a la última ya que no necesita acceso de shell al servidor ldap ni mover archivos.

Por ejemplo, volcar la base de datos de un servidor maestro bajo dc = master, dc = com y cargarlo en un servidor de respaldo

$ 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

El indicador -W anterior solicita la contraseña de ldap admin_master; sin embargo, dado que estamos redireccionando la salida a un archivo, no verá la solicitud, solo una línea vacía. Siga adelante y escriba su contraseña ldap admin_master y funcionará. La primera línea de su archivo de salida deberá eliminarse (Introduzca la contraseña de LDAP :) antes de ejecutar ldapadd.

Última sugerencia, ldapadd(1) es un enlace ldapmodify(1) a ldapmodify(1) con el indicador -a (add) activado.