Ansible ist ein kostenloses und von Red Hat gesponsertes Open-Source-Automatisierungstool. Mit Ansible können wir Linux- und Windows-Systeme verwalten und konfigurieren, ohne dass Agenten darauf installiert werden müssen. Es funktioniert grundsätzlich mit dem ssh-Protokoll und kann mehr als hundert Server gleichzeitig konfigurieren. In der Ansible-Terminologie wird das System, auf dem Ansible installiert ist, als Kontrollhost /Knoten bezeichnet, und die von Ansible verwalteten Systeme werden als verwaltete Hosts bezeichnet.
In diesem Beitrag besprechen wir, wie die neueste Version von Ansible auf Rocky Linux 8 installiert wird. Im Folgenden finden Sie meine Ansible-Lab-Setup-Details:
- Kontrollknoten – 192.168.1.170 – Minimal Rocky Linux 8
- Verwalteter Host 1 – 192.168.1.121 – Ubuntu 20.04 LTS
- Verwalteter Host 2 – 192.168.1.122 – Rocky Linux 8
- sysops-Benutzer mit Administratorrechten
Installieren Sie Ansible über den dnf-Befehl
1) Aktualisieren Sie das System
Um rocky linux 8 zu aktualisieren, führen Sie den Befehl unterhalb des Befehls dnf aus.
$ sudo dnf update -y
Sobald alle Updates installiert sind, starten Sie Ihr System einmal neu.
$ sudo reboot
2) EPEL-Repository konfigurieren
Das Ansible-Paket und seine Abhängigkeiten sind in den standardmäßigen Paket-Repositorys von Rocky Linux 8 nicht verfügbar. Um Ansible über dnf zu installieren, müssen wir also zuerst das EPEL-Repository konfigurieren.
Führen Sie die folgenden Befehle aus,
$ sudo dnf install -y epel-release
3) Installieren Sie Ansible mit dem Befehl dnf
Jetzt sind wir bereit, Ansible mit dem Befehl dnf zu installieren, führen Sie
aus$ sudo dnf install ansible -y
Sobald Ansible und seine Abhängigkeiten erfolgreich installiert sind. Überprüfen Sie die Version, indem Sie den folgenden Befehl ausführen:
$ ansible --version
Ansible-Installation mit Pip
Wenn Sie nach der neuesten Version von Ansible suchen, installieren Sie Ansible mit Pip. Siehe die folgenden Schritte.
Hinweis:Zum Zeitpunkt der Erstellung dieses Beitrags ist Ansible 4.3.0 verfügbar
1) Alle Updates installieren
Installieren Sie alle verfügbaren Updates mit dem folgenden Befehl,
$ sudo dnf update -y
Starten Sie das System einmal neu, nachdem Sie die Updates installiert haben,
$ reboot
2) Installieren Sie Python 3.8 und andere Abhängigkeiten
Führen Sie die folgenden Befehle aus, um Python 3.8 und andere Abhängigkeiten zu installieren
$ sudo dnf module -y install python38 $ sudo alternatives --config python
Geben Sie 3 ein und drücken Sie die Eingabetaste
3) Installieren Sie die neueste Version von Ansible mit pip
Führen Sie die folgenden Befehle nacheinander aus, um ansible zu installieren,
$ sudo pip3 install setuptools-rust wheel $ sudo pip3 install --upgrade pip $ sudo python -m pip install ansible
Die Ausgabe des obigen Python-Befehls würde wie folgt aussehen:
Die obige Ausgabe bestätigt, dass Ansible erfolgreich installiert wurde. Lassen Sie uns die Ansible-Version mit dem folgenden Ansible-Befehl überprüfen:
$ ansible --version
Überprüfen Sie die Ansible-Installation
Immer wenn Ansible mit dem Befehl dnf oder yum installiert wird, wird die Standardkonfigurationsdatei „ansible.cfg“ automatisch im Ordner „/etc/ansible“ erstellt. Aber wenn wir es mit pip installieren, müssen wir seine Konfigurationsdatei manuell erstellen.
Es wird empfohlen, ansible.cfg für jedes Projekt zu erstellen. Zu Demonstrationszwecken erstelle ich ein Automatisierungsprojekt. Führen Sie den folgenden mkdir-Befehl aus,
$ mkdir automation $ cd automation
Erstellen Sie die Datei ansible.cfg mit folgendem Inhalt:
$ vi ansible.cfg [defaults] inventory = /home/sysops/auotmation/inventory remote_user = sysops host_key_checking = False [privilege_escalation] become=True become_method=sudo become_user=root become_ask_pass=False
Speichern und beenden Sie die Datei.
Erstellen Sie nun unter Automatisierungsprojekt (Ordner) eine Inventardatei mit folgendem Inhalt.
$ vi inventory [prod] 192.168.1.121 [test] 192.168.1.122
Speichern und schließen Sie die Datei.
Wenn Sie die ansible.cfg-Datei sorgfältig bemerkt haben, habe ich remote_user als „sysops“ verwendet. Erstellen wir also SSH-Schlüssel für Sysops-Benutzer und teilen Sie sie mit den verwalteten Hosts.
$ ssh-keygen
Teilen Sie die SSH-Schlüssel mit dem Befehl ssh-copy-id,
$ ssh-copy-id [email protected] $ ssh-copy-id [email protected]
Hinweis:Führen Sie den folgenden Befehl auf jedem verwalteten Host aus, um alle Befehle auszuführen, ohne das Passwort abzufragen,
# echo "sysops ALL=(ALL) NOPASSWD:ALL" > /etc/sudoers.d/sysops
Überprüfen Sie die Konnektivität vom Kontrollknoten zu den verwalteten Hosts mit dem Ping-Modul,
$ cd automation/ $ ansible -i inventory all -m ping
Lassen Sie uns ein Beispielplaybook (web.yaml) erstellen, um nginx und php auf verwalteten Hosts zu installieren,
$ vi web.yaml --- - name: Play to Packages hosts: - test - prod tasks: - name: Install php and nginx package: name: - php - nginx state: present
Speichern und schließen Sie die Datei.
Führen Sie das Playbook mit dem Befehl below ansible-playbook aus,
$ ansible-playbook -i inventory web.yaml
Die Ausgabe des obigen Befehls würde wie folgt aussehen
Großartig, die obige Ausgabe bestätigt, dass das Playbook erfolgreich ausgeführt wurde, und es bestätigt auch, dass Ansible korrekt installiert ist.
Das ist alles aus diesem Beitrag. Ich glaube, dieser Beitrag hilft Ihnen bei der Installation und Verwendung von Ansible unter Rocky Linux 8. Bitte teilen Sie Ihr Feedback und Ihre Fragen im Kommentarbereich unten.
Empfohlene Lektüre: Verwendung von Handlern in Ansible Playbook