Aller au contenu principal

ansible-navigator une nouvelle CLI pour ansible

· 3 minutes de lecture
Stéphane ROBERT
Consultant DevOps

Ansible-Navigator est nouvel utilitaire en ligne de commande introduit avec Ansible Automation Platform 2 qui permet d'afficher autrement l'exécution d'un playbook Ansible et d'accéder à beaucoup d'informations.

Ansible est une TUI (Text User Interface) qui affiche toutes les informations dans un dashboard possédant une interface ressemblant à nano (l'éditeur de texte) avec des commandes à la vi (un autre éditeur de texte).

Installation d'Ansible-Navigator

Comme tous les autres produits Ansible, ansible-navigator est écrit en Python, et donc son installation se fait avec pip. On peut donc soit :

  • l'ajouter à votre environnement utilisateur via un simple pip install ansible-navigator
  • l'installer sur votre compte utilisateur pip install ansible-navigator --user

Utilisation d'ansible-navigator

Pour découvrir cet outil, le plus simple est de lancer la commande ansible-navigator sans aucune option.

remarque

Cet utilitaire est incompatible avec les polices nerd fonts

Par naviguer dans l'interface on sait le caractère : suivit de la commande puis entrée.

Par exemple :help

On a toutes les informations pour utiliser ansible-navigator. Esc pour revenir en arrière et sortir. Les alias doc -> d

Essayez tout de suite faite :d package et vous obtiendrez la documentation du module ansible.builtin.package plus synthétique que celle que l'on retrouve sur le site de la documentation ansible.

Ansible-Navigator peut être lancé directement ou via une sous-commande que je vais détailler après.

# pour accéder à toutes les fonctionnalités
ansible-navigator
# ou directment à une fonction, ici config
ansible-navigator config

Les fonctionnalités d'ansible-navigator

Ansible-Navigator permet de :

  • :collection : Permet de parcourir les collections installées dans votre environnement d'exécution. Pour accéder à une des collections : suivi du chiffre devant le nom de la collection. (Ex :10). Il affichera la liste des modules pour lequel vous pouvez demander leur documentation.
  • :config : Affiche tous les paramètres de la configuration actuelle. On peut aussi demander à afficher la documentation d'un des paramètres.
  • :images : Affiches les images Docker d'environnement d'exécution
  • :inventory : Permet de parcourir un ou des inventaires
  • :run : Exécution d'un playbook avec un affichage plus synthétique que celui de la commande ansible-playbook. On peut demander à afficher la sortie classique avec l'option -m sdtout.
  • :replay: On peut parcourir l'exécution d'un run joué précédemment en utilisant un artefact.

Configuration d'ansible-navigator

On peut configurer ansible-navigator au niveau du projet en créant un fichier ansible-navigator.yml dans son répertoire. Il est possible de configurer les environnements d'exécution, les styles de développement et même les détails de l'éditeur de code (on peut par exemple lui indiquer d'utiliser vscode comme éditeur)

---
ansible-navigator:

  logging:
    level: debug

  editor:
    command: code-server {filename}
    console: false

  playbook-artifact:
    enable: True
    replay: artifacts/ansible_artifact.json
    save-as: artifacts/ansible_artifact.jsonl

La documentation complète d'ansible-navigator

Conclusion

À surveiller, je dois approfondir la partie environnements d'exécution car son utilisation peut simplifier la prise en main de projet dans le cadre de travail.