Ansible wird verwendet, um mehrere Server von einem zentralen Computer aus zu verwalten und zu administrieren. Es handelt sich um ein Server-Management-Tool. Ansible benötigt keine Konfiguration auf der Serverseite wie Chef oder Puppet. Sie installieren Ansible einfach auf Ihrem Computer und verwalten oder administrieren Server über SSH. Es ist sehr einfach und leicht zu bedienen. In diesem Artikel zeige ich Ihnen, wie Sie Ansible auf CentOS 8 installieren und verwenden. Also, fangen wir an.

Installation von Ansible:

Ansible ist im EPEL-Repository von CentOS 8 verfügbar. Sie können Ansible also einfach auf CentOS 8 installieren.

Aktualisieren Sie zunächst den DNF-Paket-Repository-Cache mit dem folgenden Befehl:

$ sudo dnf makecache

Um das EPEL-Repository zu aktivieren, installieren Sie nun das Paket epel-release mit dem folgenden Befehl:

$ sudo dnf install epel-release

Um die Installation zu bestätigen, drücken Sie Y und dann <Enter>.

Das Paket EPEL-release sollte installiert und das EPEL-Repository aktiviert sein.

Nun aktualisieren Sie den DNF-Paket-Repository-Cache erneut mit dem folgenden Befehl:

$ sudo dnf makecache

Nun installieren Sie Ansible mit dem folgenden Befehl:

$ sudo dnf install ansible

Um die Installation zu bestätigen, drücken Sie Y und dann <Enter>.

DNF sollte damit beginnen, alle benötigten Pakete aus dem Internet herunterzuladen.

Sie werden möglicherweise aufgefordert, den GPG-Schlüssel des EPEL-Repositorys zu akzeptieren. Drücken Sie Y und dann <Enter>, um ihn zu akzeptieren.

DNF sollte damit beginnen, alle heruntergeladenen Pakete zu installieren.

Zu diesem Zeitpunkt sollte Ansible installiert sein.

Nun führen Sie den folgenden Befehl aus:

$ ansible –version

Wie Sie sehen können, verwende ich Ansible 2.9.3 und es funktioniert einwandfrei.

Konfigurieren von Servern für Ansible:

Für die Verwaltung oder Administration von Servern mit Ansible muss ein SSH-Server auf den Servern installiert sein und laufen. Der SSH-Port des Servers muss offen sein und die Server sollten vom Ansible-Host aus erreichbar sein. Das ist die einzige Voraussetzung für die Verwendung von Ansible.

In diesem Artikel werde ich 4 virtuelle Maschinen (VMs) verwenden (2 Ubuntu Server 18.04 LTS VMs und 2 Debian 10 VMs), um die Grundlagen der Ansible-Serververwaltung und -Administration zu demonstrieren.

Die 4 VMs sind:

linuxhint-f1a46 – 192.168.20.161
linuxhint-8ee7a – 192.168.20.166
linuxhint-s40 – 192.168.20.171
linuxhint-s41- 192.168.20.170

Sie können die IP-Adressen der Server verwenden, um sie mit Ansible zu verwalten oder zu administrieren. Sie können auch DNS-Namen der Server verwenden.

In diesem Artikel werde ich die Datei /etc/hosts für die DNS-Auflösung der IP-Adressen der VMs verwenden.

Wenn Sie mir folgen wollen, öffnen Sie Ihre /etc/hosts-Datei mit dem Texteditor vi wie folgt:

$ sudo vi /etc/hosts

Nun fügen Sie die Zeilen ein, die im Screenshot unten markiert sind und speichern Sie die Datei.

Erzeugen Sie nun einen SSH-Schlüssel auf Ihrem CentOS 8 Ansible-Host wie folgt:

$ ssh-keygen

Drücken Sie <Eingabe>.

Drücken Sie <Eingabe>.

Drücken Sie <Eingabe>.

Der SSH-Schlüssel sollte generiert werden.

Nun müssen Sie den SSH-Schlüssel auf alle Server hochladen, die Sie mit Ansible verwalten wollen.

Um den SSH-Schlüssel auf den vm1.linuxhint.local Server zu kopieren, führen Sie folgenden Befehl aus:

$ ssh-copy-id [email protected]

Nun geben Sie yes ein und drücken Sie dann <Enter>.

Nun geben Sie das Login-Passwort der vm1.linuxhint.local VM ein und drücken <Enter>.

Der SSH-Schlüssel sollte kopiert werden.

Gleiches gilt für die Server vm2.linuxhint.local, vm3.linuxhint.local und vm4.linuxhint.local.

$ ssh-copy-id [email protected]

$ ssh-copy-id [email protected]

$ ssh-copy-id [email protected]

Wenn Sie den SSH-Schlüssel auf die VMs kopiert haben, sollten Sie in der Lage sein, SSH ohne Passwort zu benutzen, wie Sie auf dem Screenshot unten sehen können.

Nun führen Sie den folgenden Befehl auf jedem Server aus, um sudo-Zugriff ohne Passwort für den Login-Benutzer zu ermöglichen. Dies ist erforderlich, damit Ansible alle Root-Befehle ausführen kann.

$ echo „$(whoami) ALL=(ALL) NOPASSWD:ALL“ | sudo tee /etc/sudoers.d/$(whoami)

Alle Server sind nun bereit, von Ansible aus konfiguriert oder verwaltet zu werden.

Verwendung von Ansible:

Ansible führt eine Liste aller Hosts, die es verwaltet, in einer Datei namens Inventar-Datei. Die Inventarisierungsdatei von Ansible ist eine einfache Textdatei.

Lassen Sie uns zuerst ein neues Ansible-Projektverzeichnis ~/ansible/ erstellen, dann werden wir unsere Inventarisierungsdatei erstellen.

$ mkdir ~/ansible

Nun navigieren Sie zum Verzeichnis ~/ansible.

$ cd ~/ansible

Nun erstellen Sie eine Ansible-Inventarisierungsdatei wie folgt. Sie können diese Datei beliebig nennen. Ich werde sie hosts nennen.

$ vi hosts

Nun können Sie Ihre Server wie folgt hinzufügen. Hier wird die Option ansible_user verwendet, um den Benutzer zu definieren, den Ansible für die Ausführung von Befehlen auf diesen Servern verwenden wird. Normalerweise ist es der Login-Benutzer des Servers.

Sie können auch IP-Adressen und DNS-Namen der Server in der Inventarisierungsdatei mischen.

Sie können auch Server gruppieren. Hier habe ich 2 Gruppen, webserver und dbserver.

In der Gruppe webserver habe ich die Server vm1 und vm2 hinzugefügt. In der Gruppe dbserver habe ich die Server vm3 und vm4 hinzugefügt.

Nachdem die Inventarisierungsdatei erstellt wurde, können Sie die Inventarisierungsdatei mit der Option -i von Ansible verwenden.

Sie können alle Hosts aus der Inventarisierungsdatei wie folgt auflisten:

$ ansible -i hosts –list-hosts all

Sie können wie folgt überprüfen, ob alle Hosts aktiv sind:

$ ansible -i hosts –list-hosts -m ping all

Wie Sie sehen können, sind alle Hosts aktiv.

Sie können auch alle Hosts in einer einzelnen Gruppe anpingen.

$ ansible -i hosts –list-hosts -m ping webserver

Sie können Shell-Befehle mit Ansible wie folgt ausführen:

$ ansible -i hosts -m shell -a ‚command‘ <all|groupName>

Sie können Shell-Befehle auch wie folgt ausführen (mit sudo-Rechten).

$ ansible -i hosts -b –become-method=sudo -m shell -a ‚command‘ &lt;all
|groupName&gt;

Zum Beispiel können Sie den APT-Paket-Repository-Cache auf den Hosts in der Webserver-Gruppe mit Ansible wie folgt aktualisieren:

$ ansible -i hosts -b –become-method=sudo -m shell -a ‚apt update‘ webserver

Wie Sie sehen können, wird der APT-Paket-Repository-Cache für alle Hosts in der Webserver-Gruppe aktualisiert.

Lassen Sie uns versuchen, Apache 2 Webserver auf allen Hosts der Webserver-Gruppe zu installieren.

$ ansible -i hosts -b –become-method=sudo -m shell -a
‚apt install -y apache2‘ webserver

Apache Webserver sollte auf allen Hosts der Webservergruppe installiert werden.

Wie Sie sehen können, funktioniert der Apache-Webserver auf allen Hosts der Webserver-Gruppe.

$ ansible -i hosts -b –become-method=sudo -m shell -a ‚curl -sI
http://localhost‘ webserver

Auf die gleiche Weise können Sie jeden Befehl auf allen Hosts in der dbserver-Gruppe ausführen.

$ ansible -i hosts -m shell -a ‚lsb_release -a‘ dbserver

Sie können auch Ansible Playbook verwenden, um Ihre Server einfacher zu verwalten. Ansible Playbook ist nicht Gegenstand dieses Artikels. Lesen Sie die Dokumentation von Ansible, um weitere Informationen zu Ansible Playbook zu erhalten.

Danke, dass Sie diesen Artikel gelesen haben.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.