¿Qué es Ansible?

Siempre es aconsejable automatizar el proceso redundante, como la implementación o la configuración y administración del servidor, que de lo contrario consumen mucho tiempo y esfuerzo. Esta es una de esas herramientas de código abierto desarrollada y mantenida por Red Hat que automatiza el proceso de aprovisionamiento, gestión de configuración, implementación de aplicaciones, entrega continua, seguridad y cumplimiento, y orquestación. En un alto nivel, es un lenguaje de automatización simple que puede describir la infraestructura de la aplicación de TI, el ciclo de vida de la aplicación en libros de jugadas ansibles. Aprovecha YAML, que es un lenguaje de serialización de datos legible para humanos.

Comprensión

Es simple, poderoso y sin agentes. El mayor diferenciador entre las herramientas ansibles y otras herramientas radica en la arquitectura, funciona en el modelo "Push", es decir, no se requiere instalar ningún software adicional en el servidor. Por defecto gestiona conexiones remotas a través de SSH (Linux y Unix) o WinRM (windows).

A continuación se muestra este diagrama de arquitectura de Ansible

Veamos la funcionalidad de los componentes individuales en detalle.

El motor de automatización Ansible incluye un inventario, API, módulos y complementos.

Libro de jugadas Ansible: Aprovecha el libro de jugadas para la automatización y la orquestación de la infraestructura de TI. Este libro de jugadas consiste en una tarea de automatización que sirve como entrada para el motor de automatización ansible que describe cómo funcionará una pieza particular de automatización.

Este libro de jugadas consiste en una serie de "juegos" que define la tarea de automatización en un conjunto de hosts conocidos como "Inventario". Cada 'jugada' consiste en múltiples tareas que pueden servir a uno o más anfitriones presentes en el inventario. Todas estas tareas hicieron una llamada a un módulo Ansible, que es un pequeño fragmento de código que realiza una tarea específica.

Un ejemplo típico de una tarea podría ser instalar cualquier software o colocar un archivo de configuración en el servidor. Una tarea más compleja podría ser la implementación de toda la infraestructura de formación en la nube en Amazon EC2.

Viene con cientos de módulos que van desde la administración de dispositivos de red, administración de configuración simple, hasta módulos para mantener la infraestructura en cada proveedor de la nube.

Estos módulos están diseñados de tal manera que primero verifica si la tarea debe ejecutarse o no, por ejemplo, si una tarea ansible es iniciar un servidor Tomcat, la tarea solo se ejecutará si aún no se está ejecutando. Este fenómeno se denomina "Idempotencia" que permite ejecutar la configuración repetidamente sin ningún caos.

Estas tareas del libro de jugadas también se pueden reutilizar, estas unidades reutilizables se denominan "Rol". Estos roles se pueden aprovechar fácilmente para realizar tareas redundantes, como aplicar una configuración de servidor común en el servidor de desarrollo, UAT y producción.

Nota: no tiene que escribir estos roles desde cero, el sitio de la comunidad Ansible Galaxy contiene miles de roles que puede usar y personalizar según sus necesidades.

¿Qué puedes hacer con Ansible?

Con esto, puede automatizar las tareas mencionadas a continuación. Veamos algunos ejemplos de partículas para entenderlo de una manera fácil.

Supongamos que tiene una aplicación web de Java que debe implementarse en varios servidores, es decir, dev, UAT y prod. Para implementar el archivo war, primero, debe configurar el servidor web y el servidor de base de datos en toda la máquina. Además, los mismos scripts SQL deben ejecutarse en toda la base de datos para configurar la base de datos. Ahora no tiene sentido realizar esta tarea redundante manualmente.

Con esto, todo lo que necesita hacer es escribir tareas simples en el libro de jugadas y Ansible realizará estas tareas redundantes por usted.

Habilidades requeridas

A diferencia de Puppet & Chef (herramienta de automatización como Ansible) que requiere el conocimiento de Ruby, con Ansible no necesitas aprender ningún lenguaje de programación complicado. Ansible usa YAML, que es un lenguaje legible para humanos de alto nivel que el administrador de TI puede entender fácilmente. Además, la mayoría de las tareas comunes están disponibles en el formulario de libro de jugadas en la Comunidad Ansible Galaxy que puede ampliar según sus necesidades.

¿Por qué deberíamos usar Ansible?

Hasta ahora hemos hablado de lo que Ansible es capaz de hacer. Ahora veamos por qué deberíamos usar Ansible en nuestros proyectos.

  1. Con esto, puede reducir ciertos procesos de horas a minutos.
  2. Elimina tareas repetitivas.
  3. Ahorra tiempo y mejora la productividad.
  4. Menos errores y error.
  5. Aumentar la responsabilidad y el cumplimiento.

¿Quién es el público adecuado para aprender tecnologías Ansible?

Debe estar pensando que esta tecnología está relacionada con la Infraestructura de TI y el Mantenimiento, que generalmente se encarga del Administrador de TI o del equipo de implementación, y usted, como desarrollador, no necesita entender esto, pero déjeme romper este estereotipo. Como sabe que en DevOps el trabajo de desarrollo y operaciones está integrado, proporciona un entorno estable tanto para el desarrollo como para las operaciones. Por lo tanto, es importante que un desarrollador comprenda la tarea escrita en los libros de jugadas y, si hay algún cambio en el entorno de desarrollo, él / ella debe ser capaz de realizar cambios en el libro de jugadas para otros entornos en consecuencia para una orquestación fluida del ciclo de vida de la aplicación.

¿Cómo te ayudará esta tecnología en el crecimiento profesional?

Es una tecnología imprescindible en su currículum. Hoy en día, todas las demás empresas están tratando de automatizar todos los procesos que pueden para aumentar la productividad general y la eficiencia de la aplicación y los recursos. Las aplicaciones empresariales que generalmente se implementan en diferentes servidores en todo el mundo requieren una configuración y administración constantes del servidor, lo que requiere una buena cantidad de tiempo y esfuerzo. Si tiene un conocimiento muy bueno de la herramienta de automatización como Ansible y puede escribir un libro de jugadas para automatizar esta tarea redundante, esto definitivamente lo distinguirá y lo ayudará en el crecimiento de su carrera.

Conclusión

Después de leer este artículo, debe haber comprendido claramente qué es Ansible, de qué es capaz Ansible y cómo puede mejorar la eficiencia y la productividad general de su proyecto mediante la implementación de Ansible. Si desea profundizar en este tema, puede consultar el libro blanco y los libros de jugadas de muestra disponibles en el sitio web oficial de Red Hat Ansible.

Artículos recomendados

Esta ha sido una guía de Qué es Ansible. Aquí discutimos el funcionamiento de Ansible y también cómo y dónde puede ayudar en el crecimiento profesional. También puede consultar nuestros otros artículos sugeridos para obtener más información:

  1. Cómo usar los comandos de Ansible
  2. ¿Qué es PowerShell?
  3. ¿Qué es python?
  4. ¿Qué es apache?