Empaquetando

Tranquilos que no estoy empaquetando mis cosas para irme a otro lado y ni siquiera este post es para contar que ya me queda poco para empaquetar la maleta rumbo a mis merecidas vacaciones en México. La historia va de que desde hace tiempo tenía una espinita clavada en mi espíritu Linuxero y es que nunca me había puesto a crear mis propios paquetes de Debian. Bueno pues las últimas semanas y cómo parte de uno de los objetivos del departamento de Arquitectura de Andago he estado empaquetando algunas cosillas con dos objetivos: facilitar la instalación de nuestros desarrollos a la hora de desplegar soluciones y por otro lado distribuir las versiones Comunity de nuestras soluciones.

En primer lugar indicar que aunque crear un paquete no es un proceso sencillo tampoco es la mar de complicado si tienes algo de experiencia en el funcionamiento de Debian. Por otro lado me quito el sombrero ante todos los desarrolladores de Debian que durante todo este tiempo nos permiten disfrutar de la mejor distribución del planeta, porque el trabajo de crear y mantener un paquete con la calidad exigida por Debian es una tarea complicada.

No voy a replicar aquí el proceso de creación de un paquete porque hay muchos manuales en internet sobre ello y porque me llevaría bastante tiempo, pero voy a hacer algunos comentarios… Como siempre para hacer un paquete lo mejor es fijarnos en los que ha echo otra gente, para ello podemos usar el comando apt-get source y aprender cómo está echo su fichero de control, sus scripts de post y pre instalación y borrado, etc… Podemos encontrar así muchos pasos que no se nos habrían ocurrido y que pueden ser interesantes, así cómo comprobar el proceso correcto de crear un usuario para dicho paquete, reiniciar servicios, etc…

También nos será de gran ayuda pasarle Lintian a nuestro paquete cómo parte del proceso de depuración del mismo. Lintian nos indicará muchos de los errores más comunes a la hora de empaquetar y también nos ayudará a seguir de una forma más adecuada la Debian Policy. Por ejemplo yo no conocía la existencia del comando mktemp para la creación de ficheros temporales y que es mucho más útil que implementarlo nosotros a mano.

Otra parte con la que estuve trasteando fue con el uso de Debconf para la iteración con el usuario a la hora de instalar y configurar el paquete. El sistema de templates que posee es bastante potente y muy versátil, además que es muy fácil integrarlo con los scripts de gestión del paquete. Aún así me costó un poco pillarle el tranquillo ya que a veces se quedaba colgado al hacer algunas cosas raras. Un apunte que me resultó bastante curioso en alguno de los manuales de Debconf es el que te indica que no debes usarlo cómo un registro unificado de configuración al estilo Guindows… señores que esto es un sistema Unix, me moría de la risa.

El proceso de construcción de tu propio repositorio es bastante sencillo y una vez que has depurado el paquete y está listo para probar e instalar es una gozada ver lo fácil que es instalar un programa con una sola línea mientras que antes necesitabas un manual de 50 páginas de pasos a realizar.

En cuanto termine de pulir alguno de los paquetes sobre los que he estado trabajando y estén listos para ser públicos os pasaré un link por si los queréis probar y/o depurar, mientras sigo empaquetando…

Charla de OpenLdap en la Carlos III

Otro año más comienzan las jornadas del grupo de usuarios de Linux de la Carlos III (gul-uc3m) y me he animado a colaborar de nuevo con ellos, esta vez con una charla sobre OpenLdap. En las jornadas del año pasado participé con una charla sobre Alta Disponibilidad y Balanceo de carga.

Habrá charlas durante todas las tardes de la semana (ver horarios) y finalizarán el viernes con la celebración del congreso del Gul en el que habrá charlas durante todo el día. Mi charla será el Martes 11 a las 18:00, así que si queréis aprender algo sobre OpenLdap pasaros por allí.

ACTUALIZACIÓN: La charla fue bastante interactiva y entretenida, tenía pensado no tomar mucho más de una hora y terminamos utilizando cerca de 2 horas y poco. La interacción con los asistentes fue constante e intenté resolver sus dudas y preguntas de la mejor forma posible.

Estoy bastante contento de las modificaciones que metí en la charla respecto a la que realicé en las Jornadas de Software Libre de Albacete ya que hacen el tema mucho más claro. Por ejemplo la primera parte explicando mejor que es un directorio, cuál es la estructura que se usa en Ldap, etc… pero especialmente el ejemplo de cómo utilizamos OpenLdap en Andago. Cuando observas cómo se integra la autenticación de más de 25 servicios tan variados cómo los sistemas de correo y web, subversion, trac, sugarcrm, openvpn, samba, opencms, egroupware o incluso los propios escritorios te das cuenta lo útil que puede ser tener un sistema de directorio basado en OpenLdap. El mejor ejemplo es calcular el tiempo que tardarías en dar alta un nuevo empleado en todas esas herramientas :D.

También podéis descargar la presentación openldap.odp que se libera con licencia Creative Commons Reconocimiento 3.0 España.

También realicé algunas demostraciones en vivo en la charla instalando OpenLdap, herramientas para gestionarlo cómo GQ o phpldapadmin y demostrando lo fácil que es utilizar la API de OpenLdap desde cualquier lenguaje de programación cómo en este sencillo script Perl de ejemplo. Lo que ya no me dio tiempo debido a la avalancha de preguntas fue a mostrar la integración pam-ldap que llevaba preparada.

Un saludo a toda la gente del GUL de la Carlos III y suerte con el congreso de hoy, pena que me marche a Santander de boda, sino me habría encantado compartirlo con vosotros.

Actualización: Añadidas las transparencias al post mediante slideshare.