Configurer ansible-navigator et les environnements d'exécution

AnsibleBeginner
Pratiquer maintenant

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.