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.

asyd-001-

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.

  1. 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.

  1. gem install bundler
  2. git clone https://github.com/AsydSolutions/asyd.git

Existe la posibilidad de clonar la versión en desarrollo, cosa que yo no he hecho.

  1. git clone https://github.com/AsydSolutions/asyd.git -b devel

Accedemos dentro de la carpeta.

  1. cd asyd

Instalamos ASYD y todas las dependencias:

  1. bundle install

Iniciamos ASYD

  1. passenger start

Veremos una imagen parecida a la siguiente en una consola o shell:

asyd-002

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:

asyd-003

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:

asyd-004

Al acceder con nuestro nuevo usuario, el aspecto de la interfaz es el siguiente:

asyd-005

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«

 

asyd-006

 

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.

 

asyd-007

 

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:

 

asyd-008

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.

 

asyd-009

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:

 

asyd-010

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:

 

asyd-011

 

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:

asyd-012

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«

 

asyd-013

En la parte de la derecha tenemos el menú «Quick Install«, que utilizaremos para instalar el paquete.

 

asyd-014

Desde la sección «Tasks» podemos ver el estado del proceso de instalación:

 

asyd-015

Si apretamos la ID del proceso, podremos ver su log de estado:

 

asyd-016

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!!