Les playbooks Ansible manquent parfois d’adaptabilité aux environnements spécifiques.
Cela peut entraîner des configurations inefficaces et une perte de temps lors des déploiements.
Les facts Ansible offrent une solution en fournissant des données précises pour adapter les playbooks de manière optimale.
Devenez un expert d'Ansible et simplifiez vos tâches d'administration.
Rôle des facts Ansible dans le playbook
Utilisation des facts Ansible
Les facts Ansible sont des données recueillies automatiquement à partir de vos systèmes distants. Ces données fournissent des informations détaillées sur l’état des systèmes et sont essentielles pour l’exécution de playbooks adaptés aux environnements spécifiques. Voici quelques exemples de facts :
- Les systèmes d’exploitation :Ansible peut détecter quel système d’exploitation est utilisé, sa version, et d’autres détails pertinents.
- Les adresses IP :Ansible collecte des informations sur les adresses IP des interfaces réseau de chaque hôte.
- Les systèmes de fichiers attachés :Ansible peut répertorier les systèmes de fichiers montés et leurs détails, comme les points de montage et les tailles.
Utilisation des facts :
Les facts peuvent être utilisés dans les playbooks pour rendre les tâches plus dynamiques et adaptées aux configurations spécifiques des hôtes. Par exemple, nous pouvons utiliser les facts pour appliquer des configurations spécifiques à un type de système d’exploitation ou pour déployer des applications sur des serveurs avec certaines adresses IP.
Désactivation des facts Ansible
Dans certaines situations, nous pourrions vouloir désactiver la collecte automatique des facts pour réduire le temps d’exécution et améliorer les performances de notre machine. Cela peut être fait en définissant INJECT_FACTS_AS_VARS à False dans notre configuration Ansible comme ceci.
- name: Désactiver la collecte des facts
hosts: all
gather_facts: no
tasks:
- name: Exécuter une tâche sans facts
debug:
msg: "Les facts ne sont pas collectés pour cette exécution."
Ajouter des facts Ansible personnalisés
Pour enrichir les playbooks avec des informations spécifiques à notre infrastructure, nous pouvons ajouter des valeurs personnalisées aux facts. Cela permet de mieux adapter les configurations et les actions selon les besoins uniques de nos systèmes.
Définir des faits temporaires avec une tâche :
Avec Ansible, nous pouvons définir des facts temporaires directement dans nos playbooks en utilisant la tâche ansible.builtin.set_fact. Ces facts ne durent que le temps de l’exécution du playbook. Voilà un exemple pour cela :
- name: Définir un fait temporaire
ansible.builtin.set_fact:
custom_fact: "valeur_personnalisée"
Fournir des faits personnalisés permanents en utilisant le répertoire facts.d :
Pour des faits personnalisés permanents, Ansible permet d’utiliser le répertoire facts.d. En plaçant des scripts ou des fichiers de données dans ce répertoire sur les hôtes, vous pouvez fournir des facts qui seront collectés à chaque exécution de playbook.
Pour bien comprendre les facts, testons les informations relatives à notre nœud géré en exécutant la commande suivante dans le terminal du nœud de contrôle : ansible servers -m ansible.builtin.setup et cela nous affiche de résultats comme ceci :
Voilà, les informations sur le nœud géré à distance affichent bien maintenant.
Nous allons aller plus loin en exécutant le playbook suivant dans notre nœud distance ò partir du noeud de contrôle.
- hosts: servers
tasks:
- debug:
msg:"{{ansible_architecture}}"
-debug:
msg:"{{ansible_apparmor.status}}"
- debug:
msg:"{{ansible_all_ipv4_addresses}}"
- debug:
msg:"{{ansible_all_ipv4_addresses[0]}}"
Ce playbook exécute quatre tâches sur les machines du groupe servers :
Première tâche – Afficher l’architecture du système : Affiche la valeur de la variable ansible_architecture, qui représente l’architecture du processeur.
Deuxième tâche – Afficher l’état d’AppArmor : Affiche l’état du module de sécurité AppArmor (par exemple, enabled, disabled).
Troisième tâche – Afficher toutes les adresses IPv4 : Affiche une liste de toutes les adresses IPv4 configurées sur les interfaces réseau de l’hôte.
Quatrième tâche – Afficher la première adresse IPv4 : Affiche la première adresse IPv4 de la liste des adresses IPv4 de l’hôte.
Créons le fichier play-book.yml et copions-y le contenu ci-dessus.
Exécutons maintenant ce fichier avec la commande ansible-playbook -v play-book.yml et nous aurons le résultat comme ceci :
Bravo, nous obtenions les résultats attendus donc le playbook était bien exécuté.
Formez-vous gratuitement avec Alphorm !
Maîtrisez les compétences clés en IT grâce à nos formations gratuites et accélérez votre carrière dès aujourd'hui.
FAQ
Qu'est-ce que les facts Ansible ?
Comment désactiver la collecte des facts dans Ansible ?
Comment ajouter des facts personnalisés dans Ansible ?
Pourquoi utiliser les facts dans un playbook Ansible ?
Comment tester les facts sur un nœud géré avec Ansible ?
Conclusion
Les facts Ansible sont des outils puissants pour personnaliser et optimiser vos playbooks. Comment envisagez-vous d’intégrer ces concepts dans vos déploiements futurs pour maximiser l’efficacité de vos configurations ?