# Gestión de la configuración

> Describir cómo deben estar armados los servidores y que una herramienta los mantenga así.

- Nivel: Intermedio
- Temas: Cloud, Software
- URL: https://tidbit.legios.com.ar/es/configuration-management/
- En inglés: [Configuration management](https://tidbit.legios.com.ar/configuration-management/)

Una empresa puede tener cientos de servidores que necesitan los mismos usuarios, paquetes, ajustes y parches de seguridad. Hacerlo a mano, entrando a cada uno, es lento y propenso a errores: tarde o temprano dos servidores que deberían ser idénticos no lo son. La **gestión de la configuración** (configuration management) resuelve esto escribiendo en archivos el estado deseado de cada máquina y dejando que una herramienta haga que todos los servidores coincidan con él.

Las herramientas más conocidas son Puppet, Chef y Ansible. Puppet y Chef suelen instalar un pequeño agente en cada servidor que se reporta cada tanto y corrige lo que se haya desviado de la descripción. Ansible no necesita agente: se conecta por SSH y ejecuta tareas escritas en archivos YAML llamados playbooks. En todas, los pasos buscan ser idempotentes, o sea que correrlos dos veces no cambia nada la segunda vez: "asegurate de que `nginx` esté instalado" en lugar de "instalá `nginx`".

Es pariente cercana de la infraestructura como código. Herramientas como Terraform crean los servidores, las redes y las bases de datos; la gestión de la configuración prepara lo que corre adentro. Con contenedores y golden images, muchos equipos hoy dejan todo armado antes de arrancar la máquina en vez de arreglarla después, pero la gestión de la configuración sigue en todos lados, sobre todo en flotas de máquinas que viven mucho tiempo.

## Una analogía

Es como una receta con la foto del plato terminado: en vez de que cada cocinero cocine de memoria, todos reciben la misma receta, y un supervisor compara cada plato con la foto y corrige los que salieron distintos.

## Para quedarse

- Describís el estado deseado; la herramienta hace que cada servidor coincida.
- Puppet y Chef usan agentes; Ansible se conecta por SSH, sin agente.
- Las buenas tareas son idempotentes: correrlas de nuevo no cambia nada.
- Terraform construye los servidores; la gestión de la configuración los prepara.

## Para seguir leyendo

- [¿Qué es la gestión de la configuración? (Red Hat)](https://www.redhat.com/es/topics/automation/what-is-configuration-management)
- [Ansible en Wikipedia](https://es.wikipedia.org/wiki/Ansible_(software))
- [Documentación de Ansible (en inglés)](https://docs.ansible.com/)

## Términos relacionados

- [Servidor](https://tidbit.legios.com.ar/es/server/): Una computadora cuyo trabajo es responder pedidos de otras computadoras, todo el día.
- [Paquete](https://tidbit.legios.com.ar/es/packet/): El pedacito en que se corta cada dato de internet antes de viajar.
- [Vulnerabilidad y CVE](https://tidbit.legios.com.ar/es/vulnerability-and-cve/): Una falla que permite abusar de un software, y el código público que la identifica.
- [Agente de IA](https://tidbit.legios.com.ar/es/ai-agent/): Un LLM que puede actuar, mirar el resultado y seguir hasta terminar la tarea.
- [SSH](https://tidbit.legios.com.ar/es/ssh/): Una forma cifrada de entrar a otra computadora y escribirle comandos.
- [Infraestructura como código](https://tidbit.legios.com.ar/es/infrastructure-as-code/): Describir servidores, redes y bases de datos en archivos en vez de a clics.
- [Terraform](https://tidbit.legios.com.ar/es/terraform/): Una herramienta popular para describir infraestructura cloud en archivos y crearla.
- [Base de datos](https://tidbit.legios.com.ar/es/database/): Un depósito ordenado de datos que los programas consultan y actualizan sin riesgo.
