Ansible auf Red Hat Enterprise Linux installieren

AnsibleAnsibleBeginner
Jetzt üben

💡 Dieser Artikel wurde von AI-Assistenten übersetzt. Um die englische Version anzuzeigen, können Sie hier klicken

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.

Installation von Ansible Core mit dnf

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!

Überprüfen der Ansible-Installation

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.

Testen von Ansible mit einem einfachen Befehl

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.

Erkunden der verfügbaren Ansible-Module

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:

  1. Installation von Ansible Core: Sie haben den Befehl sudo dnf install ansible-core -y verwendet, um das Core-Ansible-Paket und seine Abhängigkeiten aus den offiziellen Red Hat-Repositories zu installieren.

  2. Verifizierung der Installation: Sie haben bestätigt, dass Ansible ordnungsgemäß installiert wurde, indem Sie die Versionen der Befehle ansible und ansible-playbook überprüft haben.

  3. 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
  4. Erkunden der verfügbaren Module: Sie haben gelernt, wie man die umfangreiche Bibliothek von Ansible-Modulen mit ansible-doc entdeckt 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.