Ansible installieren:
Ansible ist im EPEL-Repository von CentOS 8 verfügbar. So können Sie Ansible ganz einfach auf CentOS 8 . installieren.
Aktualisieren Sie zunächst den DNF-Paket-Repository-Cache mit dem folgenden Befehl:
$ sudo dnf makecache
Um nun das EPEL-Repository zu aktivieren, installieren Sie das epel-release Paket mit folgendem Befehl:
$ sudo dnf install epel-release
Um die Installation zu bestätigen, drücken Sie Ja und drücke dann
epel-release Paket sollte installiert und das EPEL-Repository sollte aktiviert sein.
Aktualisieren Sie nun den DNF-Paket-Repository-Cache erneut mit dem folgenden Befehl:
$ sudo dnf makecache
Installieren Sie nun Ansible mit dem folgenden Befehl:
$ sudo dnf install ansible
Um die Installation zu bestätigen, drücken Sie Ja und drücke dann
DNF sollte damit beginnen, alle erforderlichen Pakete aus dem Internet herunterzuladen.
Möglicherweise werden Sie aufgefordert, den GPG-Schlüssel des EPEL-Repositorys zu akzeptieren. Drücken Sie Ja und drücke dann
DNF sollte mit der Installation aller heruntergeladenen Pakete beginnen.
An dieser Stelle sollte Ansible installiert sein.
Führen Sie nun den folgenden Befehl aus:
$ ansible --versionWie Sie sehen können, verwende ich Ansible 2.9.3 und es funktioniert einwandfrei.
Server für Ansible konfigurieren:
Um Server mit Ansible zu verwalten oder zu verwalten, muss der SSH-Server installiert sein und auf den Servern ausgeführt werden. Der SSH-Port des Servers muss geöffnet 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) zur Demonstration der Grundlagen der Ansible-Serververwaltung und -administration.
Die 4 VMs sind:
linuxhint-f1a46 - 192.168.20.161linuxhint-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 diese mit Ansible zu verwalten oder zu administrieren. Sie können auch DNS-Namen der Server verwenden use.
In diesem Artikel verwende ich die /etc/hosts Datei zur DNS-Auflösung der IP-Adressen der VMs.
Wenn du mitmachen möchtest, öffne dein /etc/hosts Datei mit dem vi-Texteditor wie folgt:
$ sudo vi /etc/hosts
Fügen Sie nun die Zeilen wie im Screenshot unten markiert hinzu und speichern Sie die Datei.
Generieren Sie nun wie folgt einen SSH-Schlüssel auf Ihrem CentOS 8 Ansible-Host:
$ ssh-keygen
Drücken Sie
Drücken Sie
Drücken Sie
Der SSH-Schlüssel sollte generiert werden.
Jetzt müssen Sie den SSH-Schlüssel auf alle Server hochladen, die Sie mit Ansible verwalten möchten.
So kopieren Sie den SSH-Schlüssel in den vm1.linuxhint.lokal server, führen Sie den folgenden Befehl aus:
$ ssh-copy-id [email protected]
Geben Sie jetzt ein Ja und drücke dann
Geben Sie nun das Login-Passwort des vm1.linuxhint.lokal VM und drücken Sie
Der SSH-Schlüssel sollte kopiert werden.
Machen Sie dasselbe für die vm2.linuxhint.lokal, vm3.linuxhint.lokal und vm4.linuxhint.lokal Server.
$ ssh-copy-id [email protected]$ ssh-copy-id [email protected]
$ ssh-copy-id [email protected]
Sobald Sie den SSH-Schlüssel auf die VMs kopiert haben, sollten Sie ohne Passwort per SSH hineingehen können, wie Sie im Screenshot unten sehen können.
Führen Sie nun auf jedem Server den folgenden Befehl aus, um dem Login-Benutzer den sudo-Zugriff ohne Passwort zu ermöglichen. Dies ist erforderlich, damit Ansible Root-Befehle ausführen kann.
$ echo "$(whoami) ALLE=(ALL) NOPASSWD:ALL" | sudo tee /etc/sudoers.d/$(whoami)
Alle Server können nun von Ansible aus konfiguriert oder verwaltet werden.
Ansible verwenden:
Ansible führt eine Liste aller von ihm verwalteten Hosts in einer Datei namens Inventardatei. Die Ansible-Inventardatei ist nur eine einfache Textdatei.
Erstellen wir ein neues Ansible-Projektverzeichnis ~/ansible/ Zuerst erstellen wir unsere Inventardatei.
$ mkdir ~/ansible
Navigieren Sie nun zum ~/ansible Verzeichnis.
$ cd ~/ansible
Erstellen Sie nun eine Ansible-Inventardatei wie folgt. Sie können diese Datei beliebig nennen. Ich werde es nennen Gastgeber.
$ vi Gastgeber
Jetzt können Sie Ihre Server wie folgt hinzufügen. Hier, ansible_user Option wird verwendet, um den Benutzer zu definieren, den Ansible verwendet, um Befehle auf diesen Servern auszuführen. Es ist normalerweise der Login-Benutzer des Servers.
Sie können auch IP-Adressen und DNS-Namen der Server in der Inventardatei mischen.
Sie können auch Server gruppieren. Hier habe ich 2 Gruppen, Webserver und dbserver.
In dem Webserver Gruppe, habe ich hinzugefügt vm1 und vm2 Server. In dem dbserver Gruppe, habe ich hinzugefügt vm3 und vm4 Server.
Sobald die Inventardatei erstellt wurde, können Sie die Inventardatei mit dem -ich Option von Ansible.
Sie können alle Hosts aus der Inventardatei 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, sind alle Hosts aktiv.
Sie können auch alle Hosts 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 'Befehl'Sie können Shell-Befehle (mit sudo-Berechtigungen) auch wie folgt ausführen.
$ ansible -i hosts -b --become-method=sudo -m shell -a 'Befehl'Sie können beispielsweise 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, wird der Cache des APT-Paket-Repositorys für alle Hosts im Webserver Gruppe.
Versuchen wir, den Apache 2-Webserver auf allen Hosts des zu installieren Webserver Gruppe.
$ ansible -i hosts -b --become-method=sudo -m shell -a'apt install -y apache2' Webserver
Der Apache-Webserver sollte auf allen Hosts des Webserver Gruppe.
Wie Sie sehen, arbeitet der Apache-Webserver auf allen Hosts in Webserver Gruppe.
$ ansible -i hosts -b --become-method=sudo -m shell -a 'curl -sIhttp://localhost' Webserver
Auf die gleiche Weise können Sie jeden Befehl auf allen Hosts in . ausführen dbserver Gruppe.
$ 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 für weitere Informationen zum Ansible Playbook.
Vielen Dank für das Lesen dieses Artikels.