descubre qué es ansible en este post

Adianny Ramírez, ingeniero de sistemas DevOps, arquitecto de microservicios y profesor de KeepCoding, nos ha presentado, en nuestro último webinar, qué es Ansible y las nociones principales para comenzar a utilizarla.

¿Qué es Ansible?

Ansible es un software de gestión de la configuración automática y remota, que nos permite centralizar la configuración de numerosos servidores, dispositivos de red y Cloud Providers de una forma sencilla y automatizada.

Para comenzar a utilizar este software es necesario que se conozcan una serie de términos y sus usos:

Instalación

Ansible es un software muy fácil de instalar, para ello, solo se necesita un Ansible Controller ejecutando un sistema operativo basado en UNIX. También se pueden administrar equipos Windows, pero el Controller debe ser Linux/UNIX.
Para instalarlo en Windows, se debe ejecutar un subsystem de Linux, aunque no se suele recomendar. Otra opción para instalarlo y ejecutarlo es hacerlo a través de un contenedor Docker.

Inventarios

Ansible trabaja, generalmente, ejecutando tareas contra distintos equipos remotos, dispositivos de red o APIs. Los inventarios, que pueden fijarse en formato Ansible INI, JSON o YAML, permiten definir dichos equipos, agruparlos y especificar valores grupales o individuales de estos.

Vienen definidos, por defecto, en /etc/ansible/hosts, pero también se puede establecer una ruta personalizada con -i <path>. Además, se puede predefinir la ruta en un archivo de configuración de Ansible: ansible.cfg.

Ad-Hoc Commands

Un comando Ad-Hoc usa la herramienta de línea de comandos /usr/bin/ ansible para mecanizar una única tarea en uno o más nodos administrados. Estos comandos son rápidos y fáciles, pero no reutilizables. A pesar de ello, son los primeros en ser aprendidos porque demuestran la simplicidad y el poder de Ansible; ya que los conceptos que se aprendan se pasarán directamente al lenguaje de un playbook.

Playbooks

Estos son el lenguaje de configuración, implementación y orquestación de Ansible. Pueden describir la configuración que se desea que apliquen los equipos gestionados, o un conjuntos de fases en un proceso general de automatización.

En un nivel primario, los playbooks se pueden utilizar para guiar configuraciones e implementaciones en equipos remotos.

Módulos

Se llaman también task plugins o library plugins, y son unidades discretas de código que se pueden usar desde la línea de comandos o en una tarea de Playbook. Estos módulos son desarrollados en PowerShell para Windows y en Python para Linux.

Variables

Es posible que algunos sistemas necesiten una configuración distinta a otros. En ciertos casos, el estado de un sistema o comportamiento observado, puede influir en la manera que se configuran otros sistemas. Es por ello que Ansible utiliza variables, para ayudar a lidiar con desigualdades entre sistemas.

Condicionales

A menudo, el resultado de un playbook puede depender del valor de una variable, un fact o el resultado de una tarea previa. En algunos casos, los valores de las variables pueden depender de otras y se pueden crear grupos adicionales para administrar hosts en función de si estos coinciden con otros criterios.

Bucles

En ocasiones, se quiere repetir una tarea varias veces, para ello, los bucles de Ansible incluyen el cambio de propiedades en varios archivos y/o directorios con módulos (módulo file), la creación de múltiples usuarios (módulo de user) y la repetición de un paso de sondeo hasta que se alcance un cierto resultado.

Loop y with_ <lookup> son dos palabras que ofrece Ansible para poder crear bucles.

Roles

Son formas de cargar automáticamente una estructura de archivos/directorios, archivos no variables, tareas y controladores basados en una estructura de archivos conocida. Agrupar por roles permite compartir fácilmente estos con otros usuarios para así poder reutilizar códigos.

Los roles esperan que los archivos estén en ciertos directorios y deben incluir al menos uno de estos, aunque se puede eliminar cualquiera que no esté siendo utilizado.

Ansible Galaxy

Incluido en Ansible, es un sitio gratuito para buscar, descargar, calificar y revisar todo tipo de roles de Ansible desarrollados por la comunidad y puede que sea la forma perfecta para impulsar los proyectos de automatización.

Si quieres llevar todos estos conocimientos al código, aquí te dejamos la práctica que hemos hecho en el webinar para descubrir el potencial de Ansible.

Ansible es una de las miles de herramientas que todos los días nacen para hacer más fácil el desarrollo de tus proyectos. En el mundillo DevOps es fundamental esta y otras tecnologías para optimizar, integrar y potenciar tus desarrollos. Para dominar todas estas herramientas y metodologías, descubre nuestro Full Stack DevOps Bootcamp. En menos de seis meses te convertirás en un crack de esta nueva tendencia en programación, descarga aquí el temario del bootcamp.

Otras entradas que te pueden interesar:

¡Conoce nuestros Bootcamps!

Descarga el temario y descubre cómo en 6 meses podrás ser un Full Stack DevOps Bootcamp.

¿Quieres más información?