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:
- Zielt auf den lokalen Rechner (
localhost) ab - Gibt eine Erfolgsmeldung aus
- Ruft die Ansible-Version ab und zeigt sie an
- 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:
- Zeigt Informationen über Ihr System an
- Erstellt ein Verzeichnis unter
/tmp/ansible-demo - Erstellt eine Datei mit benutzerdefiniertem Inhalt
- Sammelt Informationen über die Datei
- 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:
- Die Grundlagen von Ansible und seinem Versionssystem verstanden
- Ansible mit dem offiziellen PPA-Repository installiert oder aktualisiert
- Ihre Installation durch Erstellen und Ausführen eines einfachen Playbooks verifiziert
- Ansible-Konfigurationsdateien und Inventory-Management erkundet
- Etwas über Ansible-Module und ihre Dokumentation gelernt
- 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.


