Retirar y volver a habilitar nodos del balanceador
Saque nodos y reincorpórelos de forma segura
Retirar y volver a habilitar nodos del balanceador es una lección gratuita de Ansible Academy en CoddyKit. Esta es la lección 4 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Ansible Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Ansible Academy incluye 4 lecciones en total.
Actualizar el tráfico activo es arriesgado
Si actualiza un servidor mientras los usuarios acceden a él, las solicitudes fallan. La solución es drenar primero el nodo del balanceador de carga. 🚦
Qué significa drenar
Drenar un nodo significa dejar de enviarle tráfico nuevo mientras se permite que terminen las solicitudes en curso. Después, es seguro actualizarlo.
El ciclo de drenar, actualizar y volver a habilitar
El patrón seguro consta de tres pasos: drenar el nodo, desplegar el cambio y volver a habilitarlo en el balanceador de carga.
Deshabilitar un nodo en HAProxy
El módulo community.general.haproxy establece un nodo del backend en estado disabled e indica a HAProxy que deje de dirigirle tráfico.
- name: Drain web node
community.general.haproxy:
state: disabled
host: "{{ inventory_hostname }}"
socket: /var/run/haproxy.sockEjecutar la tarea del LB desde el LB
El socket de HAProxy se encuentra en el balanceador de carga, así que use delegate_to para delegar la tarea en el host del LB mientras sigue indicando el nodo web que se está drenando.
delegate_to: lb01Esperar a que se drenen las conexiones
Dé tiempo a que terminen las solicitudes activas. Use wait_for o una pausa breve para no interrumpir a los usuarios en mitad de una solicitud.
- name: Let traffic drain
ansible.builtin.wait_for:
timeout: 30
delegate_to: localhostAhora puede desplegar de forma segura
Con el nodo fuera de rotación, ejecute las tareas de actualización: instale paquetes, distribuya la configuración y reinicie la aplicación. El tráfico activo no se verá afectado. 🔧
Volver a habilitar el nodo
Después de actualizarlo, establezca el nodo de nuevo en estado enabled para que HAProxy vuelva a dirigir tráfico a su servidor recién desplegado.
- name: Re-enable web node
community.general.haproxy:
state: enabled
host: "{{ inventory_hostname }}"
socket: /var/run/haproxy.sock
delegate_to: lb01Comprobar la salud antes de volver a habilitarlo
Confirme que la aplicación está realmente activa antes de añadirla de nuevo. Un wait_for o una comprobación uri del endpoint de salud evita servir tráfico desde un nodo averiado.
- ansible.builtin.uri:
url: http://localhost:8080/health
status_code: 200
retries: 5
delay: 3Trabajar con un nodo a la vez
Combine este ciclo con serial para que solo uno o dos nodos se drenen a la vez. El resto seguirá atendiendo solicitudes, lo que le permitirá evitar el tiempo de inactividad.
- hosts: web
serial: 1Volver a habilitar siempre, incluso si hay un fallo
Incluya el despliegue en un block con always para que una actualización fallida vuelva a poner el nodo en rotación en lugar de dejarlo aislado.
Comprobación rápida
Veamos el patrón de despliegue seguro.
Resumen
Para evitar el tiempo de inactividad, drene un nodo, despliéguelo, compruebe su salud y vuelva a habilitarlo, trabajando con un nodo a la vez mediante serial y un block con always. ✅
Preguntas frecuentes
¿La lección «Retirar y volver a habilitar nodos del balanceador» es gratis?
Sí — el texto completo de «Retirar y volver a habilitar nodos del balanceador» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Ansible Academy, actualiza a CoddyKit PRO. El curso de Ansible Academy incluye 4 lecciones en total.
¿Qué aprenderé en «Retirar y volver a habilitar nodos del balanceador»?
Saque nodos y reincorpórelos de forma segura Practicas Ansible Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.
¿Necesito experiencia previa para empezar Ansible Academy?
No se requiere experiencia previa. Ansible Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 4 de 4.
¿Cuánto tiempo toma la lección «Retirar y volver a habilitar nodos del balanceador»?
La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.
¿Puedo escribir y ejecutar código en esta lección de Ansible Academy?
Sí. Cada lección de Ansible Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.
Todas las lecciones de este curso
- Automatizar dispositivos de red con cli_command
- delegate_to y run_once para la orquestación
- Coordinar las capas web, de aplicación y de base de datos
- Retirar y volver a habilitar nodos del balanceador