Zurück zum Blog

Installieren und Konfigurieren von Ansible auf Ubuntu 20.04

Installieren und Konfigurieren von Ansible auf Ubuntu 20.04

Wenn Sie ein Systemadministrator sind, ist es wichtig, dass Sie eine konsistente Methode zur Verwaltung aller von Ihnen verwendeten Server und Computer haben. Konfigurationsmanagementsysteme können diesen Prozess in hohem Maße rationalisieren. Sie verwalten alle Systeme effizient von einem zentralen Ort aus.

Unter Linux stehen mehrere Konfigurationsmanagementsysteme zur Verfügung. Zum Beispiel Puppet, Chef, Ansible, Bcfg2, Juju, CFEngine, usw. Während Tools wie Puppet und Chef tendenziell komplexer und fortschrittlicher sind, bietet Ansible Einfachheit und Benutzerfreundlichkeit. Sie müssen keine zusätzliche Client-Software auf den Nodes installieren, damit Ansible funktioniert. Stattdessen verwendet Ansible SSH, um Systeme zu verwalten und zu automatisieren. Ansible ist Open-Source-Software. Es ist außerdem hochgradig skalierbar, konsistent und zuverlässig.

Diese Anleitung zeigt, wie man Ansible installiert und konfiguriert auf Ubuntu 20.04.

Ansible auf Ubuntu

Ansible kann drei Arten von Automatisierung durchführen:

  • Bereitstellung: Es kann verschiedene Server entsprechend den Anforderungen der Infrastruktur einrichten.

  • Konfigurationsmanagement: Es kann verschiedene Konfigurationsänderungen an Servern vornehmen. Zum Beispiel das Starten und Stoppen von Diensten, das Installieren von Anwendungen und Updates, das Implementieren von Sicherheitsrichtlinien usw.

  • Anwendungsbereitstellung: Es erleichtert DevOps durch die automatisierte Bereitstellung intern entwickelter Anwendungen auf dem Produktivsystem.

Ansible kann in fast jeder IT-Umgebung – seien es gehostete oder traditionelle Server, Virtualisierungsplattformen oder in der Cloud – perfekt funktionieren. Es unterstützt auch die Verwaltung verschiedener Systeme wie Datenbanken, Netzwerke, Firewalls, Speichergeräte und viele andere. CloudSigma unterstützt auch Ansible für unsere Cloud-Infrastruktur.

Voraussetzungen

Für diese Anleitung benötigen wir ein paar Maschinen:

  • Control-Node: Der Control-Node ist der zentrale Knoten, der sich mit allen Host-Nodes verbindet, Aufgaben erteilt und verschiedene Aspekte des Systems verwaltet. Der Control-Node kann alles sein – ein lokaler Rechner oder ein Remote-Server.

  • Host-Node: Ansible-Hosts sind die Maschinen, die der Ansible-Control-Node automatisieren kann.

Wie der Titel der Anleitung vermuten lässt, sollten alle diese Maschinen mit Ubuntu 20.04 und den neuesten Paketen konfiguriert sein. Hier ist eine Kurzanleitung zur Einrichtung eines Ubuntu-Servers. Da Ansible SSH verwendet, um sich mit Maschinen zu verbinden, müssen alle Host-Nodes ordnungsgemäß mit SSH-Schlüsseln für den Control-Node eingerichtet sein. Stellen Sie sicher, dass bei allen Host-Nodes der öffentliche SSH-Schlüssel des Control-Nodes in die Datei authentication_keys eingetragen ist. Folgen Sie unserem Tutorial, um zu erfahren, wie Sie SSH-Schlüssel generieren und zu Linux-Servern hinzufügen.

Schritt 1: Installation von Ansible

Im Fall von Ubuntu ist keine zusätzliche Paket- oder Repository-Konfiguration erforderlich. Ansible ist direkt über die offiziellen Ubuntu-Paketserver verfügbar. Das Durchführen von Änderungen auf Systemebene erfordert administrativen Zugriff – den Root-Benutzer oder einen Nicht-Root-Benutzer mit sudo-Rechten. Die sudoers-Datei verwaltet die sudo-Berechtigungen für Benutzer und Gruppen.

Zuerst installieren wir Ansible auf dem Computer, der als Control-Node dienen soll. Um Ansible auf dem Control-Node zu installieren, führen Sie die folgenden Befehle aus:

Control apt update

Install ansible

Wenn Sie ein Passwort als SSH-Authentifizierungsmechanismus verwenden möchten, müssen Sie das Paket sshpass installiert haben:

Install sshpass

Schritt 2: Konfigurieren der Inventory-Datei

