Einführung
In diesem Lab lernen Sie, wie Sie Ansible Core auf einem Red Hat Enterprise Linux (RHEL) System installieren. Ansible ist ein leistungsstarkes Automatisierungstool, 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 Ansible-Engine und die Befehlszeilentools bereitstellt. Nach der Installation überprüfen Sie die korrekte Funktionsweise von Ansible, indem Sie die Version abrufen 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 mithilfe des dnf-Paketmanagers. Ansible Core bietet die wesentliche Ansible-Engine, einschließlich ansible, ansible-playbook und anderer für Automatisierungsaufgaben erforderlicher Befehlszeilentools.
Der dnf (Dandified YUM) Paketmanager ist das Standardwerkzeug zur Verwaltung von Softwarepaketen unter 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 alle Eingabeaufforderungen automatisch mit "yes", wodurch die Installation nicht-interaktiv abläuft. Das System lädt ansible-core zusammen mit seinen Python-Abhängigkeiten herunter und installiert sie, einschließlich Jinja2 für Templating und PyYAML für die YAML-Verarbeitung.
Sie sollten eine Ausgabe sehen, die der folgenden ähnelt und den Fortschritt der Paketauflösung und Installation anzeigt:
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!
Die Ansible-Installation überprüfen
Nachdem Sie Ansible Core installiert haben, überprüfen wir den Erfolg der Installation, indem wir die Version prüfen und sicherstellen, dass die wesentlichen Befehlszeilentools verfügbar sind.
Überprüfen Sie zunächst die Ansible-Version mit folgendem Befehl:
ansible --version
Dieser Befehl zeigt detaillierte Informationen zu Ihrer 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
Hier ist die Bedeutung der einzelnen Zeilen:
- 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: Speicherort des Ansible Python-Kerncodes.
- ansible collection location: Verzeichnisse, in denen Ansible-Collections (gepackte Module und Plugins) gespeichert sind.
- executable location: Der tatsächliche Speicherort der Ansible-Binärdatei.
- python version: Die Version des Python-Interpreters, den Ansible verwendet.
- jinja version: Die Version der Templating-Engine, die Ansible für dynamische Inhalte nutzt.
- libyaml = True: Bestätigt, dass der schnelle YAML-Parser für eine bessere Leistung verfügbar ist.
Dies bestätigt, dass Ansible ordnungsgemäß installiert und einsatzbereit ist. Überprüfen wir nun 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 Inventardatei, um einen Ansible Ad-hoc-Befehl auszuführen.
Navigieren Sie zum Projektverzeichnis und testen Sie die grundlegende Ping-Funktionalität. Speichern Sie die Ausgabe in einer Datei, damit Sie sie erneut überprüfen können und der Schritt-Verifizierer das Ergebnis zuverlässig bestätigen kann:
cd /home/labex/project
ansible localhost -m ping | tee ping-output.txt
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"
}
Hier ist die Aufschlüsselung dieser Ausgabe:
- localhost | SUCCESS: Zeigt an, dass der Befehl erfolgreich auf dem localhost-Ziel ausgeführt wurde.
- ansible_facts: Enthält Systeminformationen, die während der Ausführung ermittelt wurden.
- discovered_interpreter_python: Der Pfad zum Python-Interpreter, den Ansible gefunden hat und verwenden wird.
- changed: false: Zeigt 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 nun auch das Sammeln von Systeminformationen mit dem setup-Modul und speichern diese Ausgabe ebenfalls:
ansible localhost -m setup -a "filter=ansible_distribution*" | tee setup-output.txt
Dieser Befehl verwendet das setup-Modul, um System-Fakten zu sammeln, wobei speziell nach Distributionsinformationen gefiltert wird. Sie sollten eine Ausgabe sehen, die Details zu Ihrem 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-Fakten-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 wurde.
- ansible_distribution_file_variety: Die Distributionsfamilie (RedHat-Familie).
- ansible_distribution_major_version: Die Hauptversionsnummer (9).
- ansible_distribution_release: Der Codename des Releases (Plow).
- ansible_distribution_version: Die vollständige Versionsnummer (9.6).
- discovered_interpreter_python: Der von Ansible erkannte Python-Interpreter.
Dies bestätigt, dass Ansible erfolgreich Systeminformationen vom Zielhost sammeln kann, was für die Erstellung bedingter Automatisierungen basierend auf Systemeigenschaften 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 Funktionen direkt nach der Installation verfügbar sind.
Um eine Liste der verfügbaren Module anzuzeigen, führen Sie den folgenden Befehl aus und speichern Sie die ersten Zeilen in einer Datei:
ansible-doc -l | head -20 | tee module-list.txt
Der Befehl ansible-doc -l listet alle verfügbaren Module auf, und head -20 zeigt die ersten 20 Module an. Dies gibt Ihnen einen Eindruck von den umfangreichen Automatisierungsmöglichkeiten, die mit Ansible zur Verfügung stehen. Sie sehen eine Ausgabe ähnlich dieser:
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 Modullisten-Formats:
- ansible.builtin.: Zeigt an, dass es sich um integrierte Module handelt, die mit Ansible Core geliefert werden.
- Modulname: Der Name, den Sie beim Aufrufen des Moduls in Playbooks oder Ad-hoc-Befehlen verwenden.
- Beschreibung: Eine kurze Erklärung der Funktion des Moduls.
Einige wichtige Module, die Sie häufig verwenden werden:
- command: Führt Shell-Befehle auf Zielsystemen aus.
- copy: Kopiert Dateien von Ihrer Steuerungsmaschine auf Remote-Hosts.
- dnf: Installiert, aktualisiert oder entfernt Pakete auf Red Hat-Systemen.
- file: Erstellt Verzeichnisse, setzt Berechtigungen oder verwaltet Dateieigenschaften.
- debug: Gibt Nachrichten während der Playbook-Ausführung zur Fehlerbehebung aus.
Um eine detaillierte Dokumentation für ein bestimmtes Modul zu erhalten, können Sie den Befehl ansible-doc mit dem Modulnamen verwenden. Leiten Sie die Ausgabe in eine Datei um, damit der Befehl nicht-interaktiv bleibt und Sie ihn später erneut einsehen können. Um beispielsweise mehr über das copy-Modul zu erfahren:
ansible-doc copy | tee copy-doc.txt
Dies zeigt eine umfassende Dokumentation für das copy-Modul an, einschließlich Beispielen und Parameterbeschreibungen, und speichert gleichzeitig eine Kopie in copy-doc.txt. Der Befehl ansible-doc bietet detaillierte Dokumentation für jedes Ansible-Modul, was es einfach macht, die verschiedenen Automatisierungsmöglichkeiten zu erlernen.
Zusammenfassung
In diesem Lab haben Sie erfolgreich gelernt, wie man Ansible Core auf einem Red Hat Enterprise Linux-System installiert und überprüft. Folgendes haben Sie erreicht:
Ansible Core installiert: Sie haben den Befehl
sudo dnf install ansible-core -yverwendet, um das Ansible-Kernpaket und seine Abhängigkeiten aus den offiziellen Red Hat-Repositories zu installieren.Installation überprüft: Sie haben bestätigt, dass Ansible ordnungsgemäß installiert wurde, indem Sie die Version der Befehle
ansibleundansible-playbooküberprüft haben.Grundlegende Funktionalität getestet: Sie haben einfache Ansible-Befehle ausgeführt, um sicherzustellen, dass die Installation korrekt funktioniert, darunter:
- Verwendung des
ping-Moduls zum Testen der Konnektivität. - Verwendung des
setup-Moduls zum Sammeln von System-Fakten.
- Verwendung des
Verfügbare Module erkundet: Sie haben gelernt, wie man die umfangreiche Bibliothek von Ansible-Modulen mit
ansible-docentdeckt und deren Dokumentation liest.
Sie verfügen nun über eine voll funktionsfähige Ansible-Installation auf RHEL und verstehen die grundlegenden Befehle, die für den Einstieg in die Automatisierung Ihrer Infrastruktur erforderlich sind. Diese Grundlage bereitet Sie auf fortgeschrittenere Ansible-Themen vor, wie das Schreiben von Playbooks, die Verwaltung von Inventaren und die Implementierung komplexer Automatisierungs-Workflows.



