Aller au contenu

Ansible Navigator

Mise à jour :

logo

Alors qu’Ansible a longtemps été apprécié pour sa capacité à automatiser la gestion de configurations, le déploiement d’applications et l’orchestration d’infrastructure, son interface en ligne de commande (CLI) traditionnelle pouvait parfois se révéler limitée pour les utilisateurs cherchant une expérience plus interactive et plus visuelle.

C’est là qu’intervient Ansible Navigator. Conçu pour offrir une interface plus conviviale et plus riche que la simple CLI, Ansible Navigator permet aux utilisateurs de parcourir leurs playbooks, d’exécuter des commandes et d’explorer les résultats d’exécution de manière plus intuitive. Il s’intègre parfaitement dans l’écosystème Ansible et s’appuie sur des environnements d’exécution containerisés pour assurer une cohérence et une portabilité maximales entre les différentes machines et environnements.

Que vous soyez un débutant cherchant à comprendre les bases d’Ansible ou un expert désirant affiner et optimiser vos workflows d’automatisation, Ansible Navigator vous fournit les outils nécessaires pour naviguer plus facilement dans la complexité de vos tâches d’automatisation.

Fonctionnalités clés d’Ansible Navigator

Ansible Navigator est conçu pour enrichir l’expérience utilisateur avec Ansible en offrant une interface plus interactive et des fonctionnalités avancées qui facilitent la gestion et l’exécution des tâches d’automatisation. Voici un aperçu des principales fonctionnalités qu’il propose :

Exécution de playbooks et commandes

Ansible Navigator vous permet d’exécuter des playbooks et des commandes Ansible tout en suivant leur progression en temps réel. Les résultats sont présentés de manière organisée, avec la possibilité de plonger dans les détails des tâches et de diagnostiquer rapidement les erreurs.

Gestion des environnements d’exécution

Grâce à la gestion des environnements d’exécution (execution environments), Ansible Navigator vous permet de spécifier des environnements containerisés pour exécuter vos playbooks. Cela garantit que toutes les dépendances nécessaires sont disponibles et que les exécutions sont cohérentes entre différents environnements.

Revue des inventaires et modules

Ansible Navigator offre une fonctionnalité de revue des inventaires qui permet d’explorer et de gérer vos inventaires Ansible de manière plus intuitive. Vous pouvez également consulter la documentation des modules Ansible directement depuis l’interface, ce qui facilite l’apprentissage et l’utilisation des modules.

Historique des exécutions

Une autre fonctionnalité clé est la possibilité de consulter l’historique des exécutions de vos playbooks et commandes. Vous pouvez revoir les exécutions passées, examiner les résultats et les comparer avec les exécutions actuelles pour identifier les différences ou les améliorations.

Mode débogage

Le mode débogage d’Ansible Navigator est extrêmement utile pour diagnostiquer les problèmes lors de l’exécution des playbooks. Il vous permet de voir en détail ce qui se passe en coulisses, d’examiner les valeurs des variables et d’identifier rapidement les points de blocage.

Personnalisation de l’interface

L’interface d’Ansible Navigator est hautement personnalisable. Vous pouvez ajuster les vues, configurer des raccourcis et modifier le comportement par défaut en fonction de vos préférences personnelles ou des besoins spécifiques de vos projets.

Documentation intégrée

Enfin, Ansible Navigator offre un accès facile à la documentation intégrée, que ce soit pour les commandes Ansible, les modules ou les configurations d’environnement. Cela vous permet de rester productif sans avoir à quitter l’outil pour consulter des ressources externes.

Ces fonctionnalités font d’Ansible Navigator un outil puissant pour tout utilisateur d’Ansible, offrant à la fois flexibilité et contrôle pour gérer vos automatisations de manière plus efficace et intuitive.

Installation d’Ansible Navigator

