Wie man Ansible auf die neueste Version aktualisiert

AnsibleAnsibleBeginner
Jetzt üben

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

Einführung

Ansible ist ein leistungsstarkes Open-Source-Automatisierungstool, das in der IT-Branche weite Verbreitung gefunden hat. Da sich Ansible weiterentwickelt, ist es wichtig, Ihre Installation auf dem neuesten Stand zu halten, um die neuesten Funktionen und Verbesserungen nutzen zu können. Dieses Tutorial führt Sie durch den Prozess der Aktualisierung von Ansible auf die neueste Version unter Ubuntu, dem Betriebssystem, das in dieser Laborumgebung verwendet wird.

Ansible verstehen und die aktuelle Version überprüfen

Bevor wir Ansible aktualisieren, ist es hilfreich zu verstehen, was Ansible ist und zu überprüfen, welche Version Sie derzeit installiert haben.

Was ist Ansible?

Ansible ist eine Open-Source-Automatisierungsplattform, die Konfigurationsmanagement, Anwendungsbereitstellung und Aufgabenautomatisierung vereinfacht. Es verwendet die YAML-Syntax zur Erstellung von Playbooks, also Dokumenten, die den gewünschten Zustand Ihrer Systeme beschreiben.

Einige wichtige Vorteile von Ansible sind:

  • Agentenlose Architektur (Agentless architecture): Keine Notwendigkeit, Agenten auf verwalteten Knoten zu installieren
  • Einfache Syntax (Simple syntax): Verwendet menschenlesbare YAML-Dateien
  • Idempotente Ausführung (Idempotent execution): Die mehrfache Ausführung desselben Playbooks erzeugt dasselbe Ergebnis
  • Erweiterbar (Extensible): Unterstützt benutzerdefinierte Module und Plugins

Überprüfen Ihrer aktuellen Ansible-Version

Beginnen wir damit, zu überprüfen, ob Ansible bereits installiert ist und, falls ja, welche Version Sie haben. Öffnen Sie ein Terminal und führen Sie aus:

ansible --version

Sie sollten eine ähnliche Ausgabe wie diese sehen:

ansible [core 2.12.0]
  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/dist-packages/ansible
  ansible collection location = /home/labex/.ansible/collections:/usr/share/ansible/collections
  executable location = /usr/bin/ansible
  python version = 3.10.12 (main, Jun 11 2023, 05:26:28) [GCC 11.4.0]
  jinja version = 3.0.3
  libyaml = True

Die erste Zeile zeigt Ihre aktuelle Ansible-Version an. Wenn Sie keine solche Ausgabe sehen, ist Ansible möglicherweise noch nicht installiert, was in Ordnung ist, da wir es im nächsten Schritt installieren werden.

Ansible-Versionierung verstehen

Ansible folgt der semantischen Versionierung (semantic versioning) mit drei Zahlen: major.minor.patch

  • Hauptversion (Major version): Wesentliche Änderungen, die möglicherweise Änderungen an Ihren Playbooks erfordern
  • Nebenversion (Minor version): Neue Funktionen ohne Breaking Changes
  • Patch-Version (Patch version): Fehlerbehebungen und kleinere Verbesserungen

Nachdem wir nun verstanden haben, was Ansible ist und unsere aktuelle Version überprüft haben, sind wir bereit, im nächsten Schritt mit der Installation oder Aktualisierung von Ansible fortzufahren.

Installation oder Aktualisierung von Ansible unter Ubuntu

In diesem Schritt installieren oder aktualisieren wir Ansible auf dem Ubuntu 22.04-System. Wir verwenden das offizielle Ansible PPA (Personal Package Archive), um die neueste stabile Version zu erhalten.

Hinzufügen des Ansible PPA-Repositorys

Zuerst müssen wir sicherstellen, dass wir die notwendige Abhängigkeit zum Hinzufügen von PPAs haben:

sudo apt update
sudo apt install -y software-properties-common

Dieser Befehl aktualisiert Ihren Paketindex und installiert das Paket software-properties-common, das den Befehl add-apt-repository bereitstellt.

Fügen wir nun das offizielle Ansible PPA-Repository hinzu:

sudo add-apt-repository --yes --update ppa:ansible/ansible

Sie sehen eine Ausgabe, die anzeigt, dass das Repository zu Ihrem System hinzugefügt wurde. Das Flag --yes bestätigt die Hinzufügung automatisch, und --update aktualisiert sofort die Paketliste.

Installieren der neuesten Ansible-Version

Mit dem hinzugefügten Repository können wir jetzt die neueste Version von Ansible installieren:

sudo apt install -y ansible

Das Flag -y bestätigt die Installation automatisch, ohne nach einer Bestätigung zu fragen.

Dieser Befehl installiert Ansible entweder, wenn es noch nicht vorhanden ist, oder aktualisiert es auf die neueste Version, die im PPA verfügbar ist.

Überprüfen der Installation oder des Upgrades

Nachdem die Installation abgeschlossen ist, überprüfen wir, ob Ansible korrekt installiert wurde, und überprüfen seine Version:

ansible --version

