0Pricing
DevOps Bootcamp · Leçon

Quand les gestionnaires s’exécutent et flush_handlers

Contrôlez le moment d’exécution des gestionnaires en fin de play.

Quand les gestionnaires s’exécutent et flush_handlers est une leçon DevOps Bootcamp gratuite sur CoddyKit. Ceci est la leçon 3 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage DevOps Bootcamp, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours DevOps Bootcamp comprend 4 leçons au total.

Les gestionnaires s’exécutent à la fin

Par défaut, tous les gestionnaires notifiés s’exécutent une fois, à la toute fin du play, après la fin de chaque tâche. Ils ne s’exécutent pas au moment où ils sont notifiés.

Pourquoi les différer ?

Différer leur exécution signifie qu’un service est redémarré une seule fois, même après de nombreuses modifications de configuration. Cela évite les redémarrages inutiles au milieu du play et fait gagner du temps.

Par hôte, pas globalement

Le moment d’exécution des gestionnaires est suivi par hôte. Chaque hôte exécute ses propres gestionnaires en attente à la fin du play, indépendamment des autres.

Le problème du redémarrage tardif

Parfois, une tâche ultérieure a besoin que le service soit déjà redémarré. Attendre la fin du play est alors trop tard ; vous devez donc vider la file plus tôt.

Découvrez flush_handlers

La tâche meta flush_handlers force l’exécution immédiate de tous les gestionnaires en attente, au milieu du play.

- name: Run queued handlers now
  ansible.builtin.meta: flush_handlers

C’est une tâche meta

flush_handlers est une action spéciale meta qui contrôle Ansible lui-même plutôt que de modifier l’hôte distant.

Un cas d’utilisation courant

Modifiez la configuration, videz la file pour redémarrer le service, puis exécutez une tâche de test de bon fonctionnement sur le service fraîchement redémarré.

- name: Update config
  ansible.builtin.template:
    src: app.j2
    dest: /etc/app.conf
  notify: Restart app
- ansible.builtin.meta: flush_handlers
- name: Check health
  ansible.builtin.uri:
    url: http://localhost/health

Échecs et gestionnaires

Si un hôte échoue avant la fin du play, ses gestionnaires en attente ne s’exécutent normalement pas. C’est l’une des raisons pour lesquelles une exécution anticipée peut être plus sûre.

force_handlers comme filet de sécurité

Définissez force_handlers sur true dans un play pour exécuter les gestionnaires en attente même lorsqu’un hôte échoue plus tard. C’est utile pour les redémarrages de nettoyage.

- hosts: web
  force_handlers: true
  tasks:
    - ...

Videz la file avec parcimonie

Utilisez flush_handlers uniquement lorsque l’ordre l’exige réellement. Une utilisation excessive supprime l’avantage de mise en lot offert par les gestionnaires.

La chronologie

Les tâches s’exécutent de haut en bas, les gestionnaires attendent dans une file, puis ils se déclenchent tous à la fin du play, sauf si vous les exécutez plus tôt. ⏱️

Vérification rapide

Vous devez redémarrer un service au milieu du play afin qu’une tâche ultérieure puisse l’utiliser. Que devez-vous utiliser ?

Récapitulatif

Les gestionnaires s’exécutent normalement une fois à la fin du play, pour chaque hôte. Utilisez flush_handlers pour les déclencher plus tôt, et force_handlers pour qu’ils s’exécutent malgré les échecs. 🚀

Questions Fréquemment Posées

La leçon « Quand les gestionnaires s’exécutent et flush_handlers » est-elle gratuite ?

Oui — le texte complet de « Quand les gestionnaires s’exécutent et flush_handlers » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours DevOps Bootcamp, passe à CoddyKit PRO. Le cours DevOps Bootcamp comprend 4 leçons au total.

Qu'est-ce que j'apprendrai dans « Quand les gestionnaires s’exécutent et flush_handlers » ?

Contrôlez le moment d’exécution des gestionnaires en fin de play. Tu pratiques DevOps Bootcamp avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.

Dois-je avoir de l'expérience pour commencer DevOps Bootcamp ?

Aucune expérience préalable n'est requise. DevOps Bootcamp sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 3 sur 4.

Combien de temps prend la leçon « Quand les gestionnaires s’exécutent et flush_handlers » ?

La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.

Peux-tu écrire et exécuter du code dans cette leçon DevOps Bootcamp ?

Oui. Chaque leçon DevOps Bootcamp inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.

Toutes les leçons de ce cours

  1. Notifier un gestionnaire en cas de modification
  2. Définir des gestionnaires et des schémas de redémarrage
  3. Quand les gestionnaires s’exécutent et flush_handlers
  4. Listen : un déclencheur, plusieurs gestionnaires
← Retour à DevOps Bootcamp