Uno de los cambios que trae FedoraCore 12 es OpenLDAP 2.4. Esta versión trae entre otros cambios, la obligatoriedad de usar el backend de configuración dinámica. Los que estábamos acostumbrados a usar toda la configuración de nuestros servidores OpenLDAP en /etc/openldap/slapd.conf, este cambio nos pilla un poco desprevenidos. Por suerte la gente de OpenLDAP había contemplado esto y nos facilita la migración.
Si queremos migrar una configuración de OpenLDAP anterior a 2.4, a esta nueva versión, podemos seguir la siguiente secuencia de pasos:
- Hacer un backup de la configuración por defecto que trae el nuevo servicio 2.4
mv /etc/openldap /etc/openldap_original_2.4
- Copiar la configuración del OpenLDAP anterior a /etc/openldap.
- Migrar la configuración del antiguo servicio a la versión 2.4, en un directorio temporal:
mkdir /tmp/export
slaptest -f /etc/openldap/slapd.conf -F /tmp/export/ - Instalar la nueva configuración
mkdir -m 700 /etc/openldap/slapd.d
cp -R /tmp/export/* /etc/openldap/slapd.d/ - Editar el fichero cn=config para editar
/etc/openldap/slapd.d
- Fijar el login y contraseña del usuario que podrá modificar dinámicamente la configuración. Para ello, editar el fichero /etc/openldap/slapd.d/cn\=config/olcDatabase\=\{0\}config.ldif para añadir las siguientes líneas:
olcRootDN: cn=admin,cn=config
La contraseña encriptada la podemos obtener ejecutando el comando
olcRootPW: {SSHA}pT8zKlqhV8dieALrkzwAiK8KdoxNV5mslappasswd
. - Copiar la configuración del monitor de OpenLDAP, de la configuración original que habíamos movido.
export FILE=/etc/openldap_original_2.4/slapd.d
cp $FILE/cn=config/olcDatabase\=\{2\}monitor.ldif \
/etc/openldap/slapd.d/cn=config/ - Hacer copia de seguridad del directorio de la base de datos del directorio y preparar el directorio para inicializar el nuevo directorio:
mv /var/lib/ldap /var/lib/ldap_original
mkdir -m 700 /var/lib/ldap
cp /var/lib/ldap_original/DB_CONFIG /var/lib/ldap/ - A partir de un backup del antiguo servidor (hecha con
slapcat
por ejemplo), preparar un fichero ldif básico con donde se cree la raíz del directorio, y las ramas princiaples. Lo añadiremos con el comando slapadd:slapadd -l /tmp/estructura_inicial.ldif
- Cambiar los permisos de la base de datos del LDAP, y del directorio de configuración e iniciar el demonio de LDAP, mediante los siguientes comandos:
chown -R ldap.ldap /var/lib/ldap /etc/openldap
/etc/init.d/slapd start - Restaurar la copia de seguridad en el directorio que acabamos de crear...
ldapadd -x -D "cn=admin,ou=XXX,o=carm,c=es" -w CLAVE \
-f copia_seguridad.ldif - Recuperar la base de datos del directorio y reparar
/etc/init.d/slapd stop
slapindex
slapd_db_recover -h /var/lib/ldap
slapindex
chown ldap.ldap -R /var/lib/ldap
/etc/init.d/slapd start
Y ya tendremos nuestro directorio funcionado. :)
La imagen la he sacado del album de JPhilipson en flickr
2 comentarios:
Hola! tengo una base ldap que levanta mucha info a memoria... a pesar de que he borrado la mitad de su informacion.
Existe algun comando de mantenimiento para reorganizar / reindexar los bloques de la BD?
Para mejorar el inicio, comprueba que tengas los mínimos índices posibles configurados en slapd.conf. Evita en la medida de lo posible índices sobre tipos de datos genéricos como sn, givenName.
Luego para el servicio y ejecuta el comando: slapindex -q -f FICHERO_DE_CONFIGURACION
Puedes hacer varias pruebas con el comando "time" para ver qué impacto tiene la inclusión/exclusión de índices en la configuración, sobre el tiempo que tarda slapindex.
Este comando recrea todos los índices de la base de datos.
Publicar un comentario