Primeros pasos con ANSIBLE

¿Qué es Ansible?, Como bien definen su propios creadores, Ansible es una forma sencilla de automatizar configuraciones, desplegar aplicaciones o en general realizar multitud de tareas de administración de forma automática y en múltiples nodos simultáneamente.

Descripción de entorno de pruebas:

Para nuestras pruebas, vamos a desplegar tres maquinas virtuales de la siguiente forma:

  • Controller: maquina donde vamos a instalar y configurar ansible. (Linux KUbuntu 16.04.1)
  • Nodo01:  servidor de pruebas 1. (Linux Ubuntu Server 16.04.1)
  • Nodo02:  servidor de pruebas 2. (Linux Ubuntu Server 16.04.1)

Instalando Ansible:

La instalación de Ansible es bastante sencilla, pero antes de nada tenemos que confirmar que tenemos instalado Python 2.6 o superior en nuestra máquina:

Como observamos, la distribución  KUbuntu que utilizamos ya tienen una versión de Python preinstalada totalmente compatible.

También hay que tener instalado Python 2.6 o superior en nuestros nodos:

Solo nos queda proceder con la instalación en la maquina Controller. Para ello, utilizaremos APT con el propio repositorio de Ansible:

Como resultado obtendremos los archivos de configuración ubicados en /etc/ansible .

Lo siguiente que debemos hacer es añadir a nuestro archivos /etc/ansible/hosts  los servidores de pruebas que tenemos preparados.

Para que Ansible pueda conectarse a los diferentes nodos,  es necesario que estos dispongan de la llave SSH generada en nuestro Controller. Así que ejecutamos el siguiente comando en el Controller (aceptando los valores por defecto en todos los casos):

Esto nos creará dos ficheros: ~/.ssh/id_rsa  y ~/.ssh/id_rsa.pub , de los cuales, hay que copiar la llave pública a los distintos nodos:

Ahora ya podemos ejecutar nuestra comando de prueba:

Como se puede observar en esta sencilla prueba, estamos ejecutando el comando Uptime en todos los servidores incluidos en nuestro ficheros Hosts. De los cuales nos muestra el resultado correspondiente a cada nodo.

En próximos artículos profundizaremos más en Ansible, los PlayBooks y Task


Referencias de interés: