Introduction
Les flux de travail actuels de type EX294 incluent ansible-navigator car il permet d'exécuter l'automatisation avec une interface cohérente et, lorsqu'ils sont disponibles, des environnements d'exécution. Dans cette machine virtuelle LabEx RHEL 10, l'outil est disponible et ce laboratoire utilise le mode d'exécution local pour garantir un flux de travail stable et rapide.
Dans ce laboratoire, vous allez créer le fichier ansible-navigator.yml, configurer le mode stdout, désactiver les environnements d'exécution pour ce flux de travail local sur la machine virtuelle, et exécuter un playbook avec navigator.
Construire un petit projet Navigator
Dans cette étape, vous allez créer la structure du projet, l'inventaire et les paramètres par défaut d'Ansible nécessaires à navigator. Navigator lit bon nombre des mêmes fichiers de projet que ansible-playbook.
Créez les répertoires et accédez au projet.
cd /home/labex/project
mkdir -p rhce-ansible/{inventory,playbooks}
cd rhce-ansible
Créez l'inventaire.
cat > inventory/hosts <<'EOF'
[control]
control ansible_connection=local
EOF
Cet inventaire utilise un alias d'hôte local afin que le laboratoire puisse se concentrer sur le comportement de navigator plutôt que sur SSH. L'alias reste important : navigator transmet le playbook à Ansible, et Ansible résout toujours hosts: control via l'inventaire.
Créez ansible.cfg afin que navigator et Ansible utilisent le même inventaire.
cat > ansible.cfg <<'EOF'
[defaults]
inventory = ./inventory/hosts
retry_files_enabled = False
interpreter_python = auto_silent
EOF
Conserver inventory dans ansible.cfg signifie que les commandes ansible-navigator run ultérieures n'auront pas besoin d'une option -i explicite. Il s'agit du premier lien entre le flux de travail de navigator et les paramètres par défaut habituels d'un projet Ansible.
Vérifier la disponibilité de Navigator
Dans cette étape, vous allez confirmer que ansible-navigator est installé et vérifier sa version. Vérifier l'outil avant d'écrire la configuration permet de mieux comprendre les éventuelles erreurs.
Avant d'exécuter les commandes de cette étape, retournez dans le répertoire du projet afin que les chemins relatifs pointent vers le projet Ansible.
cd /home/labex/project/rhce-ansible
Exécutez la commande de version.
ansible-navigator --version
La sortie doit afficher un numéro de version pour ansible-navigator.
Si cette commande fonctionne, vous savez que l'outil lui-même est installé avant de commencer à déboguer la configuration. Cette séparation est utile : un outil manquant et un fichier ansible-navigator.yml mal configuré produisent des problèmes très différents.
Demandez de l'aide à navigator sur la sous-commande run.
ansible-navigator run --help | sed -n '1,12p'
La sortie d'aide confirme le nom de la sous-commande et montre que navigator attend un chemin vers un playbook. Vous n'avez pas besoin de mémoriser chaque option ici ; l'objectif est de savoir comment demander de l'aide à l'outil installé.
Écrire ansible-navigator.yml
Dans cette étape, vous allez créer la configuration de navigator. Le paramètre mode: stdout permet à navigator d'afficher une sortie de terminal classique, ce qui est idéal pour les laboratoires guidés. Le paramètre execution-environment.enabled: false permet de maintenir l'exécution locale sur cette machine virtuelle RHEL 10.
Avant d'exécuter les commandes de cette étape, retournez dans le répertoire du projet afin que les chemins relatifs pointent vers le projet Ansible.
cd /home/labex/project/rhce-ansible
Créez ansible-navigator.yml.
cat > ansible-navigator.yml <<'EOF'
---
ansible-navigator:
mode: stdout
execution-environment:
enabled: false
playbook-artifact:
enable: false
EOF
Trois paramètres sont importants pour ce laboratoire. mode: stdout maintient la sortie dans le terminal, execution-environment.enabled: false indique à navigator d'exécuter avec l'installation locale d'Ansible, et la désactivation de playbook-artifact évite de générer des fichiers de résultats supplémentaires qui pourraient distraire du flux de travail principal.
Affichez le fichier pour vérifier l'indentation. L'indentation YAML fait partie intégrante de la syntaxe.
sed -n '1,20p' ansible-navigator.yml
Vérifiez que mode, execution-environment et playbook-artifact sont imbriqués sous ansible-navigator. Si l'une de ces clés commence dans la mauvaise colonne, YAML pourrait interpréter une structure différente de celle prévue.
Créer un playbook de test pour Navigator
Dans cette étape, vous allez écrire un court playbook que navigator pourra exécuter. Un playbook est une liste YAML de plays. Chaque play nomme les hôtes cibles et les tâches.
Avant d'exécuter les commandes de cette étape, retournez dans le répertoire du projet afin que les chemins relatifs pointent vers le projet Ansible.
cd /home/labex/project/rhce-ansible
Créez playbooks/navigator-check.yml.
cat > playbooks/navigator-check.yml <<'EOF'
---
- name: Check navigator execution
hosts: control
gather_facts: false
tasks:
- name: Write navigator proof file
ansible.builtin.copy:
dest: /home/labex/project/rhce-ansible/navigator-proof.txt
content: navigator ran this playbook
mode: '0644'
EOF
Le playbook écrit un fichier dans le répertoire du projet afin que vous ayez une preuve visible après l'exécution. Le module copy est idempotent : il ne modifie le fichier que si le contenu ou le mode est différent de l'état demandé.
Utilisez ansible-playbook --syntax-check avant de l'exécuter. Les vérifications de syntaxe permettent de détecter les erreurs de structure YAML et de playbook sans modifier l'hôte.
ansible-playbook playbooks/navigator-check.yml --syntax-check
La vérification de syntaxe doit afficher une ligne playbook:. Elle n'exécute pas les tâches, mais confirme qu'Ansible peut analyser le playbook avant que navigator ne l'exécute.
Exécuter le playbook avec Navigator
Dans cette étape, vous allez exécuter le playbook via navigator. La sous-commande run exécute un playbook, et la configuration du projet rend la sortie lisible dans ce terminal.
Avant d'exécuter les commandes de cette étape, retournez dans le répertoire du projet afin que les chemins relatifs pointent vers le projet Ansible.
cd /home/labex/project/rhce-ansible
Exécutez le playbook.
ansible-navigator run playbooks/navigator-check.yml
Un récapitulatif réussi devrait afficher failed=0. Confirmez que le fichier de preuve a été créé.
Comme mode: stdout est configuré, la sortie devrait ressembler à une exécution normale de ansible-playbook. Lisez d'abord le récapitulatif, puis inspectez le fichier de preuve pour faire le lien entre le résultat de la tâche rapporté et le fichier réel sur le disque.
cat navigator-proof.txt
Résumé
Vous avez configuré ansible-navigator pour un flux de travail local LabEx RHEL 10, écrit un playbook valide et l'avez exécuté via navigator. Cela vous donne un modèle d'exécution reproductible pour les futurs laboratoires RHCE Ansible.


