Einführung
Aktuelle Workflows im Stil der EX294-Prüfung beinhalten ansible-navigator, da dieses Tool Automatisierungen mit einer konsistenten Schnittstelle und – sofern verfügbar – mit Execution Environments ausführen kann. In dieser LabEx RHEL 10 VM ist das Tool bereits vorinstalliert. Dieses Lab verwendet den lokalen Ausführungsmodus, um einen stabilen und schnellen Workflow zu gewährleisten.
In diesem Lab erstellen Sie eine ansible-navigator.yml, konfigurieren den stdout-Modus, deaktivieren die Execution Environments für diesen lokalen VM-Workflow und führen ein Playbook mit navigator aus.
Ein kleines Navigator-Projekt erstellen
In diesem Schritt erstellen Sie die Projektstruktur, das Inventory und die Ansible-Standardeinstellungen, die für navigator erforderlich sind. Navigator liest viele der gleichen Projektdateien wie ansible-playbook.
Erstellen Sie die Verzeichnisse und wechseln Sie in das Projektverzeichnis.
cd /home/labex/project
mkdir -p rhce-ansible/{inventory,playbooks}
cd rhce-ansible
Erstellen Sie das Inventory.
cat > inventory/hosts <<'EOF'
[control]
control ansible_connection=local
EOF
Dieses Inventory verwendet einen lokalen Host-Alias, damit sich das Lab auf das Verhalten von navigator konzentrieren kann, anstatt auf SSH. Der Alias ist dennoch wichtig: Navigator übergibt das Playbook an Ansible, und Ansible löst hosts: control weiterhin über das Inventory auf.
Erstellen Sie die ansible.cfg, damit sowohl navigator als auch Ansible dasselbe Inventory verwenden.
cat > ansible.cfg <<'EOF'
[defaults]
inventory = ./inventory/hosts
retry_files_enabled = False
interpreter_python = auto_silent
EOF
Wenn das inventory in der ansible.cfg definiert ist, benötigen spätere ansible-navigator run-Befehle keine explizite -i-Option mehr. Dies ist die erste Verbindung zwischen dem navigator-Workflow und den Standardeinstellungen des Ansible-Projekts.
Verfügbarkeit von Navigator prüfen
In diesem Schritt bestätigen Sie, dass ansible-navigator installiert ist, und lassen sich die Version anzeigen. Das Überprüfen des Tools vor dem Schreiben der Konfiguration erleichtert die Fehlersuche.
Bevor Sie die Befehle in diesem Schritt ausführen, kehren Sie in das Projektverzeichnis zurück, damit sich relative Pfade auf das Ansible-Projekt beziehen.
cd /home/labex/project/rhce-ansible
Führen Sie den Befehl zur Versionsabfrage aus.
ansible-navigator --version
Die Ausgabe sollte eine Versionsnummer für ansible-navigator anzeigen.
Wenn dieser Befehl funktioniert, wissen Sie, dass das Tool selbst installiert ist, bevor Sie mit der Konfiguration beginnen. Diese Trennung ist nützlich: Ein fehlendes Tool und eine fehlerhafte ansible-navigator.yml führen zu sehr unterschiedlichen Problemen.
Fragen Sie navigator nach Hilfe zum run-Unterbefehl.
ansible-navigator run --help | sed -n '1,12p'
Die Hilfeausgabe bestätigt den Namen des Unterbefehls und zeigt, dass navigator einen Pfad zu einem Playbook erwartet. Sie müssen nicht jede Option auswendig lernen; das Ziel ist es zu wissen, wie man das installierte Tool um Hilfe bittet.
ansible-navigator.yml schreiben
In diesem Schritt erstellen Sie die Konfiguration für navigator. Die Einstellung mode: stdout sorgt dafür, dass navigator die normale Terminalausgabe anzeigt, was ideal für geführte Labs ist. Die Einstellung execution-environment.enabled: false sorgt dafür, dass die Ausführung lokal auf dieser RHEL 10 VM bleibt.
Bevor Sie die Befehle in diesem Schritt ausführen, kehren Sie in das Projektverzeichnis zurück, damit sich relative Pfade auf das Ansible-Projekt beziehen.
cd /home/labex/project/rhce-ansible
Erstellen Sie die ansible-navigator.yml.
cat > ansible-navigator.yml <<'EOF'
---
ansible-navigator:
mode: stdout
execution-environment:
enabled: false
playbook-artifact:
enable: false
EOF
Drei Einstellungen sind für dieses Lab wichtig: mode: stdout behält die Ausgabe im Terminal bei, execution-environment.enabled: false weist navigator an, mit der lokalen Ansible-Installation zu arbeiten, und die Deaktivierung von playbook-artifact verhindert die Erstellung zusätzlicher Ergebnisdateien, die vom Haupt-Workflow ablenken würden.
Lassen Sie sich die Datei anzeigen, um die Einrückung zu überprüfen. Die YAML-Einrückung ist Teil der Syntax.
sed -n '1,20p' ansible-navigator.yml
Überprüfen Sie, ob mode, execution-environment und playbook-artifact unter ansible-navigator eingerückt sind. Wenn einer dieser Schlüssel in der falschen Spalte beginnt, interpretiert YAML möglicherweise eine andere Struktur als beabsichtigt.
Ein Navigator-Test-Playbook erstellen
In diesem Schritt schreiben Sie ein kurzes Playbook, das von navigator ausgeführt werden soll. Ein Playbook ist eine YAML-Liste von Plays. Jedes Play benennt Ziel-Hosts und Aufgaben (Tasks).
Bevor Sie die Befehle in diesem Schritt ausführen, kehren Sie in das Projektverzeichnis zurück, damit sich relative Pfade auf das Ansible-Projekt beziehen.
cd /home/labex/project/rhce-ansible
Erstellen Sie 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
Das Playbook schreibt eine Datei in das Projektverzeichnis, damit Sie nach der Ausführung einen sichtbaren Nachweis haben. Das copy-Modul ist idempotent: Es ändert die Datei nur, wenn sich der Inhalt oder der Modus vom gewünschten Zustand unterscheidet.
Verwenden Sie ansible-playbook --syntax-check, bevor Sie es ausführen. Syntaxprüfungen erkennen Fehler in der YAML-Struktur oder im Playbook, ohne den Host zu verändern.
ansible-playbook playbooks/navigator-check.yml --syntax-check
Die Syntaxprüfung sollte eine playbook:-Zeile ausgeben. Sie führt keine Aufgaben aus, bestätigt aber, dass Ansible das Playbook parsen kann, bevor navigator es ausführt.
Das Playbook mit Navigator ausführen
In diesem Schritt führen Sie das Playbook über navigator aus. Der run-Unterbefehl führt ein Playbook aus, und die Projektkonfiguration sorgt dafür, dass die Ausgabe in diesem Terminal lesbar ist.
Bevor Sie die Befehle in diesem Schritt ausführen, kehren Sie in das Projektverzeichnis zurück, damit sich relative Pfade auf das Ansible-Projekt beziehen.
cd /home/labex/project/rhce-ansible
Führen Sie das Playbook aus.
ansible-navigator run playbooks/navigator-check.yml
Eine erfolgreiche Zusammenfassung sollte failed=0 anzeigen. Überprüfen Sie, ob die Nachweisdatei erstellt wurde.
Da mode: stdout konfiguriert ist, sollte die Ausgabe ähnlich wie bei einem normalen ansible-playbook-Durchlauf aussehen. Lesen Sie zuerst die Zusammenfassung und überprüfen Sie dann die Nachweisdatei, um das gemeldete Ergebnis der Aufgabe mit der tatsächlichen Datei auf der Festplatte zu verknüpfen.
cat navigator-proof.txt
Zusammenfassung
Sie haben ansible-navigator für einen lokalen LabEx RHEL 10-Workflow konfiguriert, ein gültiges Playbook geschrieben und es über navigator ausgeführt. Dies bietet Ihnen ein reproduzierbares Ausführungsmodell für spätere RHCE Ansible-Labs.