Pour installer Ansible Navigator, je recommande d’utiliser pipx plutôt que pip. Pipx permet d’installer des applications Python dans des environnements virtuels isolés, ce qui évite les conflits entre les différentes versions de paquets que vous pourriez avoir sur votre système. Cela est particulièrement utile pour des outils en ligne de commande comme Ansible Navigator, car cela garantit que ses dépendances n’interfèrent pas avec d’autres projets Python.

  1. Un moteur de conteneur : Pour utiliser Ansible Navigator, Docker ou Podman doit être installé. Ces outils de conteneurisation permettent de gérer les environnements nécessaires pour exécuter vos playbooks de manière cohérente et isolée.
  • Docker : Si Docker n’est pas installé, vous pouvez le faire en suivant les instructions de ma documentation.
  • Podman : Podman est une alternative à Docker et peut être utilisé de manière similaire pour gérer vos conteneurs.
  1. Python3 : Assurez-vous que Python 3.8+ est installé en vérifiant avec la commande :

    Terminal window
    python3 --version
    Python 3.11.9

    Installez pip si ce n’est pas déjà fait :

    Terminal window
    python3 -m ensurepip --upgrade
    pip3 install pipx
  2. Installation d’Ansible Navigator :

    Installez Ansible Navigator avec la commande suivante :

    Terminal window
    pipx install ansible-navigator
  3. Vérification de l’installation :

    Vérifiez que l’installation est correcte en exécutant :

    Terminal window
    ansible-navigator --version
    ansible-navigator 24.9.0

Ces étapes vous permettront d’installer et de configurer Ansible Navigator afin de commencer à l’utiliser pour gérer vos automatisations Ansible.

Premiers pas avec Ansible Navigator

Après avoir installé et configuré Ansible Navigator, il est temps de se familiariser avec cet outil pour tirer pleinement parti de ses fonctionnalités. Dans cette section, je vais vous guider à travers les premières étapes pour démarrer avec Ansible Navigator, en vous montrant comment l’utiliser pour exécuter des commandes, naviguer dans les playbooks et explorer les résultats.

Pour démarrer Ansible Navigator, il suffit de taper la commande suivante dans votre terminal :

Terminal window
ansible-navigator

Cette commande ouvre une interface interactive dans le terminal, où vous pouvez explorer les playbooks, les inventaires et les résultats des commandes.

ansible navigator

Ansible Navigator propose une interface utilisateur basée sur du texte qui améliore l’interaction avec les environnements d’exécution, les collections, les playbooks et les inventaires. Cette interface est compatible avec les IDE, comme Visual Studio Code.

Mode d’interface utilisateur textuel

Le mode d’interface utilisateur textuel d’Ansible Navigator offre plusieurs options utiles :

  • Commandes colon : Vous pouvez accéder à toutes les commandes d’Ansible Navigator en les précédant d’un deux-points (colon), par exemple :run pour exécuter un playbook, ou :collections pour explorer les collections disponibles.

  • Navigation dans l’interface : L’interface vous montre comment faire défiler l’écran vers le haut ou le bas, revenir à l’écran précédent, ou accéder à l’aide avec :help. Par exemple, pour accéder directement à une ligne spécifique dans un fichier de sortie, vous pouvez utiliser :12 pour aller à la ligne 12.

  • Sortie colorée : Ansible Navigator utilise des couleurs pour rendre la lecture des sorties plus intuitive, par exemple, les modules dépréciés sont affichés en rouge.

  • Pagination et défilement : Vous pouvez naviguer dans les résultats grâce aux options de pagination et de défilement affichées en bas de l’écran.

Une fois que vous avez lancé Ansible Navigator, vous ne pouvez pas changer de mode d’affichage, vous restez donc en mode d’interface utilisateur textuel pour toute la session.

Commandes de l’interface utilisateur textuelle

Les commandes d’Ansible Navigator permettent d’exécuter les commandes CLI Ansible de manière familière, mais avec des options supplémentaires pour l’exploration et la visualisation. Pour cela il suffit de faire suivre l’option à la commande ansible-navigator.

Voici quelques exemples de commandes :

  • collections : Explorer les collections disponibles :

    Terminal window
    ansible-navigator collections

    ansible collections

  • config : Explorer la configuration actuelle d’Ansible :

    Terminal window
    ansible-navigator config
  • inventory : Explorer un inventaire Ansible :

    Terminal window
    ansible-navigator inventory

Voici un tableau montrant l’équivalence des commandes Ansible classique avec celle d’Ansible Navigator :

