Gestión de servidores remotos con Ansible como un profesional
14:53, 25.08.2026
La gestión de la configuración es un proceso importante y necesario para garantizar la integridad, y suele incluir procesos de automatización. En lo que respecta a los servidores, la gestión de la configuración suele estar relacionada con la orquestación o la automatización de TI.
En esta guía, profundizaremos en la explicación de la gestión de la configuración y sus ventajas, y también compartiremos recomendaciones importantes sobre el uso de la herramienta Ansible.
¿Por qué utilizar una herramienta de gestión de la configuración?
Los usuarios pueden encontrar numerosas variantes de herramientas de gestión de la configuración, y todas ellas presentan características únicas en cuanto a complejidad y estilo arquitectónico. A pesar de algunas diferencias, todas cumplen la misma función: garantizan que el estado del sistema sea el mismo que el descrito en los scripts de aprovisionamiento.
¿Por qué deberías utilizar herramientas de gestión de la configuración? Aquí tienes algunas razones:
- La posibilidad de reutilizar scripts de aprovisionamiento para diversos entornos, como pruebas, desarrollo y producción.
- Disponibilidad de un sistema de control de versiones.
- Compartir los scripts de aprovisionamiento entre los miembros del equipo para mejorar la colaboración.
- Optimización del proceso de replicación de servidores, lo que facilita la recuperación ante algunos errores.
Además, estas herramientas ayudan a centralizar el control sobre los servidores, lo que puede tener un impacto enorme en el nivel de eficiencia.
Introducción a Ansible
Ansible es una de las herramientas de gestión de configuración más populares que ayuda a simplificar el mantenimiento y la configuración de servidores remotos, lo que permite ejecutar todo rápidamente.
Los scripts de aprovisionamiento de Ansible están escritos en YAML, un estándar que no está vinculado a ningún lenguaje de programación específico. Esto permite crear scripts de aprovisionamiento de forma más intuitiva en comparación con otras herramientas similares.
Ansible no requiere la instalación de ningún software específico en los nodos. El software de Ansible se configura en la máquina principal y la comunicación con otros nodos se realiza a través de SSH.
Esta herramienta incluye la mayoría de las funciones estándar disponibles en otras herramientas y, al mismo tiempo, ofrece mayores estándares de rendimiento y simplicidad.
Garantía de coherencia con operaciones idempotentes
La herramienta realiza un seguimiento del estado de los recursos para que no se repitan tareas. En caso de que se haya instalado un paquete concreto, la herramienta impedirá que se vuelva a instalar ese mismo paquete. El sistema funciona de tal manera que, tras cada ejecución de aprovisionamiento, se alcanza el estado deseado. Este comportamiento se denomina idempotente, lo que significa que puedes comprobar en el playbook si la tarea se ha ejecutado y si hay algún cambio en el sistema.
Uso de variables, condiciones y bucles
Al trabajar con los scripts de automatización, es posible utilizar bucles, condiciones y variables. Al utilizar esta opción, el proceso de automatización se vuelve más eficiente.
Aprovechamiento de los datos del sistema
La herramienta recopila datos sobre los nodos gestionados, como el sistema operativo y las interfaces, y los proporciona en variables globales denominadas «datos del sistema». Estos datos pueden utilizarse en los playbooks para que el proceso de automatización sea más adaptable y reaccione en función del sistema aprovisionado.
Capacidades de plantillas de Ansible
La herramienta funciona sobre la base de Jinja2 para Python y permite el acceso a variables y expresiones dinámicas. Mediante el uso de plantillas, es posible simplificar el proceso de configuración. Por ejemplo, es posible utilizar una plantilla para configurar un host virtual y emplear la misma plantilla para diversas instalaciones de servidores.
Extensibilidad mediante módulos y complementos
Existe una gran variedad de complementos y módulos integrados que pueden facilitar las tareas de administración. Por ejemplo, es posible instalar paquetes con apt y sincronizar archivos con rsync. Además, se puede trabajar con sistemas de bases de datos populares como MongoDB, MySQL y otros. Asimismo, es posible añadir módulos y complementos adicionales en caso de que se necesiten funcionalidades personalizadas.
Explicación de los conceptos clave de Ansible
Ahora, repasemos algunos conceptos clave para comprender mejor qué es Ansible y cómo funciona.
El nodo de control: tu centro de mando
Un nodo de control es donde se instala Ansible. Puede haber varios nodos de control dentro del sistema, y casi cualquier máquina puede configurarse como nodo de control, como un portátil o un ordenador. La única limitación es que el nodo de control no se puede instalar en un host con Windows. Sin embargo, esta limitación se puede superar utilizando una máquina virtual con Linux.
Sistemas de destino: nodos gestionados
Los nodos gestionados son los sistemas que se controlan a través de Ansible. Se accede a estos nodos mediante SSH estándar y tienen instalado Python 2 y 3. Muchos nodos pueden funcionar en diversos sistemas operativos, entre los que se incluye también Windows.
Organización de la infraestructura con el inventario
El archivo de inventario incluye una lista de hosts gestionados. Ansible crea un archivo predeterminado durante la instalación, pero también se pueden disponer de inventarios previos al proyecto para segmentar aún más la infraestructura y evitar posibles errores. Los inventarios estáticos tienen el formato de archivos .ini. Además, existen inventarios dinámicos que pueden devolverse en formato JSON.
Definición de acciones mediante tareas
Una tarea es una parte específica del trabajo que se realiza en el nodo gestionado. Esto significa que cada acción realizada puede denominarse tarea. Las tareas pueden realizarse mediante comandos ad hoc o escribirse en los scripts de automatización.
Automatización de flujos de trabajo con playbooks
Un playbook es una lista de tareas y otras directivas necesarias para la selección de los hosts a los que se dirige la automatización, la escalada de privilegios y las secciones opcionales. Todas las tareas se ejecutan de forma secuencial, y el playbook está en formato YAML.
Activación de acciones mediante controladores
Los controladores son necesarios para realizar acciones como detener o reiniciar el servicio que se está ejecutando en el nodo gestionado. Normalmente son activados por tareas, y su ejecución se lleva a cabo al final de todas las tareas. Esto significa que, cuando sea necesario reiniciar varias tareas, el reinicio se realizará una sola vez al final de todas ellas. El comportamiento predeterminado es el más eficiente, pero, si es necesario, es posible que el controlador se ejecute de forma inmediata.
Estructuración de la automatización con roles
El término «rol» hace referencia a varios playbooks, organizados en una estructura necesaria. Con la ayuda de los roles, resulta mucho más fácil reutilizar y adaptar los playbooks.
Reflexiones finales
Ansible es una herramienta de automatización fantástica, ideal para aprender y de fácil uso gracias al lenguaje YAML para los scripts de aprovisionamiento. Gracias a la disponibilidad de módulos integrados, que son cruciales para las tareas abstractas, los usuarios disponen de muchas más opciones. Esta herramienta es ideal para todos aquellos usuarios que necesiten una sintaxis accesible y unos requisitos de infraestructura simplificados.