Automatiza tu infrasestructura con ASYD
ASYD es un producto open source que conocí a raíz de un anuncio en el grupo de Software Libre de Google+
Se vendía cómo un producto open source capaz de facilitar la instalación de software, actualizaciones, administración de configuraciones y monitorización de servicios de forma fácil, a través de una interfaz web.
Y todo ello sin curva de aprendizaje.
Cómo me pareció bastante interesante, ni corto ni perezoso me he puesto la manta en la cabeza y me he decidido a probarlo.
Antes de nada les pregunté si les parecía bien la idea del artículo. Me contesto Diana, desde su perfil de Google+, que sin problema y que además estaban dispuestos a responder mis dudas.
Investigando en el código fuente, revisando el archivo de Licencia, utiliza la GNU GPL en su versión 3.
Instación en pocos pasos
Para la instalación me he dirigido a su página web y he seguido sus instrucciones, que están muy bien explicadas, tanto en inglés como castellano.
He utilizado un servidor virtualizado con Debian Wheezy 7.6, sin muchos recursos, con 512 de Memoria, 16 GB de disco 1 un sólo nucleo.
ASYD está programado en Ruby, por lo tanto debemos de instalar la mayoría de dependencias con gems.
Antes de eso instalaremos Ruby, git, make y algunas librerías.
apt-get update && apt-get install -y ruby1.9.1-full ruby1.9.1-dev git libxslt-dev libxml2-dev libsqlite3-dev make
En la guía de instalación, mencionada antes, también tenéis explicados los pasos para sistemas basados en paquetes RPM (Red Hat)
Instalamos el paquete bundler y clonamos el repositorio usando git.
gem install bundler
git clone https://github.com/AsydSolutions/asyd.git
Existe la posibilidad de clonar la versión en desarrollo, cosa que yo no he hecho.
git clone https://github.com/AsydSolutions/asyd.git -b devel
Accedemos dentro de la carpeta.
cd asyd
Instalamos ASYD y todas las dependencias:
bundle install
Iniciamos ASYD
passenger start
Veremos una imagen parecida a la siguiente en una consola o shell:
En la imagen podemos ver que nos indica que debemos acceder a nuesto navegador web desde nuestro localhost o IP a través del puerto 3000
Yo he añadido en mi localhost la IP de mi servidor con el nombre asydtest.com
La imagen que queda al acceder desde mi Firefox es:
La primera vez que accedemos nos pide usuario, correo electrónico, contraseña y clave ssh, que según leo en las instrucciones pueden ser creadas por el usuario y generadas automaticamente por ASYD
En mi caso queda de la siguiente manera:
Al acceder con nuestro nuevo usuario, el aspecto de la interfaz es el siguiente:
Se observa una interfaz bastante limpia, ya que todavía no he añadido ninguna máquina cliente.
Añadiendo hosts y hostsgroups
Vamos a darle algo de vida al producto, añadiendo clientes y grupos de clientes.
Para ello nos vamos al apartado de «Servers«
En mi red local tengo varios servidores virtuales, que he ido creando para varios artículos, desde servidores de relay con postfix, servidores de ficheros son Samba o NFS, incluso uno donde tengo instalado un servidor MediaGoblin.
Añadimos un host. El primero será un relay de correo.
Añadiré unos cuantos más.
Cuando añadimos un host automáticamente, en un segundo planto, se iniciará el deploy de monitoreo. Veremos que al principio aparecerá el host cómo no monitorizado.
Al completarse lo veremos con el mensaje «All OK«
Al añadir unas cuantas máquinas, de todo tipo, Debian, CentOS y OpenSuse me queda la siguiente imagen:
Voy a añadir tres grupos de hosts, por cada tipo de sistema operativo. Ya que cuando quiera realizar un deploy, variará la versión del programa a instalar según sea Debian o CentOS, por poner un ejemplo.
Si marcamos el botón con el dibujo de la carpeta, en color azul, podremos añadir hosts el agrupo.
En la siguiente imagen podéis ver las tres sistemas Debian añadidos al grupo:
A continuación añadiré el resto de servidores a sus respectivos grupos.
Recordad que el servicio ssh debe de estar instalado, y el puerto que use abierto.
Si no es así veremos el siguiente mensaje de error:
No voy a ser excesivamente exigente, ya que el proyecto tiene una andadura, de momento, corta.
Pero lo ideal sería una ventana emergente avisando que el puerto no está abierto o el servicio no está instalado.
También no he podido añadir correctamente hosts CentOS. He podido añadirlos pero sin monitoreo.
Supuestamente les debía de instalar paquetes como tar, gzip o curl. Pero después de instalarlos seguía dando el mismo error.
Después de todos los pasos, la imagen que queda es la siguiente:
Desde el panel podemos reiniciar u apagar los servidores de manera controlada, con un sólo click.
Deploys
Consideramos deploys cómo un grupo de definiciones y configuraciones ejecutables que permiten instalar o desinstalar software de manera automática.
También nos permite cargar y analizar configuraciones, ejecutar comandos en el sistema de destino y monitorear servicios.
Podemos encontrar toda la información aquí.
Vamos a probar de instalar un programa, concretamente el editor joe, en todas nuestros sistemas Debian.
En la parte superior, escogemos la sección «Deploy«
En la parte de la derecha tenemos el menú «Quick Install«, que utilizaremos para instalar el paquete.
Desde la sección «Tasks» podemos ver el estado del proceso de instalación:
Si apretamos la ID del proceso, podremos ver su log de estado:
He revisado uno por uno los cuatro servidores, y efectivamente tenían instalado el editor joe.
Conclusiones
Cómo hemos visto, ASYD es altamente configurable, además tenemos acceso a su código fuente para poder modificarlo a nuestro gusto.
Es cierto que todavía le quedan pulir cosas. Aún así le auguro un gran futuro.
Para administradores de sistemas GNU/Linux como yo, es de agradecer que existan herramientas cómo ASYD,
Nos vemos pronto.
See you soon!!