Marcio Cunha

Cómo automatizar switches con Ansible en redes locales

Aprenda a aplicar infraestructura como código en redes locales usando Ansible para configurar switches heredados de forma idempotente y segura.

Marcio Cunha•4 min
También disponible en:EnglishPortuguês
Resumen
  • La automatización de redes locales elimina errores manuales en tareas repetitivas de configuración de switches.
  • La idempotencia garantiza que ejecutar el mismo script varias veces mantenga el equipo en el estado correcto sin cambios indebidos.
  • Ansible utiliza conexiones SSH directas y comandos específicos para manejar modelos heredados sin requerir agentes internos.
  • El uso de plantillas garantiza consistencia en docenas de puertos y VLANs distribuidas por toda la infraestructura física.
  • Pruebas rigurosas de estrés y validación evitan caídas no deseadas en entornos de producción consolidados.

Por qué automatizar redes locales con Ansible

Gestionar switches de redes locales manualmente es una tarea exhaustiva y propensa a graves errores humanos. Cuando necesitamos cambiar una VLAN (Virtual Local Area Network, una forma de dividir la red física en redes virtuales aisladas) en docenas de equipos, el riesgo de digitar un comando incorrecto y derribar el acceso a internet es real. La automatización entra precisamente para mitigar este problema, permitiendo que la infraestructura sea tratada como código.

En la práctica, esto significa escribir un archivo de texto describiendo exactamente cómo debe comportarse el switch y dejar que el software aplique esa regla. Si alguna vez necesitó depurar latencia y caos en peticiones HTTP con Toxiproxy, sabe que probar escenarios antes de tocar la producción previene dolores de cabeza. Con Ansible, aplicamos esta misma mentalidad preventiva al hardware físico.

El desafío de tratar con equipos heredados

El gran obstáculo en las redes locales corporativas es el parque de switches antiguos. Los equipos heredados generalmente no poseen APIs modernas o soporte nativo para herramientas de automatización avanzadas basadas en REST, exigiendo el viejo acceso mediante SSH simulando la escritura humana.

Para sortear esta limitación, Ansible utiliza módulos específicos de red que traducen los comandos deseados al lenguaje de cada fabricante, ya sea Cisco, HP o Dell. Antes de aplicar cualquier cambio estructural, es fundamental garantizar que la energía y la estabilidad física estén aseguradas, tal como cuando aprendemos cómo diseñar un banco de baterías redundante en SAI para evitar caídas catastróficas durante actualizaciones de firmware o rutinas de mantenimiento pesado.

El concepto de idempotencia aplicado a switches

La idempotencia es un concepto fundamental en la ingeniería de software e infraestructura que significa poder ejecutar la misma operación varias veces obteniendo exactamente el mismo resultado final, sin efectos secundarios indeseados. Si el comando ya fue aplicado y el switch ya está configurado correctamente, el sistema no altera nada.

Esto evita que scripts mal planificados estén reiniciando puertos o reescribiendo archivos de configuración a cada instante. En redes locales, la idempotencia protege puertos críticos de servidores y garantiza que los ajustes incrementales ocurran sin interrupciones desproporcionadas para los usuarios finales conectados a esa infraestructura.

Estructurando el inventario y las credenciales seguras

El primer paso práctico para comenzar la automatización es organizar el archivo de inventario, que no es más que la lista con las direcciones IP y los modelos de los switches de su red local. Para mantener la seguridad, nunca almacenamos contraseñas en texto plano dentro de estos archivos, recurriendo a gestores de secretos.

A continuación se muestra un ejemplo básico de archivo de inventario en formato YAML para estructurar los equipos de su red local:

all:  hosts:    switch_piso_1:      ansible_host: 192.168.1.10      ansible_network_os: ios    switch_piso_2:      ansible_host: 192.168.1.11      ansible_network_os: ios

Con esta estructura definida, Ansible sabe exactamente con qué IP hablar y qué sistema operativo de red (network_os) esperar de cada dispositivo registrado en el inventario.

Escribiendo el primer playbook idempotente

Un playbook es el guion donde definimos las tareas que Ansible debe ejecutar en los switches. Vamos a crear un ejemplo práctico para garantizar que una VLAN específica esté creada y activa en todos los switches de la red local.

El código siguiente demuestra la creación automatizada de una VLAN de visitantes utilizando módulos nativos para equipos Cisco:

- name: Configurar VLAN de visitantes en switches  hosts: switches  gather_facts: no  tasks:    - name: Asegurar que la VLAN 50 existe y esta activa      cisco.ios.ios_vlans:        config:          - vlan_id: 50            name: VISITANTES            state: active        state: merged

En la práctica, el parámetro state: merged instruye a Ansible a verificar si la VLAN 50 existe con el nombre correcto. Si no existe, la crea; si ya existe exactamente así, simplemente no hace nada, garantizando la idempotencia de la operación.

Validando la conectividad y probando puertos

Después de aplicar las configuraciones automatizadas, es indispensable validar si la red continúa respondiendo perfectamente y si ningún puerto fue aislado por error. Si ocurren fallas de comunicación o puertos inaccesibles, vale la pena recurrir a herramientas de diagnóstico rápido en la línea de comandos, siguiendo técnicas similares a lo que hacemos cuando resolvemos problemas con puertos bloqueados y probamos redes con Ncat.

Mantener rutinas de prueba automatizadas posteriores al despliegue garantiza que la infraestructura como código aporte agilidad sin sacrificar la estabilidad operacional de la red local.

Consideraciones finales

La automatización del aprovisionamiento de switches mediante Ansible transforma la gestión de redes locales, sustituyendo tareas manuales repetitivas por código versionable, limpio y predecible. Incluso al lidiar con equipos heredados, la aplicación correcta de conceptos como la idempotencia y el uso de módulos adecuados reducen drásticamente el tiempo de inactividad y los errores humanos.

Adoptar esta cultura de ingeniería en la infraestructura de red prepara a la organización para crecer de forma segura, permitiendo que el equipo se enfoque en proyectos estratégicos en lugar de apagar incendios cotidianos generados por configuraciones manuales inconsistentes.