¿Qué es Ansible?
Ansible es una herramienta de automatización de TI de código abierto que se utiliza para la configuración, gestión y despliegue de aplicaciones en múltiples servidores. Fue desarrollada por Michael DeHaan y se lanzó en 2012. Ansible tiene las siguientes características:
Características claves de Ansible
Sin Agentes (Agentless):
Ansible no requiere la instalación de software adicional en los servidores que gestiona, a diferencia de otras herramientas de automatización.
Utiliza SSH para comunicarse con los hosts remotos, lo que simplifica la configuración y el mantenimiento.
Fácil de Usar:
Ansible utiliza un lenguaje simple basado en YAML para sus archivos de configuración y playbooks, lo que lo hace accesible incluso para usuarios con conocimientos limitados de programación.
Idempotente:
Ansible asegura que las tareas se ejecuten de manera que los sistemas gestionados lleguen a un estado deseado sin importar cuántas veces se ejecuten los playbooks.
Esto significa que podemos ejecutar los mismos playbooks múltiples veces sin preocuparte de causar cambios no deseados.
Ampliable:
Ansible es modular y permite la creación de módulos personalizados. Hay una amplia colección de módulos predefinidos para diversas tareas, como la gestión de paquetes, la administración de servicios, la copia de archivos, entre otros.
Inventario Dinámico:
Ansible permite el uso de inventarios estáticos y dinámicos, facilitando la gestión de infraestructuras dinámicas en la nube.
Componentes Clave de Ansible
Playbooks:
Los playbooks son archivos YAML que definen una serie de tareas que se ejecutarán en los hosts definidos. Cada tarea puede invocar un módulo para realizar una acción específica, como instalar un paquete o iniciar un servicio.
Módulos:
Los módulos son unidades de trabajo individuales que Ansible ejecuta. Hay módulos para una amplia variedad de tareas, desde la instalación de software hasta la administración de usuarios y grupos.
Roles:
Los roles permiten organizar y reutilizar playbooks y otros archivos de Ansible en estructuras más grandes y complejas. Un rol puede incluir tareas, archivos, plantillas, variables y más.
Inventarios:
Los inventarios son archivos que listan los hosts que Ansible gestionará. Pueden ser simples listas de hosts o pueden agrupar hosts en categorías específicas.
Usos Comunes para nuestro servidor:
Gestión de Configuración:
Ansible se utiliza para configurar y mantener sistemas en un estado deseado, asegurando que todas las configuraciones sean coherentes y reproducibles.
Despliegue de Aplicaciones:
Facilita el despliegue de aplicaciones en múltiples servidores, automatizando los pasos necesarios para instalar y configurar aplicaciones.
Orquestación:
Ansible puede coordinar la ejecución de tareas en varios servidores, asegurando que las dependencias se gestionen correctamente y que los pasos se ejecuten en el orden correcto.
Automatización de Tareas Repetitivas:
Automatiza tareas administrativas comunes, como la creación de usuarios, la instalación de software, la actualización de sistemas y la gestión de servicios.
Cómo lo instalamos en nuestro servidor Fedora?
Paso 1: Actualizamos nuestro sistema operativodnf -y update
Paso 2: Instalamos ansible en nuestro servidordnf install ansible
Paso 3: Chequeamos que quedo instalado ansible --version
Paso 4: Creamos un archivo de inventario
Ansible utiliza un archivo de inventario para definir los hosts que se gestionarán. Podemos crear uno en /etc/ansible/hosts o en un directorio a nuestra elección.
Para este caso vamos a configurar nuestro equipo para esta prueba, aunque lo normal es configurar las direcciónes IP de los equipos que vamos a administrar:vim /etc/ansible/hosts
[localhost]
127.0.0.1
Paso 5: Configuramos el archivo ansible.cfg
En este archivo podemos personalizar opciones como el directorio del inventario, el usuario remoto predeterminado, etc. Este es un «ejemplo» de configuración básica:vim /etc/ansible/ansible.cfg
[defaults]
inventory = /etc/ansible/hosts
remote_user = root
Paso 6: Generamos y distribuimos las claves ssh de nuestor servidor:
Para que Ansible se conecte a los hosts remotos, necesitamos configurar la autenticación SSH sin contraseña. Entonces:
Generamos una clave SSH:ssh-keygen
Luego distribuimos la clave pública al resto de los hosts:ssh-copy-id root@127.0.0.1
Paso 7: Hacer un ping para probar la configuración:
Ansible es capaz de ejecutar un comando básico en todos los hosts de tu inventario y asegurarse de que todo esté configurado correctamente.ansible all -m ping
En estos pasos vimos como instalar y configurar nuestra Herramienta de automatización.
En el próximo tutorial vamos a ver como se instalar y configuran las aplicaciones usando Ansible :).








Deja un comentario