Una de las mayores ventajas de Ubuntu es la simplicidad del sistema de paquetes APT. Usted encuentra un programa de escritorio que desea, emite un comando y está listo para ejecutarse. Sin embargo, para las aplicaciones del lado del servidor, esta instalación APT a veces sólo instala los archivos que necesitarás para ejecutar el programa – tendrás que configurar y ejecutar el programa (a menudo un servicio o demonio) tú mismo. Pero el sistema juju pretende que el acceso a los programas basados en el servidor sea tan sencillo como los del escritorio. A continuación te explicamos cómo utilizarlo.

Instalación y configuración inicial

La configuración de juju es un poco más complicada que, por ejemplo, la instalación de una pila LAMP usando tasksel, ya que está diseñado para entornos en la nube. Primero, necesitaremos instalar juju y sus dependencias:

sudoapt-get install juju libvirt-bin lxc apt-cacher-ng libzookeeper-java zookeeper

Nota: aunque hay una versión de juju en los repositorios de Universe para Precise, el equipo de “Juju hackers” tiene algunos PPA’s con versiones actualizadas. Yo usaré la versión de los repositorios.

Una vez completado esto, necesitarás generar una clave SSH para tu servidor, si no la tienes ya:

ssh-keygen-t rsa

Por último, su usuario necesitará ser un grupo asociado al demonio de virtualización libvirtd:

sudo usermod -a-G libvirtd [su nombre de usuario]

Esto se debe a que su entorno juju es en realidad un entorno virtual de Ubuntu dentro de su máquina actual. A continuación, tendrá que iniciar el proceso de “bootstrap”, donde este entorno virtual se descarga e instala:

juju bootstrap

¡Uy! Nos falta un archivo de configuración… por suerte, juju ha creado al menos un ejemplo para nosotros. Usando el editor de texto de tu elección, edita el archivo ~/.juju/environments.yaml para que coincida con lo siguiente

default: wordpressenvironments: wordpress: type: local admin-secret: [crea una frase única aquí] default-series: precise data-dir: /home/[tu nombre de usuario]/[un directorio que elijas]

Ahora, si eres capaz de tumbar el servidor, el reinicio asegurará que todos los servicios se inicien correctamente. Vamos a instalar algunos charms.

Instalación y ejecución de Charms

Como se ha mencionado, los Charms son similares a los paquetes APT, pero también se centran en todas las cosas que deben ocurrir para que un servicio se ejecute. Vamos a desplegar una instancia de WordPress como ejemplo aquí con el siguiente comando:

juju deploy wordpress

Ahora deberíamos ser capaces de ir a la dirección IP de nuestro servidor y llegar a bloguear… podemos confirmar que WordPress se está ejecutando con el siguiente comando

juju status

Pero espera, ¡hay un error aquí! Esto es porque juju no maneja automáticamente las dependencias. WordPress requiere una base de datos MySQL para funcionar, y esta no fue instalada automáticamente. Vamos a configurarlo:

juju deploy mysql

Ahora necesitamos conectar los dos juntos:

juju add-relation wordpress mysql

Por último, hagamos que sea visible para el mundo:

juju expose wordpress

En este punto está la parte más difícil del proceso: la paciencia. Mientras que estos comandos parecen haberse completado, en realidad habrá un buen número de cosas sucediendo en segundo plano – específicamente, la descarga, instalación y configuración del entorno “virtual” de Ubuntu. Notarás dos listados bajo “services:” cuando emitas el comando juju status, uno llamado “wordpress” (esta es la instancia real de WordPress) y “mysql” (esta es la instancia de MySQL). Debajo de cada uno, hay una línea de “estado del agente”, que probablemente dirá “pendiente”. También es posible que escuche su disco duro agitarse… no pasa nada, eso es sólo un montón de paquetes que se están instalando (compruebe los resultados de ps ax para ver algo de lo que está pasando).