ansible-navigator und Execution Environments konfigurieren

AnsibleBeginner
Jetzt üben

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.