In Ansible enthält die Inventory-Datei Informationen über alle hosts, die Ansible verwalten wird. Es können Dutzende oder Hunderte von Servern sein, die in der Inventory-Datei registriert sind. Die Server können auch in Gruppen und Untergruppen unterteilt werden. Generell wird die Inventory-Datei verwendet, um Variablen festzulegen, die nur für die spezifischen hosts oder Gruppen gültig sind. Dies ist eine nützliche Technik beim Schreiben von Playbooks und Templates. Bestimmte Variablen können auch beeinflussen, wie ein Playbook ausgeführt wird.

Ansible wird mit einer Standard-Inventory-Datei geliefert. Öffnen Sie die Datei zunächst in einem Texteditor:

Ansible hosts file

Standardmäßig enthält die Inventory-Datei verschiedene Beispiele als Referenz. Hier ist ein Beispiel mit einer Gruppe namens servers, die drei verschiedene Server enthält. Die Variable ansible_python_interpreter definiert den Python-Interpreter für alle hosts, die im Inventory enthalten sind. Mit der Direktive ansible_user, können wir das Benutzerkonto deklarieren, mit dem sich Ansible verbindet:

Ansible hosts file updated

Speichern Sie als Nächstes die Datei und schließen Sie den Editor. Um das Inventory zu überprüfen, führen Sie den folgenden Befehl aus:

Die Ausgabe sollte in etwa so aussehen:

Ansible inventory list

Schritt 3: Verbindungstest

Nach dem Konfigurieren der Inventory-Datei müssen wir testen, ob sich Ansible über SSH mit diesen Servern verbinden kann. Wir können dies tun, indem wir einfach alle Host-Knoten anpingen. Vom Control-Knoten aus pingen Sie alle Host- Knoten an:

Das Ping-Modul überprüft die folgenden Dinge:

  • Erreichbarkeit des Hosts

  • Gültigkeit der SSH-Anmeldedaten

  • Hosts können Ansible-Module mit Python ausführen

Die Ausgabe sollte in etwa so aussehen:

Ansible ping all

Wenn die Antwort von einem bestimmten Knoten pong lautet, bedeutet dies, dass der Knoten bereit ist, Ansible-Befehle und Playbooks auf dem Server auszuführen.

Schritt 4: Ausführen von Ad-hoc-Befehlen

Dies ist ein optionaler Schritt. Er kann jedoch nützlich sein, um die volle Funktionalität von Ansible auf den Remote-Servern zu überprüfen. Dieser Abschnitt kann auch als grundlegende Einführung in die weitere Nutzung und Konfiguration von Ansible dienen. Sobald wir die Konnektivität zu den Knoten bestätigt haben, können wir mit der Ausführung von Ad-hoc-Befehlen und Playbooks beginnen. Jeder Befehl, den Sie normalerweise auf den Remote-Servern ausführen würden, kann mit Ansible auf allen Servern ausgeführt werden.

Führen Sie hier den folgenden Befehl aus. Er überprüft die Festplattenbelegung auf allen Knoten gleichzeitig:

Ansible all df cmd

Wir können auch verschiedene Ansible-Module über die Ad-hoc-Befehlsfunktion ausführen, genau wie wir das ping-Modul zum Testen ausgeführt haben. Zum Beispiel arbeitet das apt-Modul mit dem APT-Paketmanager unter Ubuntu. Es kann Pakete auf einem Remote-Ubuntu-Knoten verwalten. Beachten Sie, dass Root-Rechte erforderlich sind, um Änderungen auf Systemebene vorzunehmen. Der Remote-Knoten muss den Root-Login zulassen oder der Benutzer muss die Berechtigung zur Ausführung administrativer Aufgaben haben.

Im folgenden Beispiel installiert Ansible Nginx auf allen Host-Knoten:

Wie wäre es, Befehle nur auf einem einzelnen Server auszuführen? Wir verwenden den Server-Spitznamen (der in der Inventory-Datei zugewiesen wurde), um den Server zu spezifizieren:

Adhoc cmd df selected host

Wir können auch mehrere Server angeben. Deklarieren Sie jeden Zielserver-Spitznamen mit einem Doppelpunkt als Trennzeichen:

Adhoc cmd df multiple hosts

Fazit

In dieser Anleitung haben wir Ihnen Schritt für Schritt gezeigt, wie Sie Ansible installieren und eine Inventory-Datei konfigurieren, um Ad-hoc-Befehle vom Ansible-Control-Node auszuführen. Einmal konfiguriert, kann der Control-Node jeden Befehl oder jedes Playbook ausführen, das Sie auf den Hosts ausführen möchten.

Viel Spaß beim Computing!

author

Pranay Kapgate

Autor · CloudSigma

Preslav Dobrev ist ein kreativer Designer bei CloudSigma und konzentriert sich auf eine konsistente Unternehmensidentität durch traditionelle und innovative Marketingkanäle. Er versteht es meisterhaft, künstlerische Vision mit strategischem Marketing zu verbinden, um wirkungsvolle Markengeschichten zu schaffen.

Kommentare

Noch keine Kommentare. Schreiben Sie den ersten.