Objectifs
- Décrire un inventory statique et ses groupes.
- Utiliser children, host variables et group variables.
- Lire les formats INI et YAML.
- Contrôler l’inventory avec ansible-inventory.
Construire un inventory Ansible
L’inventory indique à Ansible quelles machines peuvent être ciblées et comment les regrouper. Un inventory statique est un fichier maintenu avec le projet ; des plugins dynamiques existent, mais cette leçon se concentre sur une base simple et vérifiable.
Utilisez des noms logiques stables et des adresses réservées à la documentation dans les exemples. La variable ansible_user peut désigner un compte d’automatisation, mais les secrets de connexion ne doivent pas être écrits en clair.
Format INI : hôtes, groupes et enfants
Les en-têtes [web] et [db] définissent des groupes. Le suffixe :children compose un groupe à partir d’autres groupes ; :vars porte des variables communes au groupe.
[web]
web01 ansible_host=192.0.2.10 ansible_user=automation
web02 ansible_host=192.0.2.11 ansible_user=automation
[db]
db01 ansible_host=192.0.2.20 ansible_user=automation
[production:children]
web
db
[web:vars]
http_port=80Les adresses 192.0.2.0/24 sont réservées à la documentation. Remplacez-les uniquement dans un environnement autorisé et n’ajoutez aucun mot de passe en clair.
Le même principe en YAML
Le format YAML rend l’imbrication explicite. all contient ici un groupe production qui référence web et db, tandis que les hôtes et variables restent proches de leur groupe.
all:
children:
production:
children:
web:
hosts:
web01:
ansible_host: 192.0.2.10
web02:
ansible_host: 192.0.2.11
vars:
ansible_user: automation
http_port: 80
db:
hosts:
db01:
ansible_host: 192.0.2.20
vars:
ansible_user: automationgroup_vars/
web.yml
host_vars/
web01.ymlValider avant de cibler
Le graphe permet de contrôler rapidement l’appartenance aux groupes. La sortie complète permet d’inspecter la structure et les variables résolues ; traitez-la comme sensible si elle contient des informations internes.
- Choisissez des noms de groupes explicites comme web, db ou production.
- Séparez les inventories par environnement au lieu de mélanger production et test.
- Placez les variables communes dans group_vars et les exceptions dans host_vars.
ansible-inventory -i inventory.ini --graphansible-inventory -i inventory.ini --listErreur fréquente : cibler un groupe mal construit
Mini résumé
- Un inventory statique peut être écrit en INI ou en YAML.
- Les groupes, children, group_vars et host_vars organisent les cibles et variables.
- ansible-inventory --graph et --list révèlent la structure réellement comprise.
- Les identifiants sensibles n’ont pas leur place en clair dans l’inventory.
Outils associés
Construire une commande Ansible
Utilisez Ansible Command Builder pour composer une commande ad-hoc ou de diagnostic et comprendre ses options sans l’exécuter.
Ouvrir l’outilMini quiz
Trois questions pour vérifier les notions essentielles de la leçon.