WindowsMacSoftwareConfiguraciónSeguridadAndroidProductividadLinuxRendimientoAppleConfiguración Todo

Cómo configurar y usar Ansible en Ubuntu

Editado 2 Hace unas semanas por ExtremeHow Equipo Editorial

AnsibleAutomatizaciónUbuntuGestión de ConfiguraciónLinuxInstalaciónSistemas operativosHerramientasSistemaConfiguración

Cómo configurar y usar Ansible en Ubuntu

Traducción actualizada 4 hace días

La automatización de tareas en la gestión de infraestructuras de TI es crucial para la eficiencia y confiabilidad. Ansible es una poderosa herramienta de código abierto utilizada para la automatización, gestión de configuraciones y despliegue de aplicaciones. Permite gestionar fácilmente un gran número de servidores asegurando que los entornos sean reproducibles y consistentes. En esta guía, te guiaremos a través de la configuración y uso de Ansible en Ubuntu. Este tutorial completo cubrirá la instalación, la configuración de archivos de inventario, la creación y ejecución de playbooks, y la comprensión de los conceptos básicos de Ansible.

1. Introducción a Ansible

Ansible es conocido por su simplicidad y facilidad de uso. No requiere la instalación de ningún agente en los nodos objetivo, lo que significa que no es necesario ejecutar ningún software en los servidores gestionados. Ansible se comunica con los servidores a través de SSH y puede gestionar tanto sistemas tipo Unix como plataformas Windows. La principal ventaja de usar Ansible es que proporciona capacidades de gestión de configuraciones y orquestación simples, potentes y flexibles.

2. Instalación de Ansible en Ubuntu

Configurar Ansible en Ubuntu es un proceso sencillo. Antes de la instalación, asegúrate de que tu sistema esté actualizado ejecutando el siguiente comando en tu terminal:

sudo apt update sudo apt upgrade

A continuación, instala Ansible ejecutando el siguiente comando:

sudo apt install ansible

Una vez completada la instalación, verifica comprobando la versión de Ansible:

ansible --version

Verás una impresión de la versión instalada actualmente, confirmando la instalación exitosa.

3. Establecimiento del Inventario

Ansible requiere un archivo de inventario que contenga una lista de los servidores que deseas gestionar. Por defecto, este archivo se encuentra en /etc/ansible/hosts. Puedes definir hosts usando ya sea direcciones IP individuales o nombres de host agrupados bajo nombres fáciles de recordar que pueden referenciarse más tarde en tu playbook.

Aquí tienes un ejemplo de una configuración simple de archivo de inventario:

[webservers] 192.168.1.10 192.168.1.11 [dbservers] dbserver.example.com

En este ejemplo, hemos definido dos grupos de servidores: webservers y dbservers. Cada grupo contiene las IPs o nombres de dominio de las máquinas asociadas. Los grupos pueden usarse para ejecutar tareas en múltiples servidores simultáneamente.

4. Ejecución de comandos ad hoc

Antes de crear playbooks complejos, puedes usar Ansible para ejecutar comandos ad hoc en tu servidor. Esto es especialmente útil para tareas rápidas. La sintaxis para ejecutar un comando ad hoc es:

ansible <group> -m <module> -a "<command>"

Por ejemplo, ante la necesidad de verificar el espacio en disco en todos los servidores web:

ansible webservers -m shell -a "df -h"

Esto invoca el módulo shell en el grupo "webservers" para ejecutar el comando "df -h". Asegúrate de que el usuario que ejecuta el comando Ansible tenga acceso SSH al host listado en tu archivo de inventario.

5. Creación y comprensión de Ansible Playbooks

Si bien los comandos ad hoc son útiles, los playbooks son donde Ansible sobresale. Un playbook es un archivo YAML que contiene una serie de tareas serializadas para ejecutar en tu host especificado.

Un ejemplo simple de un playbook de Ansible podría verse así:

- hosts: webservers become: yes tasks: - name: Install Apache apt: name: apache2 state: present

Este playbook le indica a Ansible que se conecte a todos los hosts en el grupo “webservers”, eleve privilegios usando el método sudo predeterminado (make: yes) e instale el paquete del servidor web Apache en cada uno de ellos.

5.1 Componentes del Playbook

6. Variables y Hechos

Ansible permite la configuración dinámica utilizando variables. Las variables pueden definirse en diferentes ámbitos: a nivel de playbook, a nivel de host o a nivel de grupo. Puedes declarar variables directamente dentro del playbook:

- hosts: webservers vars: http_port: 80 tasks: - name: Ensure Apache is installed apt: name: apache2 state: present - name: Ensure Apache is started service: name: apache2 state: started

Ansible también recopila hechos sobre el sistema de forma predeterminada. Puedes usar estos valores recopilados para tomar decisiones en tu playbook. Para ver los hechos recopilados de un host específico, ejecuta:

ansible <hostname> -m setup

7. Manejadores y Notificaciones

En Ansible, algunas tareas solo son útiles si activan alguna acción, como reiniciar un servicio cuando se actualiza un paquete. Ahí es donde entran en juego los manejadores y notificaciones.

- hosts: webservers tasks: - name: Install apache2 apt: name: apache2 state: latest notify: - restart apache handlers: - name: restart apache service: name: apache2 state: restarted

El playbook anterior reiniciará el servicio Apache solo si la tarea "install apache2" cambia algo, como instalar o actualizar Apache. Los manejadores siempre se ejecutan al final de la ejecución del playbook, suponiendo que hayan sido notificados.

8. Condicionales y Bucles

La flexibilidad de Ansible significa que puede tomar decisiones lógicas. Usando condicionales, puedes preparar tus tareas para que se ejecuten solo bajo ciertas circunstancias. Los condicionales usan plantillas Jinja2 para evaluar expresiones:

- hosts: webservers tasks: - name: Install Apache 2 apt: name: apache2 state: latest when: ansible_os_family == "Debian"

En este ejemplo, la tarea para instalar Apache solo se ejecutará si la familia de sistemas operativos del nodo es Debian. El bucle permite ejecutar la tarea varias veces con diferentes elementos:

- hosts: webservers tasks: - name: Install needed packages apt: name: "{{ item }}" state: present loop: - "apache2" - "vim" - "git"

Esta tarea iterará sobre la lista e instalará cada paquete listado (Apache, Vim y Git).

9. Conclusión

Con su rico ecosistema de módulos y funcionalidades, Ansible proporciona un poderoso marco para automatizar y gestionar infraestructuras de TI. Siguiendo esta guía, deberías tener una comprensión básica de cómo configurar Ansible en Ubuntu y ejecutar playbooks básicos y comandos ad hoc. Las herramientas y conceptos discutidos son solo la base; las capacidades de Ansible se extienden mucho más allá de lo cubierto aquí. A medida que ganes experiencia con Ansible, descubrirás que sus capacidades son lo suficientemente robustas como para manejar una amplia gama de desafíos de infraestructura, aumentando la eficiencia a través de una automatización confiable.

Si encuentras algo incorrecto en el contenido del artículo, puedes


Comentarios