Tabla de contenidos
Ansible es una herramienta de código abierto para automatizar la configuración y administración de sistemas informáticos, normalmente servidores Linux. En lugar de instalarlos manualmente, colocas los nodos en los sistemas distribuidos en el estado que deseas. Ansible se encarga de que primero se alcance este estado y luego se mantenga estable y realice todas las acciones necesarias para ello.
Leer: ¿Qué es OpenStack?
Capacidades de Ansible
Ansible se escribió para facilitar la gestión de los sistemas informáticos distribuidos. Numerosos softwares para instalar, archivos de configuración con parámetros específicos y servicios para activar requieren una cantidad considerable de organización. Esto también resulta en un esfuerzo considerable para la red local de una organización mediana.
Además, hay tareas rutinarias que deben llevarse a cabo regularmente en intervalos cortos, como crear copias de seguridad, implementar software, instalar parches y mucho más. Tu administrador de sistemas de TI debe automatizar estas tareas y no sólo para poder trabajar más rápido y de manera más eficiente. Hacer demasiadas tareas de este tipo manualmente es propenso a errores, lo que puede resultar muy costoso en la administración de tu TI.
Origen de Ansible
El desarrollo de Ansible comenzó en 2012 y un año después condujo a la fundación de la empresa AnsibleWorks, que ofrecía una interfaz basada en navegador y servicios de consultoría para este software de código abierto. En 2015, Red Hat adquirió AnsibleWorks y desde entonces se ha integrado en la gama de productos de la empresa.
Idea básica de Ansible
En la filosofía de Ansible, como administrador, no estableces comandos de configuración, estableces el estado que deseas del sistema y todos sus hosts. Este tipo de funcionalidad hace que la verificación de este estado sea el foco de la actividad de Ansible. Si una prueba da un resultado positivo y ya se ha alcanzado el estado deseado, Ansible no ejecuta ningún comando porque no es necesario. Sin embargo, si se encuentra una diferencia entre el estado existente y el deseado, Ansible toma las medidas necesarias para llevar el sistema al estado deseado.
El lenguaje de marcado YAML se utiliza para establecer este estado. Se basa en XML y es legible por humanos al igual que XML. Los desarrolladores de Ansible llaman a los archivos en YAML «libros de jugadas», que definen el estado deseado de los hosts. Se pueden utilizar módulos en los playbooks, en los que se definen los pasos a realizar. A partir de estos libros de jugadas, Ansible forma pequeños programas en Python que se transfieren a los hosts, se ejecutan y luego se vuelven a eliminar.
Funcionalidad de Ansible
Primero creas un inventario, que es un archivo con listas de hosts. Ansible debería hacerse cargo de la configuración de estos. En un sistema más grande, habrá diferentes tipos de hosts que deben configurarse de manera diferente en consecuencia. Es fácilmente posible subdividir los hosts en estos grupos en el inventario. Los archivos estándar están disponibles para el inventario, pero también puedes escribir tu propio inventario.
Una herramienta de configuración y administración requiere información sobre los hosts a administrar, como el sistema operativo utilizado, los programas instalados y detalles sobre la CPU y la memoria principal. Estos detalles se almacenan en sus propios archivos.
Es fácilmente posible ejecutar comandos individuales desde la línea de comandos. Un ejemplo simple es verificar qué hosts son realmente accesibles. Ansible es más útil cuando se trata de grupos completos de instrucciones y los estados de un host que se pueden crear con ellos, a diferencia de los comandos individuales. Para este propósito, los libros de jugadas YAML contienen los llamados módulos que se llaman con parámetros seleccionados apropiadamente.
Un ejemplo del uso de dichos módulos es la instalación y configuración de un servidor web en hosts específicos. Tal instalación consta de una cadena completa de comandos que tendrías que escribir individualmente en la línea de comandos sin una herramienta de configuración como Ansible.
Actualmente hay más de 2000 módulos disponibles, para los cuales hay una descripción general disponible en el sitio web de Ansible.
Leer: Crear una memoria USB para instalar Windows 11
Detalles técnicos
Esta herramienta es un software de código abierto. Dado que el uso de una herramienta de este tipo también es crítico para la seguridad, este punto es una gran ventaja. Tú y los expertos independientes son libres de revisar la herramienta a su conveniencia.
Ansible se puede usar en todos los sistemas similares a Unix (Linux como CentOS, Debian, SuSE, Redhat, etc.) y también en Windows a través de Powershell. La conexión a los hosts a configurar se establece vía SSH, no es necesario instalar ningún software en estos hosts más allá de OpenSSL y Python.
Ansible fue diseñado con los principios de seguridad, confiabilidad y un enfoque minimalista, que se refiere a la ausencia de dependencias innecesarias de otro software. Ansible también es adecuado para administrar redes más grandes. En este caso, las capacidades de multiplexación de OpenSSH se utilizan para poder permanecer conectado a una mayor cantidad de hosts sin sobrecargar la red.