delegate_to et run_once pour l’orchestration
Exécutez une tâche sur un hôte pour plusieurs autres.
delegate_to et run_once pour l’orchestration est une leçon DevOps Bootcamp gratuite sur CoddyKit. Ceci est la leçon 2 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 tâches ne s’exécutent pas toujours là où vous le pensez
Par défaut, chaque tâche s’exécute sur son hôte cible. Pour l’orchestration, vous devez parfois faire exécuter une tâche ailleurs. 🎯
Découvrez delegate_to
Le mot-clé delegate_to exécute une tâche sur un hôte différent de l’hôte actuel, tout en utilisant les variables de cet hôte.
- name: Add web node to load balancer
community.general.haproxy:
host: "{{ inventory_hostname }}"
state: enabled
delegate_to: lb01Un cas d’usage classique
Pendant que vous parcourez les nœuds web, déléguez la modification du répartiteur de charge à l’hôte LB. Le play reste exécuté nœud par nœud, mais l’action est effectuée sur LB.
Déléguer à localhost
Exécutez une tâche sur votre nœud de contrôle en la déléguant à localhost. C’est idéal pour appeler une API ou envoyer une notification depuis un point unique.
- name: Notify chat
ansible.builtin.uri:
url: "{{ webhook }}"
method: POST
delegate_to: localhostLes variables restent associées à l’hôte d’origine
La délégation déplace l’endroit où une tâche s’exécute, mais pas les faits qu’elle consulte. inventory_hostname désigne toujours la cible d’origine, et non le délégué.
Découvrez run_once
Le mot-clé run_once exécute une tâche une seule fois pour l’ensemble du lot, et non une fois par hôte. Ansible choisit le premier hôte pour l’exécuter.
- name: Run database migration
ansible.builtin.command: ./migrate.sh
run_once: truePourquoi run_once est important
Certaines actions ne doivent être effectuées qu’une seule fois, comme une migration ou une élection du leader. run_once empêche chaque hôte de répéter la même étape partagée.
Associez-les
Combinez run_once avec delegate_to pour effectuer une action unique sur un hôte choisi, par exemple lancer une migration depuis un seul nœud applicatif.
- name: Migrate db once
ansible.builtin.command: ./migrate.sh
run_once: true
delegate_to: app01Les résultats sont partagés
Avec run_once, un résultat enregistré est partagé entre tous les hôtes du lot. Ils voient tous la sortie de cette exécution unique.
- ansible.builtin.command: cat /etc/version
run_once: true
register: verCollecter les faits depuis un délégué
Utilisez delegate_facts si vous voulez associer les faits collectés à l’hôte délégué plutôt qu’à l’hôte actuel. Désactivé par défaut.
De l’orchestration, pas seulement de la configuration
Ensemble, ces mots-clés transforment une configuration par hôte en véritable orchestration : ils coordonnent une action unique sur un parc depuis un point central.
Vérification rapide
Vérifions ces mots-clés d’orchestration.
Récapitulatif
Utilisez delegate_to pour exécuter une tâche sur un autre hôte et run_once pour ne l’exécuter qu’une fois par lot, ce qui constitue le cœur de l’orchestration. ✅
Questions Fréquemment Posées
La leçon « delegate_to et run_once pour l’orchestration » est-elle gratuite ?
Oui — le texte complet de « delegate_to et run_once pour l’orchestration » 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 « delegate_to et run_once pour l’orchestration » ?
Exécutez une tâche sur un hôte pour plusieurs autres. 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 2 sur 4.
Combien de temps prend la leçon « delegate_to et run_once pour l’orchestration » ?
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
- Automatiser les équipements réseau avec cli_command
- delegate_to et run_once pour l’orchestration
- Coordonner les couches Web, application et DB
- Retirer puis réactiver un équilibreur de charge