In diesem Lab erfahren Sie, wie Sie Ansible auf einem Ubuntu-System installieren und einrichten. Ansible ist ein leistungsstarkes Open-Source-Automatisierungstool, das die Konfigurationsverwaltung, die Anwendungsbereitstellung und die Aufgabenautomatisierung vereinfacht. Am Ende dieses Labs haben Sie Ansible installiert und konfiguriert und können damit effizient Remote-Systeme verwalten.
Dies ist ein Guided Lab, das schrittweise Anweisungen bietet, um Ihnen beim Lernen und Üben zu helfen. Befolgen Sie die Anweisungen sorgfältig, um jeden Schritt abzuschließen und praktische Erfahrungen zu sammeln. Historische Daten zeigen, dass dies ein Labor der Stufe Anfänger mit einer Abschlussquote von 80% ist. Es hat eine positive Bewertungsrate von 99% von den Lernenden erhalten.
Interaktive Übungen statt trockener Theorie.
Aktualisieren der Systempakete
Bevor Sie neue Software installieren, ist es wichtig, sicherzustellen, dass Ihr System die neuesten Updates hat. Dies hilft, potenzielle Konflikte zu vermeiden und stellt sicher, dass Sie die neuesten Sicherheitsupdates haben.
Zuerst aktualisieren Sie die Paketlisten:
sudo apt update
Dieser Befehl verbindet sich mit den Ubuntu-Software-Repositories und lädt Informationen über die neuesten verfügbaren Pakete herunter. Möglicherweise sehen Sie eine Ausgabe wie diese:
Hit:1 http://mirrors.cloud.aliyuncs.com/ubuntu jammy InRelease
Hit:2 http://mirrors.cloud.aliyuncs.com/ubuntu jammy-updates InRelease
Hit:3 http://mirrors.cloud.aliyuncs.com/ubuntu jammy-backports InRelease
Hit:4 http://mirrors.cloud.aliyuncs.com/ubuntu jammy-security InRelease
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
All packages are up to date.
Machen Sie sich keine Sorgen, wenn Sie einige Zeilen mit "Hit" oder "Get" sehen - dies ist normal und zeigt an, welche Repository-Informationen aktualisiert werden.
Installieren von Ansible
Nachdem Ihr System auf dem neuesten Stand ist, können Sie mit der Installation von Ansible fortfahren. Die Standard-Repositories von Ubuntu enthalten Ansible, was den Installationsprozess unkompliziert macht.
Installieren Sie Ansible mit dem folgenden Befehl:
sudo apt install ansible -y
Lassen Sie uns diesen Befehl zerlegen:
sudo: Mit diesem Befehl wird der Befehl mit administrativen Rechten ausgeführt, was für die Installation von Software erforderlich ist.
apt install: Dies teilt dem Paketmanager mit, ein neues Paket zu installieren.
ansible: Dies ist der Name des Pakets, das wir installieren möchten.
-y: Dieser Schalter beantwortet automatisch alle Abfragen während der Installation mit "ja".
Sie werden eine Ausgabe sehen, die den Installationsfortschritt anzeigt:
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
...
Processing triggers for man-db (2.10.2-1)...
Machen Sie sich nicht wegen der Menge an Text alarmiert - dies zeigt Ihnen einfach alle Abhängigkeiten an, die zusammen mit Ansible installiert werden.
Nach Abschluss der Installation ist es eine gute Praxis, zu überprüfen, ob Ansible korrekt installiert wurde. Sie können dies tun, indem Sie die Version überprüfen:
ansible --version
Dieser Befehl sollte Informationen über die installierte Ansible-Version anzeigen:
Wenn Sie eine ähnliche Ausgabe sehen, herzlichen Glückwunsch! Ansible ist jetzt auf Ihrem System installiert.
Einfach starten, ohne Installation.
SSH für Ansible konfigurieren
Ansible verwendet SSH zur Kommunikation mit verwalteten Knoten (managed nodes). Um diesen Prozess zu optimieren und die Sicherheit zu erhöhen, richten wir eine SSH-Schlüsselbasierte Authentifizierung ein. Dies ermöglicht Ansible, sich mit anderen Rechnern zu verbinden, ohne jedes Mal ein Passwort eingeben zu müssen.
ssh-keygen: Dies ist das Programm, das das Schlüsselpaar generiert.
-t rsa: Dies gibt an, dass wir einen RSA-Schlüsseltyp wünschen.
-b 4096: Dies setzt die Schlüsselgröße auf 4096 Bit, was sehr sicher ist.
-C "[email protected]": Dies fügt dem Schlüssel einen Kommentar hinzu, normalerweise eine E-Mail-Adresse.
Wenn Sie diesen Befehl ausführen, werden Sie folgende Eingabeaufforderungen sehen:
Generating public/private rsa key pair.
Enter file in which to save the key (/home/labex/.ssh/id_rsa):
Drücken Sie die Eingabetaste, um den Standardspeicherort zu akzeptieren.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Für dieses Lab können Sie die Passphrase leer lassen, indem Sie zweimal die Eingabetaste drücken. In einer Produktionsumgebung sollten Sie eine starke Passphrase verwenden.
Sie sehen eine Ausgabe, die die Schlüsselerstellung bestätigt:
Your identification has been saved in /home/labex/.ssh/id_rsa
Your public key has been saved in /home/labex/.ssh/id_rsa.pub
The key fingerprint is:
SHA256:abcdefghijklmnopqrstuvwxyz1234567890ABCDEFG [email protected]
The key's randomart image is:
+---[RSA 4096]----+
| . |
| . . |
| o |
| . o |
| + = S |
| + * + |
| . = o . |
| . + = |
| +.+. |
+----[SHA256]-----+
Als Nächstes müssen wir diesen Schlüssel auf den lokalen Rechner kopieren. In einem realen Szenario würden Sie diesen auf Remote-Hosts kopieren, aber für dieses Lab verwenden wir den lokalen Rechner:
ssh-copy-id labex@localhost
Geben Sie yes ein, um fortzufahren.
Sie werden nach dem Passwort des labex-Benutzers gefragt.
Für diese Lab-Umgebung finden Sie das Passwort, indem Sie das VNC-Terminal öffnen und Folgendes ausführen:
Schließen Sie die aktuelle Terminal-Sitzung nicht und öffnen Sie ein neues Xfce-Terminal, um den folgenden Befehl auszuführen:
echo $PASSWORD
Hinweis: Sie müssen diesen Befehl im VNC-Terminal ausführen. Das Passwort ist nur im VNC-Terminal verfügbar und nicht über SSH oder das Webterminal zugänglich.
Geben Sie das Passwort ein, wenn Sie von ssh-copy-id dazu aufgefordert werden. Sie sollten eine Ausgabe wie diese sehen:
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
labex@localhost's password:
Number of key(s) added: 1
Now try logging into the machine, with: "ssh 'labex@localhost'"
and check to make sure that only the key(s) you wanted were added.
Um zu überprüfen, ob die SSH-Schlüssel-Einrichtung erfolgreich war, versuchen Sie, sich per SSH auf dem lokalen Rechner anzumelden:
ssh labex@localhost
Wenn der Schlüssel korrekt eingerichtet wurde, sollten Sie sich anmelden können, ohne nach einem Passwort gefragt zu werden. Sie sehen eine neue Eingabeaufforderung. Geben Sie exit ein, um zu Ihrer ursprünglichen Sitzung zurückzukehren.
Erstellen und Konfigurieren des Ansible-Inventars
Das Ansible-Inventar ist eine Datei, die die Hosts und Hostgruppen definiert, auf denen Befehle, Module und Aufgaben in einem Playbook ausgeführt werden. Es ist wie ein Adressbuch für Ansible und sagt ihm, mit welchen Maschinen es sich verbinden kann.
Zuerst erstellen Sie das Ansible-Konfigurationsverzeichnis:
sudo mkdir -p /etc/ansible
Dieser Befehl erstellt das Verzeichnis /etc/ansible, wenn es noch nicht existiert. Der -p-Schalter stellt sicher, dass kein Fehler ausgegeben wird, wenn das Verzeichnis bereits vorhanden ist.
Nun erstellen und bearbeiten Sie die Inventardatei:
sudo nano /etc/ansible/hosts
Dies öffnet den nano-Texteditor. Wenn Sie mit nano noch nicht vertraut sind, keine Sorge – es ist ein einfacher und benutzerfreundlicher Editor.
Fügen Sie in diese Datei den folgenden Inhalt hinzu:
[local] und [webservers] sind Gruppennamen. Sie können diese verwenden, um Ihre Hosts zu organisieren.
localhost ansible_connection=local sagt Ansible, sich direkt mit dem lokalen Rechner zu verbinden, ohne SSH zu verwenden.
web1 ansible_host=localhost ansible_connection=ssh ansible_user=labex konfiguriert einen Host namens web1. In diesem Lab verbindet es sich ebenfalls mit localhost, verwendet aber SSH und meldet sich als Benutzer labex an.
Um die Datei in nano zu speichern, drücken Sie Ctrl+X, dann Y und schließlich Enter.
Um den Inhalt der Inventardatei zu überprüfen, verwenden Sie den cat-Befehl:
cat /etc/ansible/hosts
Sie sollten den Inhalt sehen, den Sie gerade in die Datei hinzugefügt haben.
Coden ohne Setup – sofort loslegen.
Testen der Ansible-Konnektivität
Nachdem wir Ansible installiert und konfiguriert haben, lassen Sie uns die Konnektivität testen, um sicherzustellen, dass alles korrekt funktioniert.
Zuerst senden wir einen Ping an alle Hosts in unserem Inventar:
ansible all -m ping
Lassen Sie uns diesen Befehl zerlegen:
ansible: Dies ist der Basisbefehl, um Ansible auszuführen.
all: Dies sagt Ansible, auf allen Hosts im Inventar auszuführen.
-m ping: Dies gibt das zu verwendende Ansible-Modul an. Das ping-Modul überprüft, ob die Hosts antworten.
Wenn Sie für beide Hosts "SUCCESS" sehen, bedeutet das, dass Ansible erfolgreich mit diesen Hosts verbinden und kommunizieren kann.
Als nächstes versuchen wir, einen einfachen Befehl auf allen Hosts auszuführen:
ansible all -a "uptime"
Dieser Befehl verwendet Ansible's command-Modul (das Standardmodul, wenn kein Modul mit -m angegeben wird), um den uptime-Befehl auf allen Hosts auszuführen. Der uptime-Befehl zeigt, wie lange das System läuft.
Diese Ausgabe zeigt, dass Ansible den uptime-Befehl erfolgreich auf beiden Hosts ausgeführt hat. Der Status "CHANGED" gibt an, dass der Befehl erfolgreich ausgeführt wurde und eine Ausgabe erzeugt hat.
Tipp: Sie können eine Deprecation-Warnung "Distribution ubuntu 22.04 on host localhost should use /usr/bin/python3" sehen, die darauf zurückzuführen ist, dass der Standard-Python-Interpreter in neueren Versionen von Ubuntu geändert wurde.
Wenn Sie diese Warnung unterdrücken möchten, können Sie die folgende Zeile zur Datei /etc/ansible/hosts hinzufügen:
Diese Zeile sagt Ansible, Python 3 explizit für alle Hosts zu verwenden. Nach dem Hinzufügen dieser Zeile können Sie den Befehl ansible all -m ping erneut ausführen, um zu überprüfen, dass die Warnung nicht mehr angezeigt wird.
Zusammenfassung
Herzlichen Glückwunsch! In diesem Lab haben Sie erfolgreich Ansible auf einem Ubuntu-System installiert und konfiguriert. Sie haben gelernt, wie Sie:
Systempakete aktualisieren, um eine stabile Umgebung für Ansible sicherzustellen.
Ansible mit dem Paketmanager installieren.
Die SSH-Schlüsselauthentifizierung einrichten, um sichere und passwortlose Verbindungen herzustellen.
Eine Ansible-Inventardatei erstellen und konfigurieren, um verwaltete Hosts zu definieren.
Die Ansible-Konnektivität testen und grundlegende Befehle auf verwalteten Hosts ausführen.
Diese grundlegenden Schritte bieten einen soliden Ausgangspunkt für die Verwendung von Ansible zur Automatisierung verschiedener IT-Aufgaben, von einfachen Befehlsausführungen bis hin zu komplexer Konfigurationsverwaltung und Anwendungsbereitstellungen.
Denken Sie daran, dass dieses Lab aus Demonstrationszwecken localhost verwendet hat. In der Realität würden Sie normalerweise mehrere Remote-Hosts verwalten. Die hier gelernten Prinzipien und Befehle können problemlos auf die Verwaltung von Remote-Servern in Ihrer Infrastruktur angewendet werden.
Wenn Sie Ihre Reise mit Ansible fortsetzen, werden Sie seine Macht bei der Optimierung von Vorgängen und der Steigerung der Produktivität in der Systemadministration und in DevOps-Praktiken entdecken. Erwägen Sie als Nächstes die Erkundung von Ansible-Playbooks, die es Ihnen ermöglichen, komplexere Aufgaben und Workflows zu automatisieren.
"
You guys have a really good way to teach. Giving the explanaiton of what am i doing gives an amazing help"
— Alejandro Bacelis
"
Am so grateful for the great instructions that's really friendly to follow to all the users..
Am calling upon anyone interested in learning more should just come to Labex is the best lab."