NetOps ChatOps y Event Driven con Ansible
|
Uso de EDA Controller para Automatisación
«Hoy vamos a explorar algo un poco diferente: utilizaremos Ansible impulsado por eventos, específicamente el EDA Controller, para algunas tareas de automatización de redes.»
- En esta sección, el presentador introduce el concepto de Ansible impulsado por eventos (EDA), haciendo énfasis en el EDA Controller que es parte de la plataforma.
- El enfoque principal se centrará en la automatización de redes, denominada netops, donde se espera usar eventos de una manera novedosa combinando chat Ops.
- Se destaca que hay dos ruleboooks activos en el EDA Controller: uno para monitorear el estado de los puertos y otro para gestionar eventos de chat.
Monitoreo de Telemetría de Red
«Desde la perspectiva de telemetría, tomaremos la información de telemetría, escucharemos eventos específicos y usaremos Ansible impulsado por eventos para activar automatizaciones.»
- A través de un diagrama de red proporcionado, el presentador describe un ambiente con tres switches interconectados, donde se recopilan datos de telemetría para monitorear el estado de los puertos.
- Se explica cómo la información de telemetría será recopilada utilizando un mecanismo de publicación-suscripción (pub-sub) para que se puedan observar cambios en el estado y en protocolos como BGP.
- Este enfoque implica empujar datos hacia un sistema Kafka, donde Ansible estará atento a mensajes en la cola para ejecutar acciones automatizadas.
Ejemplo de Fallo de Puerto
«Si cerramos una interfaz, se convierte en un evento, y ese evento se envía a nuestra fuente de eventos para que Ansible lo recoja y comience la automatización.»
- En esta parte, el presentador simula un fallo en uno de los puertos de un switch, mostrando cómo al deshabilitar la interfaz se genera un evento que Ansible puede observar y responder.
- Una vez que el evento es recogido, se ejecuta automáticamente un trabajo de status deseado del puerto, demostrando cómo el sistema puede reaccionar ante cambios en la infraestructura de red.
- El demostrador verifica que el sistema ha absorbido correctamente el cambio y ha realizado la corrección automáticamente, resaltando la eficacia de la automatización basada en eventos.
Configuración Automática de Puertos
«Cuando cambiamos el estado de un puerto a ‘vivo’, se genera otro evento que activa la configuración automática del puerto.»
- Se realiza un ejemplo práctico donde se habilita un puerto, lo que genera un nuevo evento que Ansible debe responder configurando automáticamente el switch para operar en el VLAN correcto.
- Al mostrar los resultados a través de comandos del switch, se evidencia cómo la configuración se lleva a cabo de manera automática, subrayando la ventaja de la automatización para reducir la carga administrativa de la red.
- La sección resalta que la automatización no solo permite la corrección de problemas, sino también una configuración fluida y eficiente, mejorando el manejo de la red.
Automatización de Soluciones de Problemas
«Parte de la historia impulsada por eventos es que podemos automatizar acciones que no siempre tienen que ser remedios o auto-correcciones, sino también para la recolección de hechos o apertura de tickets de soporte.»
- El presentador explica cómo la automatización puede extenderse más allá de la simple remediación, al incluir la recopilación de información y un proceso de resolución de problemas sistemático.
- Al abordar un evento específico, el equipo puede codificar el conocimiento sobre cómo resolver problemas, permitiendo que estas acciones se realicen automáticamente en respuesta a incidentes, facilitando el trabajo de los ingenieros.
- La sección finaliza con un ejemplo de cómo se podría llevar a cabo un proceso de solución de problemas para el protocolo BGP al romper intencionalmente una conexión y visualizar la respuesta automática del sistema.
Sincronización y Notificación de Errores BGP
«Hemos realizado una notificación sobre un error BGP que ha sido detectado automáticamente.»
- El controlador derecho se ha sincronizado con el repositorio y ahora está ejecutando los procesos de solución de problemas de BGP. Este procedimiento se basa en un playbook desarrollado por el equipo para asegurar una consistencia en el proceso de solución de problemas.
- Durante la revisión de los procesos, se ha generado una notificación que indica un error con la sesión BGP, donde se informa que la sesión está en estado «Idle». Esto se detectó utilizando un evento de Ansible que alertó sobre un problema en el estado de la sesión.
- El sistema permite a los equipos técnicos recibir alertas en tiempo real a través de su canal de chat, facilitando así una respuesta rápida ante los problemas de red.
Respaldos de Switches a través de Chat Ops
«Podemos respaldar nuestros switches directamente desde nuestra aplicación de chat, simplificando el proceso.»
- La aplicación permite a los usuarios hacer respaldos de los switches sin necesidad de acceder directamente a cada dispositivo. Esto se logra mediante comandos simples en la aplicación de chat, lo que optimiza el flujo de trabajo.
- El controlador activo inicia el proceso de respaldo al recibir el comando adecuado, mostrando en tiempo real el progreso y confirmando que los datos han sido respaldados correctamente.
- Además, existe una integración con sistemas de gestión como ServiceNow, que permite la creación de tickets automáticos cuando se realiza una acción a través de la plataforma de chat. Esto asegura que toda la información relevante se almacene y se pueda acceder fácilmente para futuras consultas.
Integración con Sistema de Tickets
«La información sobre la acción tomada se ha convertido en un ticket, almacenando la configuración respaldada para su uso posterior.»
- Tras realizar un respaldo, un nuevo ticket se genera automáticamente en el sistema de gestión de incidencias, como ServiceNow. Esto se hace gracias a la integración con el sistema de chat y la utilización de eventos que desencadenan esta acción.
- El ticket incluye la configuración respaldada, permitiendo que los técnicos tengan acceso a los archivos de configuración directamente desde la plataforma de gestión de incidencias y simplificando la gestión de datos.
- Esta combinación de Chat Ops y NetOps a través de eventos impulsados por Ansible permite avanzar hacia un nivel superior de automatización en la gestión de redes.
Aqui te dejo un ejemplo de un rulebook en ansible:
---
sources:
- name: my_source
type: ansible.eda.rabbitmq # Escucha eventos de RabbitMQ
config:
host: my.rabbitmq.server
queue: my_queue
rules:
– name: handle_high_cpu
condition: event.cpu_usage > 80
action:
run_playbook:
name: remediate_cpu_issue.yml
– name: log_event
condition: event.type == «log»
action:
debug:
msg: «Received a log event: {{ event.message }}»
Casos de uso típicos
- Automatización reactiva: Desplegar contenedores cuando un sistema de orquestación detecta un pico de tráfico.
- Remediación automatizada: Reiniciar un servicio si se detecta que está inactivo.
- Monitoreo y notificación: Enviar alertas a Slack o correo electrónico cuando ocurren ciertos eventos.
Beneficios de usar Rulebooks
- Automatización dinámica: Permite actuar inmediatamente en respuesta a eventos sin intervención manual.
- Escalabilidad: Adecuado para sistemas distribuidos donde la supervisión manual es inviable.
- Integración con múltiples sistemas: Soporta diversas fuentes de eventos y sistemas de destino.
- Consistencia: Reduce errores humanos y asegura que las respuestas sean siempre consistentes.
Event-Driven Ansible y los rulebooks son especialmente útiles en entornos de TI modernos donde se necesita automatización en tiempo real, integrando diferentes herramientas y plataformas.