Einführung
In diesem Lab lernen Sie, wie Sie Ansible Core auf einem Red Hat Enterprise Linux (RHEL) System installieren. Ansible ist ein leistungsstarkes Automatisierungswerkzeug, mit dem Sie Systeme verwalten und konfigurieren, Anwendungen bereitstellen und komplexe IT-Workflows orchestrieren können.
Sie verwenden den Paketmanager dnf mit sudo-Rechten, um das Paket ansible-core zu installieren, das die Kern-Ansible-Engine und Befehlszeilen-Tools bereitstellt. Nach der Installation überprüfen Sie, ob Ansible korrekt funktioniert, indem Sie die Version überprüfen und grundlegende Befehle ausführen.
Dies ist eine grundlegende Fähigkeit für Systemadministratoren und DevOps-Ingenieure, die mit Red Hat Enterprise Linux-Systemen arbeiten.
Ansible Core mit dnf installieren
In diesem Schritt installieren Sie das Paket ansible-core mit dem Paketmanager dnf. Ansible Core stellt die wesentliche Ansible-Engine bereit, einschließlich ansible, ansible-playbook und anderer Kern-Befehlszeilen-Tools, die für Automatisierungsaufgaben benötigt werden.
Der Paketmanager dnf (Dandified YUM) ist das Standardwerkzeug zur Verwaltung von Softwarepaketen auf Red Hat Enterprise Linux. Da die Installation von Software administrative Rechte erfordert, müssen Sie den Befehl sudo verwenden.
Führen Sie den folgenden Befehl aus, um Ansible Core mit automatischer Bestätigung zu installieren:
sudo dnf install ansible-core -y
Das Flag -y beantwortet automatisch alle Eingabeaufforderungen mit "yes", wodurch die Installation nicht-interaktiv wird. Das System lädt ansible-core zusammen mit seinen Python-Abhängigkeiten herunter und installiert es, einschließlich Jinja2 für das Templating und PyYAML für die YAML-Verarbeitung.
Sie sollten eine Ausgabe ähnlich dieser sehen, die die Paketauflösung und den Installationsfortschritt zeigt:
Updating Subscription Management repositories.
Last metadata expiration check: ...
Dependencies resolved.
================================================================================
Package Arch Version Repository Size
================================================================================
Installing:
ansible-core noarch 2.16.x-x.el9 rhel-9-appstream xx M
Installing dependencies:
python3-jinja2 noarch x.x.x-x.el9 rhel-9-appstream xxx k
python3-yaml x86_64 x.x.x-x.el9 rhel-9-appstream xxx k
...
Transaction Summary
================================================================================
Install XX Packages
Complete!
Ansible Installation überprüfen
Nachdem Sie Ansible Core installiert haben, überprüfen wir, ob die Installation erfolgreich war, indem wir die Version überprüfen und bestätigen, dass die wesentlichen Befehlszeilen-Tools verfügbar sind.
Überprüfen Sie zunächst die Ansible-Version, indem Sie Folgendes ausführen:
ansible --version
Dieser Befehl zeigt detaillierte Informationen über Ihre Ansible-Installation an, einschließlich der Core-Version, der Python-Version und der Speicherorte verschiedener Komponenten. Sie sollten eine Ausgabe wie diese sehen:
ansible [core 2.14.18]
config file = /etc/ansible/ansible.cfg
configured module search path = ['/home/labex/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
ansible python module location = /usr/lib/python3.9/site-packages/ansible
ansible collection location = /home/labex/.ansible/collections:/usr/share/ansible/collections
executable location = /usr/bin/ansible
python version = 3.9.21 (main, Feb 10 2025, 00:00:00) [GCC 11.5.0 20240719 (Red Hat 11.5.0-5)] (/usr/bin/python3)
jinja version = 3.1.2
libyaml = True
Lassen Sie uns verstehen, was jede Zeile bedeutet:
- ansible [core 2.14.18]: Zeigt die installierte Ansible Core-Version an
- config file: Verweist auf die Hauptkonfigurationsdatei von Ansible, die Standardeinstellungen enthält
- configured module search path: Verzeichnisse, in denen Ansible nach benutzerdefinierten Modulen sucht
- ansible python module location: Wo der Core-Ansible-Python-Code installiert ist
- ansible collection location: Verzeichnisse, in denen Ansible-Collections (verpackte Module und Plugins) gespeichert sind
- executable location: Der tatsächliche Speicherort der ausführbaren Datei des Ansible-Befehls
- python version: Die Python-Interpreter-Version, die Ansible verwendet
- jinja version: Die Version der Templating-Engine, die von Ansible für dynamische Inhalte verwendet wird
- libyaml = True: Bestätigt, dass der schnelle YAML-Parser für eine bessere Leistung verfügbar ist
Dies bestätigt, dass Ansible korrekt installiert und einsatzbereit ist. Als Nächstes überprüfen wir auch, ob der Befehl ansible-playbook verfügbar ist:
ansible-playbook --version
Sie sollten ähnliche Versionsinformationen für das Tool ansible-playbook sehen, das für die Ausführung von Ansible-Playbooks unerlässlich ist.
Ansible mit einem einfachen Befehl testen
In diesem Schritt testen Sie Ihre Ansible-Installation, indem Sie einen einfachen Befehl auf dem lokalen System ausführen. Wechseln Sie in das Projektverzeichnis und verwenden Sie die vorkonfigurierte Inventory-Datei, um einen Ansible Ad-hoc-Befehl auszuführen.
Navigieren Sie zum Projektverzeichnis und testen Sie die grundlegende Ping-Funktionalität:
cd /home/labex/project
ansible localhost -m ping
Das ping-Modul sendet keine ICMP-Pakete; stattdessen überprüft es, ob Ansible eine Verbindung zum Ziel herstellen und Python-Code ausführen kann. Eine erfolgreiche Antwort sieht so aus:
localhost | SUCCESS => {
"ansible_facts": {
"discovered_interpreter_python": "/usr/bin/python3"
},
"changed": false,
"ping": "pong"
}
Lassen Sie uns diese Ausgabe aufschlüsseln:
- localhost | SUCCESS: Zeigt an, dass der Befehl auf dem Ziel localhost erfolgreich ausgeführt wurde
- ansible_facts: Enthält Systeminformationen, die während der Ausführung ermittelt wurden
- discovered_interpreter_python: Der Python-Interpreter-Pfad, den Ansible gefunden hat und verwenden wird
- changed: false: Gibt an, dass keine Änderungen am System vorgenommen wurden (Ping ist schreibgeschützt)
- ping: "pong": Die klassische Antwort, die die Ansible-Konnektivität bestätigt
Die "pong"-Antwort bestätigt, dass Ansible korrekt funktioniert und mit dem Zielsystem kommunizieren kann.
Testen wir auch das Sammeln von Systeminformationen mit dem Setup-Modul:
ansible localhost -m setup -a "filter=ansible_distribution*"
Dieser Befehl verwendet das setup-Modul, um System-Facts zu sammeln, insbesondere gefiltert nach Distributionsinformationen. Sie sollten eine Ausgabe sehen, die Details über Ihr Red Hat Enterprise Linux-System enthält:
localhost | SUCCESS => {
"ansible_facts": {
"ansible_distribution": "RedHat",
"ansible_distribution_file_parsed": true,
"ansible_distribution_file_path": "/etc/redhat-release",
"ansible_distribution_file_search_string": "Red Hat",
"ansible_distribution_file_variety": "RedHat",
"ansible_distribution_major_version": "9",
"ansible_distribution_release": "Plow",
"ansible_distribution_version": "9.6",
"discovered_interpreter_python": "/usr/bin/python3"
},
"changed": false
}
Verständnis der System-Facts-Ausgabe:
- ansible_distribution: Der Name der Linux-Distribution (RedHat)
- ansible_distribution_file_parsed: Ob Ansible die Distributionsdatei erfolgreich gelesen hat
- ansible_distribution_file_path: Die Datei, die Distributionsinformationen enthält
- ansible_distribution_file_search_string: Das Textmuster, das zur Identifizierung der Distribution verwendet wird
- ansible_distribution_file_variety: Die Distributionsfamilie (RedHat-Familie)
- ansible_distribution_major_version: Die Hauptversionsnummer (9)
- ansible_distribution_release: Der Release-Codename (Plow)
- ansible_distribution_version: Die vollständige Versionsnummer (9.6)
- discovered_interpreter_python: Von Ansible ermittelter Python-Interpreter
Dies bestätigt, dass Ansible erfolgreich Systeminformationen vom Zielhost sammeln kann, was für die Erstellung bedingter Automatisierung basierend auf Systemmerkmalen unerlässlich ist.
Verfügbare Ansible-Module erkunden
Ansible wird mit Hunderten von integrierten Modulen für verschiedene Automatisierungsaufgaben geliefert. Lassen Sie uns einige der verfügbaren Module erkunden, um zu verstehen, welche Fähigkeiten nach der Installation sofort verfügbar sind.
Um eine Liste der verfügbaren Module anzuzeigen, führen Sie aus:
ansible-doc -l | head -20
Der Befehl ansible-doc -l listet alle verfügbaren Module auf, und die Verwendung von head -20 zeigt die ersten 20 Module an. Dies gibt Ihnen eine Vorstellung von den umfangreichen Automatisierungsfähigkeiten, die mit Ansible verfügbar sind. Sie sehen eine ähnliche Ausgabe wie:
ansible.builtin.add_host Add a host (and alternatively a grou...
ansible.builtin.apt Manages apt-packages
ansible.builtin.apt_key Add or remove an apt key
ansible.builtin.apt_repository Add and remove APT repositories
ansible.builtin.assemble Assemble configuration files from fr...
ansible.builtin.assert Asserts given expressions are true
ansible.builtin.async_status Obtain status of asynchronous task
ansible.builtin.blockinfile Insert/update/remove a text block su...
ansible.builtin.command Execute commands on targets
ansible.builtin.copy Copy files to remote locations
ansible.builtin.cron Manage cron.d and crontab entries
ansible.builtin.debconf Configure a .deb package
ansible.builtin.debug Print statements during execution
ansible.builtin.dnf Manages packages with the `dnf' pack...
ansible.builtin.dpkg_selections Dpkg package selection selections
ansible.builtin.expect Executes a command and responds to p...
ansible.builtin.fail Fail with custom message
ansible.builtin.fetch Fetch files from remote nodes
ansible.builtin.file Manage files and file properties
ansible.builtin.find Return a list of files based on spec...
Verständnis des Modullistenformats:
- ansible.builtin.: Zeigt an, dass es sich um integrierte Module handelt, die mit Ansible Core geliefert werden
- Modulname: Der Name, den Sie verwenden, wenn Sie das Modul in Playbooks oder Ad-hoc-Befehlen aufrufen
- Beschreibung: Eine kurze Erläuterung, was das Modul tut
Einige wichtige Module, die Sie häufig verwenden werden:
- command: Führt Shell-Befehle auf Zielsystemen aus
- copy: Kopiert Dateien von Ihrem Kontrollrechner auf Remote-Hosts
- dnf: Installiert, aktualisiert oder entfernt Pakete auf Red Hat-Systemen
- file: Erstellt Verzeichnisse, legt Berechtigungen fest oder verwaltet Dateieigenschaften
- debug: Gibt während der Playbook-Ausführung Nachrichten zur Fehlerbehebung aus
Um detaillierte Dokumentation für ein bestimmtes Modul zu erhalten, können Sie den Befehl ansible-doc mit dem Modulnamen verwenden. Um beispielsweise mehr über das Modul copy zu erfahren:
ansible-doc copy
Dadurch wird eine umfassende Dokumentation für das Modul copy angezeigt, einschließlich Beispiele und Parameterbeschreibungen. Der Befehl ansible-doc bietet detaillierte Dokumentation für jedes Ansible-Modul und erleichtert so das Erlernen der Verwendung verschiedener Automatisierungsfunktionen. Drücken Sie q, um die Dokumentationsanzeige zu beenden, wenn Sie mit dem Lesen fertig sind.
Zusammenfassung
In diesem Lab haben Sie erfolgreich gelernt, wie man Ansible Core auf einem Red Hat Enterprise Linux-System installiert und verifiziert. Folgendes haben Sie erreicht:
Installation von Ansible Core: Sie haben den Befehl
sudo dnf install ansible-core -yverwendet, um das Core-Ansible-Paket und seine Abhängigkeiten aus den offiziellen Red Hat-Repositories zu installieren.Verifizierung der Installation: Sie haben bestätigt, dass Ansible ordnungsgemäß installiert wurde, indem Sie die Versionen der Befehle
ansibleundansible-playbooküberprüft haben.Testen der grundlegenden Funktionalität: Sie haben einfache Ansible-Befehle ausgeführt, um zu überprüfen, ob die Installation korrekt funktioniert, einschließlich:
- Verwendung des
ping-Moduls zum Testen der Konnektivität - Verwendung des
setup-Moduls zum Sammeln von System-Facts
- Verwendung des
Erkunden der verfügbaren Module: Sie haben gelernt, wie man die umfangreiche Bibliothek von Ansible-Modulen mit
ansible-docentdeckt und die Dokumentation liest.
Sie haben jetzt eine voll funktionsfähige Ansible-Installation auf RHEL und verstehen die grundlegenden Befehle, die zum Starten der Automatisierung Ihrer Infrastruktur benötigt werden. Diese Grundlage bereitet Sie auf fortgeschrittenere Ansible-Themen vor, wie z. B. das Schreiben von Playbooks, das Verwalten von Inventaren und die Implementierung komplexer Automatisierungs-Workflows.