Die Ausgabe sollte die neueste Version von Ansible anzeigen, die im PPA verfügbar ist. Wenn Sie zuvor eine ältere Version installiert hatten, sollten Sie jetzt eine neuere Versionsnummer sehen.

Um unseren Fortschritt für das Überprüfungsskript zu verfolgen, erstellen wir eine Markierungsdatei:

touch /tmp/ansible_version_checked
touch /tmp/ansible_installed

Nun haben wir Ansible erfolgreich auf unserem Ubuntu-System installiert oder aktualisiert. Im nächsten Schritt werden wir untersuchen, wie man einige grundlegende Ansible-Befehle verwendet, um zu überprüfen, ob unsere Installation korrekt funktioniert.

Überprüfen Ihrer Ansible-Installation mit einem einfachen Playbook

Nachdem Ansible installiert ist, bestätigen wir, dass es korrekt funktioniert, indem wir ein einfaches Ansible-Playbook erstellen und ausführen. Playbooks sind YAML-Dateien, die den gewünschten Zustand Ihrer Systeme und die Aufgaben beschreiben, die Ansible ausführen soll, um diesen Zustand zu erreichen.

Erstellen eines Test-Playbooks

Erstellen wir zunächst ein Verzeichnis für unser Ansible-Projekt:

mkdir -p ~/project/ansible-test
cd ~/project/ansible-test

Erstellen wir nun ein einfaches Playbook mit dem integrierten Code-Editor. Klicken Sie in der WebIDE auf das Symbol "Explorer" in der linken Seitenleiste, navigieren Sie zu dem Verzeichnis ansible-test, das wir gerade erstellt haben, und erstellen Sie eine neue Datei namens test-playbook.yml.

Fügen Sie dieser Datei den folgenden Inhalt hinzu:

---
- name: Test Ansible Installation
  hosts: localhost
  connection: local
  gather_facts: no

  tasks:
    - name: Print a message
      debug:
        msg: "Ansible is installed and working correctly!"

    - name: Get Ansible version
      command: ansible --version
      register: ansible_version_output

    - name: Display Ansible version
      debug:
        msg: "{{ ansible_version_output.stdout_lines[0] }}"

    - name: Create a test file
      file:
        path: /tmp/ansible-test-file.txt
        state: touch
        mode: "0644"

Dieses Playbook macht Folgendes:

  1. Zielt auf den lokalen Rechner (localhost) ab
  2. Gibt eine Erfolgsmeldung aus
  3. Ruft die Ansible-Version ab und zeigt sie an
  4. Erstellt eine Testdatei unter /tmp/ansible-test-file.txt

Ausführen des Playbooks

Führen wir nun das Playbook aus, um zu überprüfen, ob Ansible korrekt funktioniert:

cd ~/project/ansible-test
ansible-playbook test-playbook.yml

Sie sollten eine ähnliche Ausgabe wie diese sehen:

PLAY [Test Ansible Installation] ***********************************************

TASK [Print a message] *********************************************************
ok: [localhost] => {
    "msg": "Ansible is installed and working correctly!"
}

TASK [Get Ansible version] *****************************************************
changed: [localhost]

TASK [Display Ansible version] *************************************************
ok: [localhost] => {
    "msg": "ansible [core 2.12.0]"
}

TASK [Create a test file] ******************************************************
changed: [localhost]

PLAY RECAP *********************************************************************
localhost                  : ok=4    changed=2    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0

Die Ausgabe zeigt, dass alle Aufgaben erfolgreich abgeschlossen wurden. Das changed=2 in der Zusammenfassung zeigt an, dass zwei Aufgaben Änderungen am System vorgenommen haben (Abrufen der Version und Erstellen der Datei).

Überprüfen der Testdatei

Überprüfen wir, ob die Testdatei erstellt wurde:

ls -l /tmp/ansible-test-file.txt

Sie sollten die Datei mit den von uns angegebenen Berechtigungen aufgelistet sehen:

-rw-r--r-- 1 labex labex 0 Aug 30 12:34 /tmp/ansible-test-file.txt

Markieren wir diesen Schritt als abgeschlossen für unser Überprüfungsskript:

touch /tmp/ansible_playbook_tested

Herzlichen Glückwunsch! Sie haben die neueste Version von Ansible erfolgreich installiert und verifiziert, dass sie korrekt funktioniert, indem Sie ein einfaches Playbook ausgeführt haben. Dies bestätigt, dass Ihre Ansible-Installation voll funktionsfähig ist und einsatzbereit ist.

Verstehen von Ansible-Konfiguration und -Modulen

Nachdem wir Ansible installiert und zum Laufen gebracht haben, wollen wir uns mit seiner Konfiguration und dem Konzept der Module beschäftigen.

Ansible-Konfiguration

Ansible verwendet Konfigurationsdateien, um sein Verhalten zu steuern. Die Hauptkonfigurationsdatei ist ansible.cfg, die sich an verschiedenen Orten befinden kann. Untersuchen wir die Standardkonfigurationsdatei:

ls -la /etc/ansible/

Sie sollten die Standard-Ansible-Verzeichnisstruktur sehen:

