Karakolas: documentación de instalación en producción

Federico Díaz Benítez

Breve descripción

El proyecto consistía en crear manual de instalación en producción de la aplicación web Karakolas, de forma que resultara fácil de poner en servicio para un usuario con conocimientos medios o incluso bajos. Pero puesto que nunca iba a resultar demasiado sencillo para un usuario con tales características, se ha optado finalmente por  realizar un script que automatice todas las tareas de instalación de los paquetes requeridos, así como la configuración y despliegue de los distintos servicios implicados.

Los requisitos que debe tener el servidor que vaya a ejecutar la aplicación web Karakolas deben ser:

  • Poseer una conexión a internet.
  • Sistema Operativo Debian 7 (Wheezy).

 

Introducción

Karakolas es una aplicación de software libre (bajo Licencia Pública General Affero de GNU Versión 3) que facilita la gestión de los grupos de consumo (colectivo de productores y consumidores) y su  coordinación con otros grupos. Este tipo de aplicación permite a dichos grupos reducir intermediarios, consumir productos ecológicos, abaratar costes al consumir en grupo, etc.

El programa está pensado para una gestión sencilla de los pedidos individuales y colectivos e incorpora algunas herramientas que mejoran cuestiones logísticas, como el transporte compartido entre grupos de consumo.

Esta aplicación ya se encontraba desarrollada, pero dado que su objetivo es poder formar grupos de consumo ahorrando costes, resultaba un problema la necesidad de conocimientos altos en administración de sistemas informáticos para su instalación y despliegue del servicio.

Por ello, se han realizado una serie de scripts para el sistema operativo Debian, de forma que, junto a un sencillo manual, resulte una tarea al alcance de un mayor número de usuarios. Como inconveniente, encontramos que los servicios instalados no son flexibles, es decir, se instala la aplicación Karakolas bajo el framework Web2py en el servidor web Nginx y con MariaDB como gestor de bases de datos. No obstante, la elección de este software tiene unas causas justificadas en cuanto a eficiencia, rendimiento y tratarse de software libre.

 

Manual técnico

El script de instalación es una modificación del fichero “setup-web2py-nginx-uwsgi-ubuntu.sh” alojado en el repositorio de scripts de Web2py para Debian 7 (Wheezy). Se ha probado hasta la versión estable más reciente 7.8.

En la instalación de la aplicación Karakolas se instalan en el sistema, además, las siguientes aplicaciones:

  • Web2py: framework (de Python) de desarrollo web de código abierto con licencia GPL v3.0., para dar soporte al desarrollo de aplicaciones web.
  • uWSGI: proporciona un paquete completo para la construcción de servicios hosting. Está licenciado bajo GPL v.2.0.
  • Nginx: servidor web ligero y de alto rendimiento de código abierto bajo licencia BSD. Además, incluye un módulo para uWSGI.
  • MariaDB: sistema de gestión de bases de datos derivado de MySQL con licencia GPL v2.0, que actualmente proporciona un gran rendimiento con un bajo consumo de recursos.

Para la instalación y configuración de la aplicación es tan fácil como dar permisos de ejecución al script de instalación.

# chmod +x instalacion.sh

Posteriormente, se ejecuta el script como usuario “root” o con el comando “sudo”.

# ./instalacion.sh

El script instala todos los paquetes necesarios, así como modificar los archivos de configuración de los distintos servicios. Para las opciones donde el usuario pueda elegir (por ejemplo, si se desea comprimir el contenido estático en el servidor web) se hará mediante una pregunta con respuesta “s” para confirmar dicha modificación, o “n” para no realizarla.

En caso de desear desinstalar posteriormente la aplicación Karakolas y los paquetes derivados de su instalación, se ha desarrollado otro script que automatiza el proceso. En este proceso es necesario que el usuario (administrador) confirme los paquetes que se desean desinstalar del sistema, con el objetivo de no dañar otras aplicaciones o servicios que se encuentren en el sistema y se deseen mantener.

 

Manual de usuario

Instalación

Para instalar Karakolas en el sistema es necesario dar permisos de ejecución al archivo “instalacion.sh”, para ello, se debe introducir en la terminal desde el mismo directorio donde se encuentre el archivo:

# chmod +x instalacion.sh

Una vez hecho, se ejecuta el archivo como usuario “root” o, en su defecto, con el comando “sudo” (el usuario debe tener privilegios de administrador).

# ./instalacion.sh

 

Empezará el proceso de instalación preguntando si se desea anular el repositorio de CDROM de Debian.

Necesitará una conexión a internet para la instalación, por lo que, salvo circunstancias excepcionales, no es necesario este repositorio y se evita tener que insertar alguno de los discos de Debian.

También preguntará la contraseña que daremos a nuestro servidor web2py.

Sobre la mitad del proceso de instalación, se preguntará si se desea comprimir el contenido estático de la web y se piden una serie de datos de información acerca del sistema donde se instala tales como País, correo electrónico, etc.

Cuando se instala el sistema gestor de bases de datos MariaDB, se pedirá al usuario que introduzca una contraseña para el usuario “root” de MariaDB.

Más adelante se tendrá que volver a indicar esta contraseña en el proceso de instalación para finalizar el proceso de configuración de la base de datos.

Finalmente, la aplicación estará lista para ser utilizada.

Desinstalación

Para desinstalar la aplicación Karakolas y los paquetes asociados a la instalación, el procedimiento es muy similar al anterior.

NOTA: el script elimina la aplicación Karakolas automáticamente, para los demás servicios y paquetes, se preguntará por terminal si se desean eliminar. Si no está seguro de lo que se desea eliminar, introduzca “n” en todas las opciones.

Se debe introducir en la terminal desde el mismo directorio donde se encuentre el archivo:

# chmod +x desinstalar.sh

Una vez hecho, se ejecuta el archivo como usuario “root” o, en su defecto, con el comando “sudo” (el usuario debe tener privilegios de administrador).

# ./desinstalar.sh

Empezará el proceso de desinstalación, el cuál preguntará acerca de los paquetes y servicios que se desean eliminar.

 

Posibles mejoras futuras

Algunas posibles mejoras que se han considerado para este trabajo son las siguientes:

  • Depurar el sistema para hacerlo más tolerante a fallos.
  • Adaptarlo a nuevas versiones del software en caso de haber cambios significantes.

Probar la integración con PostgreSQL para la integración Odoo (OpenERP).

 

Referencias

Sitio web Karakolas

Scripts en GitHub