Utiliser ansible_facts dans les tâches
Créez des branches selon les faits liés au système, à la mémoire et à l’IP.
Utiliser ansible_facts dans les tâches est une leçon Ansible Academy 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 Ansible Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours Ansible Academy comprend 4 leçons au total.
Des données aux décisions
Les faits collectés ne sont utiles que si vous agissez en fonction d'eux. Vous allez maintenant extraire des valeurs depuis ansible_facts directement dans vos tâches. 🌟
Référencer un fait
Utilisez la même syntaxe {{ }} que pour toute variable. À l'intérieur des accolades, indiquez le fait souhaité, comme la distribution de l'hôte.
- debug:
msg: "OS is {{ ansible_distribution }}"L'accès au dictionnaire est également possible
Vous pouvez aussi lire les faits dans le dictionnaire ansible_facts avec des clés entre crochets. Les deux styles désignent les mêmes données.
{{ ansible_facts['distribution'] }}Adapter l'exécution à l'OS
Combinez un fait avec when pour exécuter une tâche uniquement sur les hôtes correspondants, par exemple installer un paquet uniquement sur les systèmes Debian.
when: ansible_os_family == "Debian"Choisir le bon paquet
Les faits permettent à une seule tâche de servir plusieurs distributions. Choisissez apache2 ou httpd selon la famille d'OS au lieu d'écrire deux playbooks.
name: "{{ 'apache2' if ansible_os_family == 'Debian' else 'httpd' }}"Utiliser les faits numériques
Les faits comme ansible_memtotal_mb sont des nombres. Vous pouvez donc les comparer et éviter certaines opérations sur les hôtes trop petits.
when: ansible_memtotal_mb > 2048Atteindre les valeurs imbriquées
Pour les faits imbriqués, enchaînez les clés avec des points. L'adresse IPv4 par défaut se trouve sous ansible_default_ipv4, puis sous address.
{{ ansible_default_ipv4.address }}Les faits dans les modèles
Les mêmes noms de faits fonctionnent dans les modèles Jinja2. Insérez directement le hostname ou l'IP d'un hôte dans un fichier de configuration généré.
server_name {{ ansible_hostname }};Parcourir les faits sous forme de liste
Certains faits sont des listes, comme ansible_interfaces. Vous pouvez les parcourir pour agir sur chaque interface réseau d'un hôte.
loop: "{{ ansible_interfaces }}"Vérifier avant de faire confiance
Vous n'êtes pas certain de la valeur exacte d'un fait ? Affichez-la d'abord avec debug, puis construisez la logique qui en dépend.
- debug:
var: ansible_distribution_versionUn playbook, de nombreux hôtes
Comme les faits sont propres à chaque hôte, les tâches qui s'appuient sur eux permettent à un seul playbook de se comporter correctement sur un parc de machines hétérogène.
Vérification rapide
Comment exécuteriez-vous une tâche uniquement sur les hôtes de la famille Debian ?
Récapitulatif
Vous avez lu les faits avec {{ }}, adapté l'exécution avec when, atteint des valeurs imbriquées et parcouru des faits sous forme de liste pour rendre les tâches adaptatives. ✨
Questions Fréquemment Posées
La leçon « Utiliser ansible_facts dans les tâches » est-elle gratuite ?
Oui — le texte complet de « Utiliser ansible_facts dans les tâches » 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 « Utiliser ansible_facts dans les tâches » ?
Créez des branches selon les faits liés au système, à la mémoire et à l’IP. 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 3 sur 4.
Combien de temps prend la leçon « Utiliser ansible_facts dans les tâches » ?
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
- Ce que sont les faits et leur importance
- Explorer les faits avec le module setup
- Utiliser ansible_facts dans les tâches
- Désactiver la collecte des faits pour gagner du temps