Commandes Ansible navigatorCommandes Ansible Classique
ansible-navigator collectionsansible-galaxy collection
ansible-navigator configansible-config
ansible-navigator docansible-doc
ansible-navigator inventoryansible-inventory
ansible-navigator runansible-playbook

Utilisation des environnements d’exécution

Les commandes d’Ansible Navigator sont exécutées dans un environnement d’exécution containerisé. Ce conteneur inclut les dépendances nécessaires pour Ansible, telles que les collections et les plugins. Cependant, il est important de noter que cet environnement ne contient pas forcément vos propres contenus Ansible. Pour garantir que vos modules et collections personnalisés sont disponibles, vous devez créer un environnement d’exécution personnalisé.

Personnalisation de l’environnement d’exécution

Si votre playbook utilise des collections, plugins ou modules qui ne sont pas inclus dans l’environnement d’exécution par défaut, vous devez créer un environnement personnalisé. Cela se fait en construisant un container spécifique avec les dépendances requises. Vous pouvez ensuite spécifier cet environnement lors de l’exécution de votre playbook avec l’option --eei (Execution Environment Image).

Exemple de commande pour exécuter un playbook avec un environnement personnalisé :

Terminal window
ansible-navigator run nom_du_playbook.yml --eei mon_image_personnalisee:derniere_version

Configuration d’Ansible Navigator

Ansible Navigator utilise un fichier de configuration appelé ansible-navigator.yml pour personnaliser son comportement. Ce fichier YAML vous permet de définir divers paramètres qui modifient la manière dont Ansible Navigator exécute les playbooks, gère les environnements d’exécution et affiche les résultats.

Structure du fichier ansible-navigator.yml

Le fichier ansible-navigator.yml est structuré en sections, chacune correspondant à différents aspects de la configuration d’Ansible Navigator.

Exemple de configuration :

---
ansible-navigator:
enable-prompts: True
execution-environment:
enabled: True
image: "localhost:5000/lab01"
volume-mounts:
- src: "/home/outscale/.osc"
dest: "/vscode/.osc"
options: "Z"
- src: "/home/outscale/.ssh"
dest: "/vscode/.ssh"
options: "Z"
logging:
level: debug
append: False
playbook-artifact:
enable: True
replay: /.artifacts
save-as: "./artifacts/{playbook_dir}/{playbook_name}-artifact-{time_stamp}.json"
  1. ansible-navigator
    • enable-prompts : Active les invites de commande interactives dans Ansible Navigator.
  2. execution-environment
    • enabled : Active l’utilisation des environnements d’exécution containerisés.
    • image : Spécifie l’image de l’environnement d’exécution (ici, localhost:5000/lab01).
    • volume-mounts : Monte des répertoires locaux dans le conteneur, avec src pour le chemin source, dest pour la destination dans le conteneur, et options pour les options de montage (ici, Z pour le mode SELinux).
  3. logging
    • level : Définit le niveau de journalisation à debug pour des informations détaillées.
    • append : Indique si les journaux doivent être ajoutés à un fichier existant (False signifie qu’ils ne le sont pas).
  4. playbook-artifact
    • enable : Active la génération d’artefacts.
    • replay : Spécifie le chemin où les artefacts seront rejoués.
    • save-as : Définit le modèle de nom de fichier pour les artefacts générés, utilisant le répertoire du playbook, le nom du playbook et un horodatage.

Ce fichier permet de contrôler l’exécution des playbooks, la gestion des logs, et la gestion des artefacts dans Ansible Navigator.

Validation et test de la configuration

Après avoir configuré le fichier ansible-navigator.yml, il est conseillé de tester votre configuration pour vous assurer qu’elle fonctionne comme prévu. Vous pouvez le faire en exécutant Ansible Navigator avec la commande suivante :

Terminal window
ansible-navigator config --full

Cette commande affiche la configuration complète et valide les paramètres, vous permettant de vérifier que tout est correctement configuré avant d’exécuter vos playbooks.

Le fichier ansible-navigator.yml est donc un outil puissant pour adapter Ansible Navigator à vos besoins spécifiques, en vous offrant un contrôle total sur l’exécution des playbooks et l’environnement dans lequel ils sont exécutés.

Exécution de playbooks avec Ansible Navigator

