# Event-Driven Ansible (EDA) : Automatiser la remédiation en boucle fermée sur Kubernetes

> Comment coupler Prometheus Alertmanager et Ansible Rulebooks pour automatiser le cordon, le drain et le reprovisioning de nœuds Kubernetes sans intervention humaine.

- **Date de publication** : 2026-09-09T08:30:00.000Z

---

Dans les architectures Kubernetes et OpenShift à grande échelle, le temps moyen de résolution (**MTTR**) d'un incident dépend trop souvent de l'astreinte humaine : réception d'une alerte, diagnostic manuel, exécution de scripts de maintenance et réouverture de tickets.

L'adoption d'**Event-Driven Ansible (EDA)** au sein d'Ansible Automation Platform (AAP) permet de basculer vers un modèle d'**auto-remédiation en boucle fermée** (*closed-loop automation*), transformant les événements de télémétrie en actions d'ingénierie immédiates.

---

### 1. Le goulet d'étranglement de l'intervention manuelle
Lorsqu'un nœud worker subit une pression mémoire critique (`NodeMemoryPressure`) ou une défaillance de kubelet :
* **Latence opérationnelle :** Entre l'alerte Prometheus et l'action de l'ingénieur d'astreinte, plusieurs minutes s'écoulent pendant lesquelles les charges applicatives subissent des dégradations de service (OOMKilled, timeouts).
* **Risque d'erreur humaine sous stress :** Les opérations de `cordon` et `drain` mal ordonnancées risquent d'interrompre brutalement des pods stateful ou des bases de données répliquées.
* **Tâches répétitives à faible valeur :** Le redémarrage de démons ou la purge de caches disque consomment un temps d'ingénierie précieux au détriment de l'évolution de la plateforme.

---

### 2. Le mécanisme EDA : Sources, Règles et Actions
Event-Driven Ansible repose sur une syntaxe déclarative en YAML — les **Ansible Rulebooks** — articulée en trois composants :
1. **Sources d'événements (Event Sources) :** Branchement direct sur les webhooks Prometheus Alertmanager, les files Kafka ou les logs Vector.
2. **Moteur de règles conditionnelles (Rules) :** Évaluation en temps réel des conditions (ex: `event.alert.alertname == "KubeNodeMemoryPressure" and event.alert.severity == "critical"`).
3. **Actions automatisées (Action Handlers) :** Déclenchement instantané d'un Job Template sur Ansible Automation Platform pour :
   - Poser un `cordon` sur le nœud concerné via le module `kubernetes.core`.
   - Effectuer un `drain` gracieux en respectant les `PodDisruptionBudgets`.
   - Lancer un playbook de remédiation système (nettoyage de conteneurs orphelins, redémarrage systemd du kubelet) ou reprovisionner le nœud via l'infrastructure déclarative (IPI / GitOps).

---

### 3. Impact et Compétences dans le Cursus AS200
Chez Aperta Scientia, l'automatisation événementielle n'est pas abordée comme un concept abstrait :
* **Cursus AS200 (DevOps Platform Engineer — DO374) :** Conception de pipelines d'auto-remédiation complets, écriture de Rulebooks de production, sécurisation des webhooks et intégration native avec OpenShift Alertmanager.
* **Gains en production :** Réduction du MTTR de plusieurs dizaines de minutes à quelques secondes, zéro downtime applicatif non planifié et respect strict des SLOs d'entreprise.

---

### 4. Sources & Références Techniques
* **Event-Driven Ansible Official Documentation :** [Red Hat Ansible Automation Platform Guide](https://docs.redhat.com/en/documentation/red_hat_ansible_automation_platform/)
* **Ansible Rulebook Upstream Project :** [ansible-rulebook Documentation](https://ansible.readthedocs.io/projects/rulebook/)
* **Event-Driven Automation with Prometheus & OpenShift :** [Red Hat Developer Blog](https://developers.redhat.com/articles/2023/06/20/event-driven-ansible-closed-loop-automation)

---

*Source : https://aperta.io/fr/radar/2026-09-09-event-driven-ansible-closed-loop-remediation-kubernetes/ — Aperta Scientia Tech Radar*
