Aller au contenu
English
Infrastructure as Code medium

ansible-navigator : modes interactif TUI et stdout, sous-commandes essentielles

70 min de lecture

Logo Ansible

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.

  • 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.enable et replay.
  • Variables d'environnement : ANSIBLE_NAVIGATOR_*.
ModeUsage typiqueAvantage clé
-m stdoutCI/CD, scripts, redirection logsIdentique à ansible-playbook -v
TUI (défaut)Debug local, formationDrill-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 :

Fenêtre de terminal
# Mode CI/CD habituel
ansible-navigator run site.yml
# Debug d'un échec
ansible-navigator run site.yml --mode interactive
Fenêtre de terminal
ansible-navigator run site.yml \
-i inventory.yml \
--eei quay.io/ansible/creator-ee:latest \
-m stdout

Options fréquentes :

  • -i / --inventory : inventaire (peut être répété).
  • --eei / --execution-environment-image : surcharge l'EE par défaut.
  • -m / --mode : stdout ou interactive.
  • --pas / --playbook-artifact-save-as : nom du fichier artifact JSON.
  • -e / --extra-vars : variables ad-hoc.
  • --tags / --skip-tags : filtrer les tâches.
Fenêtre de terminal
ansible-navigator images --eei quay.io/ansible/creator-ee:latest

Ouvre 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.

Fenêtre de terminal
ansible-navigator inventory -i inventory.yml

TUI structurée : groupes, hosts, variables. Drill-down sur un host pour voir toutes les variables résolues (group_vars, host_vars, defaults).

Fenêtre de terminal
ansible-navigator lint site.yml

Lance ansible-lint dans l'EE (la version creator-ee embarque ansible-lint). Évite les divergences entre lint local et EE de prod.

Fenêtre de terminal
ansible-navigator doc ansible.builtin.copy

TUI avec : Synopsis, paramètres typés, exemples YAML, return values. Doc embarquée dans l'EE, exactement la version qui s'exécutera.

Fenêtre de terminal
ansible-navigator collections --eei quay.io/ansible/creator-ee:latest

Liste structurée des collections + version de chacune. Plus lisible que ansible-galaxy collection list brut.

Fenêtre de terminal
ansible-navigator config dump

Affiche 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.

Une fois dans la TUI, les raccourcis :

ToucheAction
0-9Sélectionner l'item numéroté
↑↓Naviguer dans une liste
(Entrée)Drill-down (entrer dans l'item)
EscRemonter d'un niveau
:doc <module>Doc d'un module à la volée
:helpAide contextuelle
:q ou :quitQuitter
/<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.

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 :

Fenêtre de terminal
ansible-navigator replay site-artifact-2026-04-26T18-30-00.json

Ouvre 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 ».

VariableEffet
ANSIBLE_NAVIGATOR_EE_IMAGESurcharge l'EE par défaut
ANSIBLE_NAVIGATOR_MODEstdout ou interactive
ANSIBLE_NAVIGATOR_CONFIGChemin vers un ansible-navigator.yml
ANSIBLE_NAVIGATOR_LOG_LEVELdebug / 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.

Scénario : une task ansible.builtin.template échoue sur web1.lab mais pas web2.lab.

  1. Lancer en TUI :

    Fenêtre de terminal
    ansible-navigator run site.yml --mode interactive
  2. Drill-down : vous voyez le PLAY RECAP, web1.lab : failed=1. Tapez 0 pour entrer dans les plays, sur le play, descendez sur la task qui a [*] (status fail).

  3. Voir le JSON : tapez sur la task → liste des hosts. Tapez 0 sur web1.lab → JSON brut de l'erreur.

  4. Comparer : Esc, sélectionnez web2.lab, comparez les variables résolues.

  5. 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.

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.

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

6 questions
6 min.
70% requis

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

  • -m stdout pour 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=stdout dans le CI pour forcer la sortie texte.
  • config dump affiche la config effective dans l'EE (différente du local).

Ce site vous est utile ?

Sachez que moins de 1% des lecteurs soutiennent ce site.

Je maintiens ce site gratuitement, sans publicité, sans profilage et sans compte à créer. Un soutien, même symbolique, m'aide à couvrir l'hébergement et à garder ces ressources gratuites. Merci pour votre appui.

Le formulaire ne s'affiche pas ? Ouvrir Ko-fi dans un onglet.

Abonnez-vous et suivez mon actualité DevSecOps sur LinkedIn