
L'inventaire dit à Ansible quelles machines il gère, comment elles se regroupent, et quelles valeurs chacune reçoit. C'est le fichier qui permet d'écrire « applique ceci à tous les serveurs web » sans jamais les nommer un par un. Cette section couvre les deux façons de le constituer : l'écrire à la main, ce que fait la majorité des projets, ou le laisser se construire tout seul à partir de votre plateforme d'hébergement.
Prérequis
Section intitulée « Prérequis »Il faut avoir déjà lancé un playbook sur plusieurs machines, ce que couvre la section Premiers pas. La notion de groupe et le paramètre hosts: d'un play sont supposés acquis.
Ce que vous allez apprendre
Section intitulée « Ce que vous allez apprendre »- Écrire un inventaire dans les deux formats acceptés, et choisir celui qui convient à votre projet.
- Organiser les variables par groupe et par machine, sans les disperser ni les dupliquer.
- Cibler précisément un sous-ensemble de votre parc, d'un seul serveur à une combinaison de groupes.
- Vérifier ce qu'Ansible comprend de votre inventaire, avant de lancer quoi que ce soit dessus.
- Générer l'inventaire automatiquement depuis un hyperviseur, un cloud ou une base de gestion de parc.
Écrire son inventaire
Section intitulée « Écrire son inventaire »Le socle. Ces guides couvrent la description de votre parc et le rangement des variables, qui est le vrai sujet dès que le projet grossit.
Cibler et vérifier
Section intitulée « Cibler et vérifier »Deux réflexes qui évitent les mauvaises surprises : savoir désigner exactement les machines visées, et regarder ce qu'Ansible a compris avant de lui faire modifier quoi que ce soit.
Générer l'inventaire automatiquement
Section intitulée « Générer l'inventaire automatiquement »Au-delà de quelques dizaines de machines, tenir une liste à jour à la main devient illusoire. Ansible sait interroger directement la source qui fait autorité chez vous, hyperviseur, cloud ou base de gestion de parc, et en déduire l'inventaire à chaque exécution.
Vérifier vos acquis
Section intitulée « Vérifier vos acquis »Cette section n'a pas encore sa page de quiz dédiée, mais ses 79 questions existent déjà dans la banque commune.
FAQ : Questions Fréquentes
Section intitulée « FAQ : Questions Fréquentes »group_vars vs host_vars
Les deux dossiers sont chargés automatiquement par Ansible, à côté de l'inventaire :| Dossier | Portée | Usage |
|---|---|---|
group_vars/<groupe>.yml |
Tous les hôtes d'un groupe | Le gros des variables |
group_vars/all.yml |
Tous les hôtes | Valeurs communes |
host_vars/<hote>.yml |
Un seul hôte | Overrides spécifiques |
group_vars/ et réserver host_vars/ aux exceptions. Détails et précédence sur la page group_vars / host_vars.Inventaire dynamique
Plutôt qu'un fichier statique, un inventaire dynamique interroge une source de vérité (hyperviseur, cloud, CMDB) à chaque exécution via un plugin. La configuration tient dans un fichier dont le nom doit respecter le suffixe attendu par le plugin :# production.aws_ec2.yml
plugin: amazon.aws.aws_ec2
regions:
- eu-west-3
Contrairement à une idée répandue, il n'est pas nécessaire d'ajouter le plugin à enable_plugins : le plugin auto, activé par défaut, charge celui que désigne la clé plugin:. En revanche, retirer auto de la liste casse le mécanisme.Le critère de bascule n'est pas un nombre d'hôtes mais la fréquence de changement du parc : dès que des machines apparaissent et disparaissent sans intervention humaine, un fichier statique devient faux entre deux exécutions. Voir la sous-section Inventaires dynamiques.Emplacement de l'inventaire
Ansible lit par défaut/etc/ansible/hosts, mais en pratique on garde un inventaire par projet :# ansible.cfg
[defaults]
inventory = ./inventory/hosts.yml
Ou en ligne de commande avec -i inventory/hosts.yml.Point souvent mal compris : group_vars/ et host_vars/ sont cherchés à deux endroits, à côté du fichier d'inventaire et à côté du playbook. Les deux emplacements sont valides, et à niveau de spécificité égal c'est celui du playbook qui l'emporte. Un group_vars/ posé ailleurs, en revanche, n'est jamais lu et aucun message ne le signale.Attention au diagnostic : ansible-inventory ne voit pas les group_vars/ du playbook et peut donc afficher une valeur différente de celle réellement appliquée. L'option --playbook-dir réaligne les deux. Voir Variables de groupe et d'hôte.INI ou YAML ?
| Format | Quand |
|---|---|
| INI | Très petit lab, 1-2 groupes |
| YAML | Dès deux groupes, production, équipe |
[group:children], [group:vars]) devient illisible au-delà de trois niveaux. YAML avec all.children reste clair et expressif. Démarrer directement en YAML évite la migration. Modèle complet sur Inventaire statique YAML.Valider avec ansible-inventory
Trois commandes à réflexe :# Arborescence groupes -> hotes
ansible-inventory --graph
# Toutes les variables resolues (JSON)
ansible-inventory --list
# Variables d'un hote precis
ansible-inventory --host web1
--graph détecte en 1 seconde les fautes de frappe sur les noms de groupes et les hiérarchies cassées. Détails sur Vérifier un inventaire.