total 20
drwxr-xr-x  2 root root 4096 Aug 30 12:00 .
drwxr-xr-x 85 root root 4096 Aug 30 12:00 ..
-rw-r--r--  1 root root 8669 Aug 30 12:00 ansible.cfg
-rw-r--r--  1 root root 1021 Aug 30 12:00 hosts

Werfen wir einen Blick auf die Datei hosts, die die Standard-Inventory-Datei ist:

cat /etc/ansible/hosts

Die Inventory-Datei enthält eine Liste der Hosts, die Ansible verwalten kann. Standardmäßig enthält sie Beispiele, die auskommentiert sind.

Erstellen einer benutzerdefinierten Konfiguration

Erstellen wir unsere eigene Ansible-Konfigurationsdatei in unserem Projektverzeichnis. Erstellen Sie in der WebIDE eine neue Datei namens ansible.cfg im Verzeichnis ~/project/ansible-test mit dem folgenden Inhalt:

[defaults]
inventory = ./inventory
host_key_checking = False
stdout_callback = yaml

Erstellen wir nun eine einfache Inventory-Datei. Erstellen Sie in der WebIDE eine neue Datei namens inventory im Verzeichnis ~/project/ansible-test mit dem folgenden Inhalt:

[local]
localhost ansible_connection=local

Erkunden von Ansible-Modulen

Ansible-Module sind wiederverwendbare Codeeinheiten, die bestimmte Aufgaben ausführen. Untersuchen wir einige der verfügbaren Module:

ansible-doc -l | wc -l

Dieser Befehl listet alle verfügbaren Module auf und zählt sie. Sie sollten eine große Anzahl sehen, typischerweise über 1000 Module.

Sehen wir uns die Dokumentation für ein bestimmtes Modul an, z. B. das Modul file, das wir in unserem Playbook verwendet haben:

ansible-doc file

Sie können q drücken, um die Dokumentationsanzeige zu verlassen.

Erstellen eines komplexeren Playbooks

Erstellen wir nun ein fortgeschritteneres Playbook, das ein paar weitere Ansible-Module demonstriert. Erstellen Sie in der WebIDE eine neue Datei namens modules-demo.yml im Verzeichnis ~/project/ansible-test mit dem folgenden Inhalt:

---
- name: Ansible Modules Demo
  hosts: localhost
  connection: local
  gather_facts: yes

  tasks:
    - name: Display system information
      debug:
        msg: "System: {{ ansible_distribution }} {{ ansible_distribution_version }}"

    - name: Create a directory
      file:
        path: /tmp/ansible-demo
        state: directory
        mode: "0755"

    - name: Copy a file
      copy:
        content: "Created by Ansible modules demo playbook\n"
        dest: /tmp/ansible-demo/info.txt
        mode: "0644"

    - name: Gather information about a file
      stat:
        path: /tmp/ansible-demo/info.txt
      register: file_info

    - name: Show file information
      debug:
        msg: "File created at {{ file_info.stat.mtime }}"

Führen wir dieses Playbook aus:

cd ~/project/ansible-test
ansible-playbook modules-demo.yml

Das Playbook macht Folgendes:

  1. Zeigt Informationen über Ihr System an
  2. Erstellt ein Verzeichnis unter /tmp/ansible-demo
  3. Erstellt eine Datei mit benutzerdefiniertem Inhalt
  4. Sammelt Informationen über die Datei
  5. Zeigt die Änderungszeit der Datei an

Markieren wir diesen Schritt als abgeschlossen für unser Überprüfungsskript:

touch /tmp/ansible_modules_explored

Sie haben nun etwas über die Ansible-Konfiguration, Inventory-Dateien gelernt und verschiedene Module erkundet. Dies sind wesentliche Komponenten für die effektive Arbeit mit Ansible.

Zusammenfassung

In diesem Lab haben Sie erfolgreich gelernt, wie man Ansible auf einem Ubuntu-System auf die neueste Version installiert und aktualisiert. Sie haben mehrere wichtige Aufgaben erledigt:

  1. Die Grundlagen von Ansible und seinem Versionssystem verstanden
  2. Ansible mit dem offiziellen PPA-Repository installiert oder aktualisiert
  3. Ihre Installation durch Erstellen und Ausführen eines einfachen Playbooks verifiziert
  4. Ansible-Konfigurationsdateien und Inventory-Management erkundet
  5. Etwas über Ansible-Module und ihre Dokumentation gelernt
  6. Komplexere Playbooks erstellt und ausgeführt, um verschiedene Aufgaben auszuführen

Diese Fähigkeiten bieten eine solide Grundlage für die Arbeit mit Ansible in Automatisierungsprojekten. Indem Sie Ihre Ansible-Installation auf dem neuesten Stand halten, können Sie die neuesten Funktionen, Fehlerbehebungen und Sicherheitsupdates nutzen.

Wenn Sie Ihre Ansible-Reise fortsetzen, können Sie fortgeschrittenere Themen wie Rollen, Collections und Ansible AWX/Tower für das Enterprise-Management erkunden. Diese Tools helfen Ihnen beim Aufbau anspruchsvollerer Automatisierungs-Workflows und der Verwaltung der Infrastruktur im großen Maßstab.