Ansible Navigator facilite l’exécution de playbooks en offrant une interface interactive qui améliore la visibilité sur le déroulement des tâches et simplifie le débogage. Dans cette section, je vais vous guider à travers les étapes d’exécution d’un playbook avec Ansible Navigator, tout en rappelant l’importance des environnements d’exécution.

Lancer un playbook

Pour exécuter un playbook avec Ansible Navigator, utilisez la commande suivante :

Terminal window
ansible-navigator run nom_du_playbook.yml

Cette commande exécute le playbook spécifié tout en affichant en temps réel les résultats des tâches effectuées. L’interface textuelle permet de naviguer facilement à travers les résultats pour diagnostiquer les erreurs et vérifier les succès.

Pendant l’exécution, Ansible Navigator affiche les résultats de chaque tâche avec des codes couleur pour identifier rapidement les succès, les échecs et les avertissements. Vous pouvez utiliser les commandes colon pour naviguer dans les résultats et explorer les détails spécifiques, par exemple :12 pour aller directement à la ligne 12 des résultats.

Gestion des erreurs et du débogage

En cas d’échec d’une tâche, Ansible Navigator offre des fonctionnalités de débogage avancées qui vous permettent de voir en détail les variables utilisées, les sorties des modules et les erreurs rencontrées. Vous pouvez activer des options supplémentaires pour obtenir plus d’informations sur l’origine des problèmes.

Génération des artefacts

Pour générer des artefacts lors de l’exécution d’un playbook avec Ansible Navigator, utilisez l’option --save-artefacts dans votre commande. Les artefacts sont des enregistrements détaillés de l’exécution, y compris les résultats de chaque tâche, les erreurs et les variables utilisées.

Voici un exemple de commande pour générer un artefact :

Terminal window
ansible-navigator run mon_playbook.yml --save-artefacts

L’artefact sera enregistré sous forme de fichier JSON dans le répertoire courant ou un emplacement spécifié. Vous pourrez ensuite utiliser la commande ansible-navigator replay pour analyser l’exécution passée.

Revue des artefacts après l’exécution des playbooks

Après l’exécution d’un playbook, Ansible Navigator permet d’examiner les artefacts générés, qui sont des enregistrements détaillés des exécutions. Ces artefacts comprennent des informations importantes sur chaque tâche exécutée, les résultats, les erreurs éventuelles et les variables utilisées.

Vous pouvez accéder aux artefacts en utilisant la commande suivante :

Terminal window
ansible-navigator replay dossier/nom_de_l_artefact.json

Cette commande ouvre une interface où vous pouvez parcourir les résultats détaillés de chaque exécution. Cela est particulièrement utile pour analyser des exécutions passées et identifier des problèmes ou des points d’amélioration.

Dans l’interface d’examen des artefacts, vous pouvez utiliser des commandes colon pour naviguer vers des sections spécifiques, telles que :tasks pour examiner les tâches, ou :vars pour explorer les variables utilisées. Les résultats sont présentés de manière structurée, facilitant l’analyse et le diagnostic.

Utilisation des artefacts pour le débogage

Les artefacts sont essentiels pour le débogage des playbooks, car ils capturent l’intégralité du contexte d’exécution. Vous pouvez identifier les erreurs exactes qui se sont produites et comprendre pourquoi certaines tâches ont échoué. Cela vous permet d’affiner vos playbooks et d’améliorer vos processus d’automatisation.

L’utilisation des artefacts avec Ansible Navigator offre une vue approfondie sur chaque exécution, vous aidant à garantir que vos automatisations fonctionnent comme prévu et à résoudre les problèmes plus rapidement.

Conclusion

Ansible Navigator est un outil puissant qui enrichit l’expérience utilisateur en automatisation avec Ansible, en offrant une interface interactive et des fonctionnalités avancées pour gérer les environnements d’exécution, les playbooks, et l’analyse des artefacts. En maîtrisant sa configuration et ses options, vous pouvez adapter cet outil à vos besoins spécifiques, optimisant ainsi vos workflows d’automatisation. En utilisant Ansible Navigator, vous bénéficierez d’un contrôle accru sur vos opérations, vous aidant à assurer la fiabilité et l’efficacité de vos déploiements automatisés.