GNU/Linux >> LINUX-Kenntnisse >  >> Linux

So installieren und testen Sie Ansible unter Linux

Ansible ist ein weit verbreitetes Konfigurationsverwaltungstool, das in Python geschrieben ist und dabei hilft, einzelne oder mehrere Maschinen gleichzeitig zu konfigurieren. Ansible kann verwendet werden, um die folgenden Aufgaben auszuführen

  • Neue Konfiguration einzelner oder mehrerer Knoten
  • Bereitstellungen
  • Konfigurationsänderungen
  • Patching
  • Dienstverwaltung
  • und viele mehr

Ansible ist wegen seiner Einfachheit weit verbreitet. Ansible-Code ist ebenfalls in der Sprache YAML geschrieben, es muss kein Agent auf einem Remote-Computer installiert werden. Ansible verwendet Port 22 (SSH), um eine Verbindung zu einem Remotecomputer herzustellen und die erforderlichen Änderungen vorzunehmen.

Jeder Computer, der sich über Port 22 mit dem entfernten Computer verbinden kann, kann ein steuernder Knoten werden. Auf einem steuernden Knoten können Sie Ansible installieren, und ein verwalteter Knoten wird von steuernden Knoten verwaltet.

Werfen wir einen Blick auf die Installation von Ansible auf dem Controller Node.

Installieren Sie Ansible unter CentOS 7: 

Da Python die einzige Voraussetzung für die Installation von Ansible ist, installieren wir Python, indem wir den folgenden Befehl ausführen.

$sudo yum install python3 -y

Um Ansible unter CentOS 7 zu installieren, stellen Sie zunächst sicher, dass das CentOS 7 EPEL-Repository installiert ist. Führen Sie den folgenden Befehl aus, um das Epel-Repository zu installieren.

$sudo yum install epel-release

Aktualisieren Sie den Systempaketindex, indem Sie den folgenden Update-Befehl ausführen.

$sudo yum update -y

Sobald das Repository installiert ist, installieren Sie Ansible mit dem Yum-Paketmanager. Führen Sie den unten genannten Befehl aus, um Ansible zu installieren.

$sudo yum install ansible -y

Überprüfen Sie, ob Ansible ordnungsgemäß installiert ist und seine Version.

$ansible -v

Installieren Sie Ansible unter CentOS 8:

Schauen wir uns die Installationsschritte für CentOS 8 an. Lassen Sie uns Python unter CentOS 8 installieren.

$sudo dnf install python3

Sobald Python installiert ist, installieren wir das EPEL-Repository, indem Sie den folgenden Befehl ausführen.

$sudo dnf install epel-release -y

Aktualisieren Sie den Systempaketindex, indem Sie den folgenden Update-Befehl ausführen.

$sudo dnf update -y

Wir sind jetzt bereit, Ansible zu installieren. Führen Sie den folgenden Befehl aus, um Ansible zu installieren.

$sudo dnf install ansible -y

Überprüfen Sie, ob Ansible ordnungsgemäß installiert ist und seine Version.

$ansible -v

Installieren Sie Ansible auf Ubuntu:

Python ist heutzutage in den meisten Linux-Distributionen ein Standardpaket. Wenn Sie Python nicht installiert haben, führen Sie den folgenden Befehl aus, um das Python-Paket zu installieren.

$sudo apt-get install python3

Um Ansible in Ubuntu zu installieren, installieren wir zuerst das Repository, indem wir den folgenden Befehl ausführen.

$sudo apt-add-repository ppa:ansible/ansible

Aktualisieren Sie den Systempaketindex, indem Sie den folgenden Update-Befehl ausführen.

$sudo apt-get update -y

Installieren Sie jetzt Ansible.

$sudo apt-get install -y ansible

Überprüfen Sie, ob Ansible ordnungsgemäß installiert ist und seine Version.

$ansible -v

Installieren Sie Ansible mit Python PIP auf CentOS, Debian und Ubuntu:

Unabhängig davon, welches Betriebssystem Sie verwenden, können Sie Ansible mit dem Python-Paketinstallationsprogramm installieren. Lassen Sie uns den folgenden Befehl ausführen, um python3-pip zu installieren.

Für CentOS 7 und darunter:

$sudo yum install python3 python3-pip -y

Für CentOS 8:

$sudo dnf install python3 python3-pip -y

Für Ubuntu und Debian:

$sudo apt-get install python3 python3-pip

Da wir Python und Pip installiert haben, führen wir den folgenden Befehl auf einem beliebigen Betriebssystem aus, um Ansible zu installieren.

$sudo pip3 install ansible

Überprüfen Sie, ob Ansible ordnungsgemäß installiert ist und seine Version.

$ansible -v

Ansible Controller-Hosts konfigurieren:

Wir müssen zuerst die "hosts"-Datei einrichten, bevor wir beginnen können, mit unseren anderen Knoten zu kommunizieren. Diese Datei enthält alle IP-Adressen oder Hostnamen der verwalteten Knoten.

Hinweis Hinweis:Es ist nicht immer erforderlich, eine Hosts-Datei zu verwenden, um eine Verbindung zu verwalteten Knoten herzustellen. Aber dann müssen wir jedes Mal die IP oder den Hostnamen des verwalteten Knotenservers verwenden, während wir jeden Befehl ausführen.

Erstellen Sie die Datei (sofern noch nicht vorhanden) mit Root-Rechten, indem Sie den folgenden Befehl ausführen:

$sudo touch /etc/ansible/hosts

Bevor wir in die Datei schreiben, werfen wir einen Blick auf die Beispiel-Hostdatei:

[group_name]
alias ansible_ssh_host=your_node_server_ip

Eine hosts-Datei sollte der obigen Syntax folgen. Werfen wir einen Blick auf jeden Parameter.

[Gruppenname] :Dieser Parameter erstellt eine Gruppe. Alle verwalteten Knoten-IP-Adressen oder Hostnamen unter dem Parameter group_name fallen in dieselbe Gruppe. Wenn wir beispielsweise mehrere Webserver in unserer Infrastruktur haben, können wir hier alle IP-Adressen oder die Hostnamen des verwalteten Knotens hinzufügen.

Alias :Dieser Parameter wird verwendet, um dem verwalteten Knotenserver einen Alias ​​zu geben, um den verwalteten Knotenserver zu identifizieren. Wenn wir beispielsweise mehrere Webserver in unserer Infrastruktur haben, können wir host1, host2, host3 als Alias ​​angeben. Der Hauptvorteil der Angabe eines Alias ​​besteht darin, dass wir beim Ausführen des Ansible-Befehls zum Ändern der Konfiguration eines einzelnen Servers einen Alias ​​verwenden können, um die erforderliche Aufgabe auf dem Server zu identifizieren und auszuführen.

ansible_ssh_host=your_node_server_ip :Dieser Parameter verweist den Alias ​​auf die IP-Adresse oder den Hostnamen eines verwalteten Knotens.

Wir werden CentOS 8 als kontrollierten Knoten mit Ansible verwenden. Wie oben erwähnt, verwendet Ansible Port 22 des Remote-Hosts für die Verbindung.

Wir gehen davon aus, dass die IP-Adressen unseres von CentOS verwalteten Knotenservers 192.168.0.2, 192.168.0.3 und 192.168.0.4 lauten.

Damit der Ansible-Controller-Knoten mit verwalteten Knoten kommunizieren kann, müssen wir bestätigen, dass verwaltete Knoten über Port 22 zugänglich sind, der ein SSH-Port ist. Führen Sie den folgenden Befehl aus, um die Konnektivität nacheinander auf allen drei verwalteten Knoten vom Controller zu bestätigen.

$ssh [email protected]192.168.0.2
$ssh [email protected]192.168.0.3
$ssh [email protected]192.168.0.4

Sie werden zur Eingabe des Passworts des Root-Benutzers aller Knoten aufgefordert. Ansible funktioniert sehr reibungslos, wenn Sie eine passwortlose Authentifizierung zwischen dem Ansible-Controller und den verwalteten Knoten konfiguriert haben. Mit verschiedenen Parametern im Ansible-Befehl kann auch die Passwortauthentifizierung funktionieren.

Da wir die SSH-Konnektivität zwischen dem Ansible-Controller und verwalteten Knoten konfiguriert haben, konfigurieren wir die Hosts-Datei so, dass sie eine Verbindung zu allen verwalteten Knoten herstellt. Wie bereits erwähnt, können wir mehrere Node-Server-Aliase in einer einzelnen Gruppe hinzufügen. In diesem Fall fügen wir alle drei Knoten hinzu und weisen jeweils einen Alias ​​als host1, host2 und host3 zu. Unsere Hosts-Datei sollte nach dem Hinzufügen aller verwalteten Knotendetails wie unten aussehen. Führen Sie den folgenden Befehl aus, um die zuvor erstellte Hostdatei zu bearbeiten.

Öffnen Sie die Datei mit Root-Rechten, indem Sie den folgenden Befehl ausführen:

$sudo vi /etc/ansible/hosts

Lassen Sie uns die unten erwähnte Konfiguration in der Hosts-Datei hinzufügen.

[node_servers]
host1 ansible_ssh_host=192.168.0.2
host2 ansible_ssh_host=192.168.0.3
host3 ansible_ssh_host=192.168.0.4

