A estas alturas no voy a presentaros openldap. La web del proyecto, aunque un poco cutre en su diseño, viene repleta de información. Este post es simplemente un recordatorio de una receta que me ha servido de mucho a la hora exportar configuraciones desde un entorno de pruebas virtualizado a un entorno en testing con máquinas físicas y usuarios reales haciendo pruebas.
El primer problema lo he tenido, hablamos de Debian GNU/Linux Lenny por supuesto, a la hora de instalar el paquete slapd. Cuando pregunta si a la hora de purgar el paquete deseamos eliminar la base de datos, muchos de vosotros responderíais un NO. Bien, discrepo.Después de unos cuantos días haciendo pruebas, puedo decir que yo respondería que Sí. ¿Por qué? Si por alguna razón deseas reinstalar el paquete, recupera los backups anteriores del base de datos de openldap, y como no coíncidan los dc's lo tienes crudo. Me encuentro en la tesitura de que en el entorno virtualizado los dos servidores Debian corriendo slpad funcionan muy bien. Drupal se valida contra ldap sin problemas y la vida parece ser maravillosa en Maple Town Monogatari. Al migrar las configuraciones al servidor de pruebas: crack! No logro ni siquiera validarme. Por un momento pienso ¿qué he echo mal, si todo parece estar exactamente igual? En una mala decisión, decido purgar el paquete(conservando los registros de la bbdd de ldap). Es aquí cuando todo se torna de color negro y no consigo avanzar. Hoy día 29 era el día marcado en el proyecto para tener ldap corriendo en testing y no llego(al final sí ;) ) a tiempo.Después de perder tiempo leyendo y releyendo documentación y listas de correo decido compilar el paquete.
En algún post anterior he hablado de apt-build, pues hoy me ha salvado la vida.A compilar se ha dicho.
[root@baltasargarzon]time apt-build --build-dir /tmp/slapd --yes --force-yes build-source slapd
En unos 50 minutos tenemos el paquetito listo. Nos damos una vuelta por ....
[root@baltasargarzon] cd /var/cache/apt-build/repository/ && dpkg -i slapd_2.4.11-1_i386.deb && apt-get -f install
Ahora unos pequeños ajustes los ficheros ldap.conf
[root@baltasargarzon]cat /etc/ldap/ldap.conf
#
# LDAP Defaults
#
# See ldap.conf(5) for details
# This file should be world readable but not world writable.
BASE dc=dominio,dc=eu
URI ldap://192.168.15.91
#SIZELIMIT 12
#TIMELIMIT 15
#DEREF never
Otros ajustes en slapd.conf
[root@baltasargarzon]cat /etc/ldap/slapd.conf
(..)
#######################################################################
# Specific Backend Directives for 'other':
# Backend specific directives apply to this backend until another
# 'backend' directive occurs
#backend
#######################################################################
# Specific Directives for database #1, of type bdb:
# Database specific directives apply to this databasse until another
# 'database' directive occurs
database bdb
#The base of your directory in database #1
suffix dc=dominio,dc=eu
rootdn cn=admin,dc=dominio,dc=eu
rootpw admin
# for syncrepl.
# rootdn "cn=admin,dc=dominio,dc=com"
# Where the database file are physically stored for database #1
directory "/var/lib/ldap"
Briconsejo: cifrar el password de root con {SSHA}loquesea.
Ahora sólo falta crear un fichero .ldif con el siguiente contenido para crear la "organización".
dn: dc=dominio,dc=eu
objectclass: dcObject
objectclass: organization
o: Organización
dc: Organización
Como root añadimos el fichero inicial.lidf a la estructura ldap:
ldapadd -x -D "cn=admin,dc=dominio,dc=eu" -W -f inicial.ldif
El password es que le hemos indicado(cifrado o no en el fichero slapd.conf en el parámetro rootpw).
¿Qué herramienta GUI utilizo para gestionar ldap? Gracias un lector de este blog, desde hace unas semanas uso Apache Directory Studio.
Ahora todo parece funcionar correctamente. He tomado alguna que otra taza de café, mi paciencia casi llega a su límite, pero ya estás openldap funcionando bajo Debian GNU/Linux.