Qué es Ansible. Parte 1.El comienzo

En el presente artículo, voy a tratar un tema de cadente actualidad dentro del mundo DevOps.

En este caso, vamos a tratar una de las herramientas imprescindibles que todo administrador de sistemas debe tener bajo el brazo a la hora de hacer orquestaciones, despliegues o subidas masivas de versiones software por ejemplo.

En mi caso, reconozco que me ha conquistado desde el minuto 1 Ansible, dado a su extremo potencial y por contra a ser algo relativamente sencillo de implementar.

Muchos de los lectores de Hi-Tech IP, sienten curiosidad por el mundo de los sistemas informáticos, hecho que me ha animado a crear esta serie dentro de la categoría DevOps dado a su importancia.

En este primer artículo, lo que haré es hacer una aproximación a los conceptos como por ejemplo, qué es Ansible, para qué se usa y por qué se usa cada vez más por empresas IT y SysAdmins.

Pequeña introducción sobre qué es Ansible

Breve historia de Ansible para poner un punto de partida.

Decir que el creador de Ansible es Michael DeHaan, y que su nacimiento buscaba dar con una herramienta que cumpliese con los siguientes objetivos:

  • Pretende ser un software claro de interpretar. Gracias a la utilización de YAML como base para construir los grupos de tareas (en adelante Playbooks)
  • Es rápido de aprender. Cosa que los SysAdmin agradecemos, dado que la curva de aprendizaje y configuración es muy rápida (lo notaréis en los primeros ejemplos)
  • Es una herramienta bastante completa. Dado que no existen casi límites y si los existe, pueden romperse con la creación de tus propios módulos de orquestación.
  • Es una herramienta eficiente. Dado que no acarrea instalación adicional como sucede en otras herramientas, tan sólo es necesario tener ssh y python.
  • Es una herramienta segura. Al ir todo el flujo de comunicaciones a través de SSH cuenta con los beneficios intrínsecos de ello.

A parte, como usuarios de Ansible, vamos a tener otros puntos a favor que nos van a simplificar las cosas en momentos clave, como pueden ser:

  • Cuenta con una documentación muy completa. A través de su propia web oficial.
  • Tiene soporte oficial Ansible Inc. para aquellas empresas que deseen contratarlo.
  • Además cuenta con servicios de consultoría y formación oficial para el que lo desee contratar.
  • Y por supuesto, goza con una comunidad aunque si es cierto que es joven, está creciendo fuerte y goza de salud, como puede ser ansible-galaxy, el canal IRC #ansible de FreeNode etc…

¿Donde puedo instalar Ansible?

Pues aunque parezca que es una herramienta sofisticada, puede ser instalada prácticamente en todo tipo de máquinas y sistemas operativos, a saber:

En Debian, por ejemplo:

pip install ansible

 En RedHat, por ejemplo:

yum -i install ansible

 En MacOs, por ejemplo:

http://brew.sh/
sudo brew install python
pip install ansible

En Windows, además de contar con un módulo propio de PowerShell en cygwin, aunque si es cierto que este último no es muy estable a través de Cygwin.

La configuración básica de Ansible

Bueno, ya tenemos cierta idea sobre cómo instalar Ansible en diferentes plataformas, pero, ¿que configuración podemos hacer para probar que funciona?

¿Cómo configurar Ansible a grandes rasgos?

La configuración es tremendamente sencilla, al menos para decir que funciona.

Si es cierto que la cosa se complica cuando queremos realizar tareas más avanzadas.

Podríamos separar el proceso de configuración en tres grandes bloques:

Configuración de la parte de SSH

Se puede hacer dediferentes modos. Aquí pongo un ejemplo:

mkdir ~/.ssh
chmod 700 ~/.ssh
ssh-keygen -t rsa
ssh-copy-id -i ~/.ssh/id_rsa.pub usuario@servidor1:/home/usuario/
 La parte de configuración de inventario Ansible
vim /etc/ansible/hosts
[miservidor]
127.0.0.1

La parte de probar que todo funciona 🙂

ansible miservidor -a "free -m"

 

consultar memoria libre con ansible
consultar memoria libre con ansible

Hay otras formas de implementar Ansible en un servidor, dependiendo de lo que queramos realizar con nuestra cuenta Ansible, es cierto que vamos a necesitar permisos de superusuario, para ello, haremos algunas modificaciones, como podría ser:

  1. Añadir un usuario ansible en nuestras máquinas (adduser)
  2. Generar una llave rsa desde nuestro usuario Ansible (ssh-keygen)
  3. Copiamos la llave a nuestros equipos remotos (ssh-copy-id xxx.xxx.xxx.xxx)
  4. Instalación del paquete ansible según lo visto en los puntos anteriores.
  5. Ajustar los permisos de la cuenta ansible que hemos creado en los servidores remotos a través de visudo.

 

¿Otro tipo de tareas que podemos hacer con Ansible? ¿El límite? Tu imaginación

Si, todos los comandos que se te están pasando por la cabeza, vamos a poder ejecutarlo desde nuestro equipo desde donde lanzamos el comando, y será ejecutado en todos las máquinas remotas que tengamos configurado dentro de nuestro fichero de “hosts”.

Ejemplos de uso rápido de Ansible

Podemos lanzar cualquier comando, desde el más básico a través de una simple linea de comandos de Ansible, hasta el más avanzado a través de lo que se conoce como Playbook.

Veamos algunos ejemplos de comandos Ansible:

Tan sólo comparte en tus redes sociales favoritas y podrás ver visualmente algunos de los comandos básicos que puedes realizar para ir empezando sobre esta pequeña serie de tutoriales sobre qué es Ansible y de qué manera te puede ayudar como administrador de sistemas.

El contenido a parecerá automáticamente al compartir ¡Gracias!

Como se puede ver, existe una multitud de opciones que podemos realizar desde un simple comando.

En el próximo artículo, aprenderemos a construir nuestra lista de inventario para que podamos agrupar todos nuestros servidores que queramos gestionar desde un equipo servidor Ansible.

Si te ha resultado interesante, comparte el artículo o déjanos tus comentarios para seguir haciendo aportaciones.

Qué es Ansible Parte 1. El comienzo
4.75 (95%) 8 votos

1 Comentario

Dejar respuesta

Please enter your comment!
Please enter your name here