Origine et priorité des variables
Découvrez une première cartographie des sources de variables.
Origine et priorité des variables est une leçon Ansible Academy gratuite sur CoddyKit. Ceci est la leçon 4 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 Ansible Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours Ansible Academy comprend 4 leçons au total.
Tant de sources
La même variable peut être définie à de nombreux endroits : inventaire, variables du play, fichiers, CLI et bien d'autres. Alors, quelle valeur l'emporte réellement ? 🌟
La priorité tranche
Ansible suit un ordre fixe appelé priorité des variables. Lorsqu'un nom est défini deux fois, la source de priorité supérieure remplace celle de priorité inférieure.
Les valeurs par défaut des rôles sont les moins prioritaires
Les valeurs du dossier defaults d'un rôle se trouvent tout en bas. Elles sont conçues pour être facilement remplacées par presque n'importe quelle autre source.
# roles/web/defaults/main.yml
http_port: 80Variables d'inventaire
Les variables définies dans votre inventaire, par exemple dans group_vars ou host_vars, sont plus prioritaires que les valeurs par défaut des rôles, mais moins que les variables du play.
# group_vars/web.yml
http_port: 8080Les variables du play sont plus prioritaires
Les variables placées sous la clé vars d'un play l'emportent sur les valeurs de l'inventaire. Définissez une valeur ici et elle remplacera toute valeur de group_vars.
- hosts: web
vars:
http_port: 9090Les variables de tâche sont ciblées
Vous pouvez associer vars à une seule tâche. Cette valeur ne s'applique qu'à cet endroit et est plus prioritaire que les variables plus générales du play.
- debug:
var: http_port
vars:
http_port: 1234Variables enregistrées et set_fact
Les valeurs que vous capturez avec register ou définissez pendant une exécution avec set_fact occupent une place élevée dans l'ordre, juste sous les variables supplémentaires.
- set_fact:
http_port: 7000Les variables supplémentaires sont prioritaires
Les variables supplémentaires de la ligne de commande l'emportent sur toutes les autres. Tout ce que vous transmettez avec -e est définitif pour cette exécution.
ansible-playbook site.yml -e http_port=443Dans un même niveau, la dernière définition l'emporte
Lorsque deux sources ont le même niveau, celle qui est chargée en dernier prend effet. La priorité d'abord, puis l'ordre de chargement pour départager les égalités.
Restez simple
Vous aurez rarement besoin de mémoriser tout le tableau. Placez des valeurs raisonnables dans defaults, surchargez-les volontairement et évitez de définir le même nom partout.
Déboguez la valeur obtenue
Vous ne savez pas quelle valeur l'a emporté ? Affichez-la avec debug pour voir le résultat résolu avant de lui faire confiance en production.
- debug:
var: http_portVérification rapide
Quelle source d'une variable possède la priorité la plus élevée ?
Récapitulatif
Vous avez parcouru l'échelle des priorités : defaults en dernier, puis l'inventaire, les variables de play et de tâche, ensuite set_fact, avec les variables supplémentaires au sommet. ✨
Questions Fréquemment Posées
La leçon « Origine et priorité des variables » est-elle gratuite ?
Oui — le texte complet de « Origine et priorité des variables » 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 Ansible Academy, passe à CoddyKit PRO. Le cours Ansible Academy comprend 4 leçons au total.
Qu'est-ce que j'apprendrai dans « Origine et priorité des variables » ?
Découvrez une première cartographie des sources de variables. Tu pratiques Ansible Academy 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 Ansible Academy ?
Aucune expérience préalable n'est requise. Ansible Academy 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 4 sur 4.
Combien de temps prend la leçon « Origine et priorité des variables » ?
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 Ansible Academy ?
Oui. Chaque leçon Ansible Academy 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
- Définir et utiliser vars dans un play
- La syntaxe de substitution {{ }}
- Variables supplémentaires sur la ligne de commande
- Origine et priorité des variables