Hier haben wir alle verwalteten Knoten-IPs und Aliase in einer Gruppe namens node_servers hinzugefügt .

Versuchen wir jetzt, vom Ansible-Controller aus eine Verbindung zu verwalteten Knoten herzustellen.

$ansible -m ping node_servers

Der obige Befehl verwendet einen Modul-Ping, um eine Verbindung zur Gruppe „node_servers“ herzustellen, die wir in der Hosts-Datei oben definiert haben.

Fehler können aus verschiedenen Gründen auftreten.

  1. Ansible versucht standardmäßig, mit Ihrem aktuellen Nutzernamen eine Verbindung zum verwalteten Knoten herzustellen, wenn Sie keinen angegeben haben. Wenn dieser Nutzer auf dem Node-Server nicht vorhanden ist, erhalten Sie die folgende Fehlermeldung.
  2. Wenn SSH-Port 22 auf verwalteten Knoten nicht für Verbindungen geöffnet ist. (Wie bereits erwähnt, verbindet sich Ansible über den SSH-Port)
  3. Wenn die IP in der Hosts-Datei nicht korrekt ist.

Wenn eine der oben genannten Bedingungen fehlschlägt, tritt der folgende Fehler auf.

host1 | UNREACHABLE! => {
    "changed": false,
    "msg": "Failed to connect to the host via ssh.",
    "unreachable": true
}
host2 | UNREACHABLE! => {
    "changed": false,
    "msg": "Failed to connect to the host via ssh.",
    "unreachable": true
}
host3 | UNREACHABLE! => {
    "changed": false,
    "msg": "Failed to connect to the host via ssh.",
    "unreachable": true
}

Sagen wir Ansible ausdrücklich, dass es eine Verbindung zu verwalteten Knoten in der Gruppe „node_servers“ mit dem Benutzer james herstellen soll. Erstellen Sie das Verzeichnis group_vars wie unten beschrieben.

$sudo mkdir /etc/ansible/group_vars

Die Dateien in diesem Verzeichnis werden speziell zum Konfigurieren von Variablen verwendet, die wir in unseren Ansible-Playbooks verwenden können.

Lassen Sie uns eine Variablendatei für unser Setup erstellen, indem Sie den folgenden Befehl ausführen:

$sudo vim /etc/ansible/group_vars/node_servers.yml


Fügen Sie den folgenden Code zur Datei hinzu:

---
ansible_ssh_user: james

YML-Datei beginnt immer mit „---“ in der ersten Zeile. Lassen Sie uns diese Datei speichern und schließen, wenn Sie fertig sind. Jetzt verwendet Ansible immer die james Benutzer für die Gruppe node_servers, unabhängig vom aktuellen Benutzer, den Sie zum Ausführen eines Befehls verwenden.

Überprüfen Sie die Verbindung des verwalteten Knotens:

Nachdem wir nun unsere Hosts eingerichtet und genügend Konfigurationsdetails haben, damit wir erfolgreich eine Verbindung zu unseren verwalteten Knoten herstellen können, können wir denselben Befehl ausprobieren, den wir zuvor ausgeführt haben.

$ansible -m ping servers 

Ansible gibt die Ausgabe wie folgt zurück:

host1 | SUCCESS => {
    "changed": false,
    "ping": "pong"
}
host2 | SUCCESS => {
    "changed": false,
    "ping": "pong"
}

host3 | ERFOLG => {
    "changed":false,
    "ping":"pong"
}

Dies ist ein grundlegender Test, um sicherzustellen, dass Ansible eine Verbindung zu seinen verwalteten Knoten hat.

Schlussfolgerung: 

Es ist nicht erforderlich, das CentOS-Betriebssystem für verwaltete Knoten zu verwenden. Sie können dieselbe Testkonfiguration verwenden, die wir oben für CentOS, RedHat, Ubuntu und alle anderen Linux-Distributionen verwendet haben.


Linux
  1. So installieren und verwenden Sie Flatpak unter Linux

  2. So installieren und verwenden Sie Traceroute unter Linux

  3. So installieren und konfigurieren Sie Ansible unter Rocky Linux/CentOS 8

  4. So installieren Sie Ansible unter CentOS 8 Linux

  5. So installieren Sie Ansible unter Oracle Linux 8

Installieren und konfigurieren Sie Ansible unter Linux

So installieren und verwenden Sie phpMyAdmin unter Linux

So installieren und verwenden Sie den fd-Befehl unter Linux

So installieren und verwenden Sie Nu Shell unter Linux

So installieren Sie Ansible auf Ubuntu und anderen Linux-Distributionen

So installieren Sie Ansible unter Linux Mint 20