
ansible-navigator est l'outil unique qui remplace ansible-playbook quand on veut exécuter dans un EE. Il offre deux modes : TUI interactif pour le debug riche (drill-down task → host → JSON), et stdout pour la CI/CD (sortie identique à ansible-playbook classique). Cette page passe en revue les 7 sous-commandes essentielles (run, images, inventory, lint, doc, collections, config) avec exemples concrets, puis détaille la navigation clavier TUI et la fonctionnalité replay des artifacts.
À la fin, vous saurez choisir le bon mode selon le contexte et exploiter pleinement les capacités de debug de navigator.
Ce que vous allez apprendre
Section intitulée « Ce que vous allez apprendre »- Différence TUI vs stdout et quand utiliser chacun.
- Les 7 sous-commandes principales d'ansible-navigator.
- Navigation clavier TUI : drill-down, recherche, retour.
- Artifacts JSON :
playbook-artifact.enableetreplay. - Variables d'environnement :
ANSIBLE_NAVIGATOR_*.
Prérequis
Section intitulée « Prérequis »- Avoir terminé Installation et configuration.
creator-ee:latestpull localement.
TUI vs stdout, quand utiliser quoi
Section intitulée « TUI vs stdout, quand utiliser quoi »| Mode | Usage typique | Avantage clé |
|---|---|---|
-m stdout | CI/CD, scripts, redirection logs | Identique à ansible-playbook -v |
| TUI (défaut) | Debug local, formation | Drill-down task → host → JSON |
Règle : mettez mode: stdout dans votre ansible-navigator.yml projet, et passez en TUI explicitement quand vous debuggez un échec :
# Mode CI/CD habituelansible-navigator run site.yml
# Debug d'un échecansible-navigator run site.yml --mode interactiveLes 7 sous-commandes essentielles
Section intitulée « Les 7 sous-commandes essentielles »run, exécuter un playbook
Section intitulée « run, exécuter un playbook »ansible-navigator run site.yml \ -i inventory.yml \ --eei quay.io/ansible/creator-ee:latest \ -m stdoutOptions fréquentes :
-i / --inventory: inventaire (peut être répété).--eei / --execution-environment-image: surcharge l'EE par défaut.-m / --mode:stdoutouinteractive.--pas / --playbook-artifact-save-as: nom du fichier artifact JSON.-e / --extra-vars: variables ad-hoc.--tags / --skip-tags: filtrer les tâches.
images, inspecter un EE
Section intitulée « images, inspecter un EE »ansible-navigator images --eei quay.io/ansible/creator-ee:latestOuvre la TUI avec 8 vues : Image information, Image layers, OS release, System packages, Ansible version, Ansible collections, Python packages, Python version. Indispensable avant de consommer un EE.
inventory, explorer un inventaire
Section intitulée « inventory, explorer un inventaire »ansible-navigator inventory -i inventory.ymlTUI structurée : groupes, hosts, variables. Drill-down sur un host pour voir toutes les variables résolues (group_vars, host_vars, defaults).
lint, ansible-lint dans l'EE
Section intitulée « lint, ansible-lint dans l'EE »ansible-navigator lint site.ymlLance ansible-lint dans l'EE (la version creator-ee embarque ansible-lint). Évite les divergences entre lint local et EE de prod.
doc, documentation d'un module
Section intitulée « doc, documentation d'un module »ansible-navigator doc ansible.builtin.copyTUI avec : Synopsis, paramètres typés, exemples YAML, return values. Doc embarquée dans l'EE, exactement la version qui s'exécutera.
collections, lister les collections
Section intitulée « collections, lister les collections »ansible-navigator collections --eei quay.io/ansible/creator-ee:latestListe structurée des collections + version de chacune. Plus lisible que ansible-galaxy collection list brut.
config, voir la config Ansible effective
Section intitulée « config, voir la config Ansible effective »ansible-navigator config dumpAffiche la configuration Ansible vue par l'EE : defaults.host_key_checking, ssh_connection.pipelining, etc. Différent de votre ansible.cfg local, c'est ce qui compte pour l'exécution.
Navigation TUI, clavier de référence
Section intitulée « Navigation TUI, clavier de référence »Une fois dans la TUI, les raccourcis :
| Touche | Action |
|---|---|
0-9 | Sélectionner l'item numéroté |
↑↓ | Naviguer dans une liste |
↵ (Entrée) | Drill-down (entrer dans l'item) |
Esc | Remonter d'un niveau |
:doc <module> | Doc d'un module à la volée |
:help | Aide contextuelle |
:q ou :quit | Quitter |
/<terme> | Recherche |
Exemple drill-down : depuis run site.yml, vous voyez les plays (numérotés). 0 entre dans le premier play → liste des tasks. 2 entre dans la 3e task → liste des hosts. 0 entre dans le 1er host → JSON brut du résultat.
Artifacts JSON et replay
Section intitulée « Artifacts JSON et replay »Ajoutez à ansible-navigator.yml :
ansible-navigator: playbook-artifact: enable: true save-as: '{playbook_name}-artifact-{ts_utc}.json'À chaque run, navigator écrit un artifact JSON complet (toutes les tasks, tous les hosts, toutes les sorties).
Rejouer :
ansible-navigator replay site-artifact-2026-04-26T18-30-00.jsonOuvre la TUI sans réexécuter, exactement comme si vous étiez en train de regarder le run, mais à partir d'un fichier figé. Permet à un dev de partager un échec à un collègue : « tiens, voilà l'artifact, regarde l'erreur task #14 ».
Variables d'environnement utiles
Section intitulée « Variables d'environnement utiles »| Variable | Effet |
|---|---|
ANSIBLE_NAVIGATOR_EE_IMAGE | Surcharge l'EE par défaut |
ANSIBLE_NAVIGATOR_MODE | stdout ou interactive |
ANSIBLE_NAVIGATOR_CONFIG | Chemin vers un ansible-navigator.yml |
ANSIBLE_NAVIGATOR_LOG_LEVEL | debug / info / warning / error |
Pratique pour la CI/CD : ANSIBLE_NAVIGATOR_MODE=stdout dans le runner force la sortie texte sans toucher au fichier de config.
Cas pratique, debug d'une task qui échoue
Section intitulée « Cas pratique, debug d'une task qui échoue »Scénario : une task ansible.builtin.template échoue sur web1.lab mais pas web2.lab.
-
Lancer en TUI :
Fenêtre de terminal ansible-navigator run site.yml --mode interactive -
Drill-down : vous voyez le PLAY RECAP,
web1.lab : failed=1. Tapez0pour entrer dans les plays,↵sur le play, descendez sur la task qui a[*](status fail). -
Voir le JSON : tapez
↵sur la task → liste des hosts. Tapez0sur web1.lab → JSON brut de l'erreur. -
Comparer :
Esc, sélectionnez web2.lab, comparez les variables résolues. -
Rejouer après fix : modifiez le template,
:q, relancez.
🔍 Observation : ce workflow, voir le JSON brut directement, comparer hosts, est beaucoup plus rapide que ansible-playbook -vvv qui noie l'info utile.
Mettre en pratique
Section intitulée « Mettre en pratique »Ces sous-commandes prennent leur sens quand elles servent un besoin réel : retrouver un module dont on a oublié le nom, puis s'en servir sans changer d'outil. Ce lab vous fait chercher avec ansible-navigator doc le module qui gère les entrées sysctl, l'appliquer pour poser vm.swappiness = 42 de façon persistante et idempotente sur db1.lab, puis valider l'inventaire ciblé avec ansible-navigator inventory --list. La correction interroge l'état de la machine, pas la sortie affichée dans votre terminal.
Contrôle de connaissances
Section intitulée « Contrôle de connaissances »Vérifiez que l'essentiel de ce guide est acquis. Les questions portent uniquement sur ce qui vient d'être expliqué ici.
Contrôle de connaissances
Validez vos connaissances avec ce quiz interactif
Informations
- Le chronomètre démarre au clic sur Démarrer
- Questions à choix multiples, vrai/faux et réponses courtes
- Vous pouvez naviguer entre les questions
- Les résultats détaillés sont affichés à la fin
Lance le quiz et démarre le chronomètre
Vérification
(0/0)Profil de compétences
Quoi faire maintenant
Ressources pour progresser
Des indices pour retenter votre chance ?
Nouveau quiz complet avec des questions aléatoires
Retravailler uniquement les questions ratées
Retour à la liste des certifications
À retenir
Section intitulée « À retenir »-m stdoutpour CI/CD, TUI pour debug local.- 7 sous-commandes :
run,images,inventory,lint,doc,collections,config. - Drill-down TUI : task → host → JSON, parfait pour debug.
- Artifacts JSON + replay : partager un échec sans relancer.
ANSIBLE_NAVIGATOR_MODE=stdoutdans le CI pour forcer la sortie texte.config dumpaffiche la config effective dans l'EE (différente du local).
Pour aller plus loin
Section intitulée « Pour aller plus loin »- Construire un EE custom : Quand l'EE communautaire ne contient pas la collection dont vous avez besoin.
- Exécution en CI/CD : Le mode stdout prend tout son sens dans un pipeline, sur une image construite et signée.
- Debug d'un EE cassé : Lire une image qui démarre mais ne contient pas ce qu'elle devrait.