Aller au contenu
Infrastructure as Code medium

Ansible Navigator : simplifiez l’automatisation

16 min de lecture

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.

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 :

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.

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.

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.

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.

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.

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.

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.

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 :

    Fenêtre de terminal
    python3 --version
    Python 3.11.9

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

    Fenêtre de terminal
    python3 -m ensurepip --upgrade
    pip3 install pipx
  2. Installation d’Ansible Navigator :

    Installez Ansible Navigator avec la commande suivante :

    Fenêtre de terminal
    pipx install ansible-navigator
  3. Vérification de l’installation :

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

    Fenêtre de terminal
    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.

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 :

Fenêtre de terminal
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.

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.

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 :

    Fenêtre de terminal
    ansible-navigator collections

    ansible collections

  • config : Explorer la configuration actuelle d’Ansible :

    Fenêtre de terminal
    ansible-navigator config
  • inventory : Explorer un inventaire Ansible :

    Fenêtre de terminal
    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

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

Section intitulée « 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é :

Fenêtre de terminal
ansible-navigator run nom_du_playbook.yml --eei mon_image_personnalisee:derniere_version

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.

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.

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 :

Fenêtre de terminal
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.

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.

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

Fenêtre de terminal
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.

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.

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 :

Fenêtre de terminal
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

Section intitulé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 :

Fenêtre de terminal
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.

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.

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.