Ansible

Einfache Installation mehrerer Pakete auf CentOS mit Ansible

Einfache Installation mehrerer Pakete auf CentOS mit Ansible
Auf Ansible können Sie die dnf oder lecker Modul zum Installieren von Softwarepaketen auf CentOS- oder RHEL-Hosts. Standardmäßig installieren diese Module nur ein einzelnes Softwarepaket. Du kannst den ... benutzen dnf oder lecker Modul mehrmals in Ihrem Ansible Playbook, um beliebig viele Softwarepakete zu installieren. Dies ist jedoch nicht die effizienteste Methode, da es viele Codewiederholungen geben wird, die wir nach Möglichkeit vermeiden möchten. Glücklicherweise können wir Schleifen verwenden, um einfach beliebig viele Softwarepakete ohne Codewiederholung zu installieren.

In diesem Artikel erfahren Sie, wie Sie mithilfe von Ansible Loop mehrere Softwarepakete auf CentOS/RHEL-Hosts installieren. Also lasst uns anfangen.

Voraussetzungen

Wenn Sie die Beispiele in diesem Artikel ausprobieren möchten,
1) Sie müssen Ansible auf Ihrem Computer installiert haben.
2) Sie müssen mindestens einen CentOS/RHEL 7- oder 8-Host für die Ansible-Automatisierung konfiguriert haben.

Es gibt viele Artikel auf LinuxHint, die sich mit der Installation von Ansible und der Konfiguration von Hosts für die Ansible-Automatisierung beschäftigen. Sie können diese bei Bedarf überprüfen.

Einrichten eines Projektverzeichnisses

Bevor wir weitermachen, erstellen wir ein Projektverzeichnis, um die Dinge ein wenig organisiert zu halten.

So erstellen Sie das Projektverzeichnis Centos-Pkg/ und alle erforderlichen Unterverzeichnisse (in Ihrem aktuellen Arbeitsverzeichnis) führen Sie den folgenden Befehl aus:

$ mkdir -pv centos-pkg/playbooks

Navigieren Sie nach dem Erstellen des Projektverzeichnisses wie folgt zum Projektverzeichnis:

$ cd centos-pkg/

Als nächstes erstellen Sie a Gastgeber Inventardatei wie folgt:

$ Nano-Hosts

Fügen Sie die Host-IP oder den DNS-Namen hinzu (vm3.Knotendrachen.com, in meinem Fall) Ihrer CentOS/RHEL-Hosts in der Inventardatei (ein Host pro Zeile).

Wenn Sie fertig sind, speichern Sie die Datei, indem Sie drücken + X, gefolgt von Ja und .

Erstellen Sie eine Ansible-Konfigurationsdatei ansible.cfg in Ihrem Projektverzeichnis wie folgt:

$ nano ansible.cfg

Geben Sie dann die folgenden Zeilen in das ansible.cfg Datei.

[Standardwerte]
Inventar           = Gastgeber
host_key_checking   = Falsch

Wenn Sie fertig sind, speichern Sie die ansible.cfg Datei durch Drücken von + X, gefolgt von Ja und .

Versuchen Sie, alle CentOS/RHEL-Hosts zu pingen, die Sie in Ihrem . hinzugefügt haben Gastgeber Inventardatei wie folgt:

$ ansible all -u ansible -m ping

Wie Sie sehen können, ist mein CentOS 8-Host zugänglich.

Installieren eines einzelnen Softwarepakets

In diesem Abschnitt erfahren Sie, wie Sie ein einzelnes Softwarepaket mithilfe der dnf oder lecker Modul von Ansible auf Ihren CentOS/RHEL-Hosts.

Erstellen Sie zuerst das neue Playbook Installationspaket.yaml in dem Spielbücher/ Verzeichnis wie folgt:

$ Nano-Playbooks/install_package.yaml

Geben Sie als Nächstes die folgenden Zeilen in die ein Installationspaket.yaml Datei.

- Gastgeber: alle
Benutzer: ansible
wahr werden
Aufgaben:
- Name: httpd-Paket installieren
dnf:
Name: httpd
Zustand: vorhanden
update_cache: Richtig

Wenn Sie fertig sind, speichern Sie die Datei, indem Sie drücken + X, gefolgt von Ja und .

Hier habe ich nur eine Aufgabe hinzugefügt, httpd-Paket installieren. Der Zweck dieser Aufgabe besteht darin, die httpd Paket auf CentOS/RHEL 8.

CentOS/RHEL 7 verwendet nicht die dnf Paketmanager, es verwendet die lecker Paket-Manager. Wenn Sie also CentOS/RHEL 7 verwenden, ändern Sie dnf zu lecker, wie im Screenshot unten markiert. Es sind keine weiteren Änderungen erforderlich.

Das Name Option wird verwendet, um die dnf oder lecker Modul den Namen des Pakets, das Sie installieren möchten. In diesem Fall ist es der httpd Paket.

Das Zustand Option wird verwendet, um die dnf oder lecker Modul die Aktion (i.e. installieren, aktualisieren, entfernen) sollte es das angegebene Paket annehmen. In diesem Fall ist die Aktion vorhanden.

Die unterstützten Werte der Zustand Optionen sind:

vorhanden - installiert das Paket, wenn es noch nicht installiert ist.

neueste - installiert das Paket, wenn es noch nicht installiert ist; falls bereits installiert, sucht das Modul nach Updates; Wenn eine aktualisierte Version des Pakets verfügbar ist, wird die neue Version installiert.

abwesend - wird das Paket entfernen, wenn es installiert ist.

Wenn die update_cache Option ist eingestellt auf Wahr, der DNF/YUM-Paket-Repository-Cache wird aktualisiert, bevor das Paket installiert wird.

Führen Sie die Installationspaket.yaml Spielbuch wie folgt:

$ ansible-playbook playbooks/install_package.yaml

Wie Sie sehen können, ist das Playbook Installationspaket.yaml lief erfolgreich.

Wie Sie sehen können, ist die httpd Paket ist auf meinem CentOS 8-Host installiert, den ich auf meinem hinzugefügt habe Gastgeber Inventardatei.

$ sudo dnf-Liste installiert | grep httpd

Wenn Sie CentOS/RHEL 7 verwenden, verwenden Sie die lecker Paketmanager statt der dnf Paketmanager, um zu überprüfen, ob das Paket installiert ist.

$ sudo yum-Liste installiert | grep httpd

Installieren mehrerer Softwarepakete mithilfe der with_items-Schleife

Im vorherigen Abschnitt dieses Artikels wurde gezeigt, wie Sie mit Ansible ein einzelnes Softwarepaket auf Ihrem CentOS/RHEL-Host installieren dnf/lecker Modul. In diesem Abschnitt erfahren Sie, wie Sie mit Ansible mehrere Softwarepakete auf Ihren CentOS/RHEL-Hosts installieren with_items Schleife.

Erstellen Sie zuerst das neue Playbook install_packages.yaml, wie folgt:

$ Nano-Playbooks/install_packages.yaml

Geben Sie die folgenden Zeilen in die ein install_packages.yaml Datei.

- Gastgeber: alle
Benutzer: ansible
wahr werden
Aufgaben:
- name: Installiere alle Pakete
dnf:
Name: ' Artikel '
Zustand: vorhanden
update_cache: Richtig
with_items:
httpd
php
vsftpd

Wenn Sie fertig sind, drücken Sie + X, gefolgt von Ja und , um die zu retten install_packages.yaml Datei.

Hier habe ich die Paketnamen definiert (httpd, php, vsftpd) die ich mit installieren möchte with_items Schleife.

Ich habe den Paketnamen durch die Variable ersetzt Artikel. Das Artikel Variable wird in jeder Iteration mit dem Paketnamen aktualisiert updated.

Führen Sie die install_packages.yaml Spielbuch wie folgt:

$ ansible-playbook playbooks/install_packages.yaml

Wie Sie sehen können, ist das Playbook install_packages.yaml lief erfolgreich.

Das httpd, php, und vsftpd Pakete sind auf meinem CentOS 8-Host installiert, wie Sie im Screenshot unten sehen können.

$ sudo dnf-Liste installiert | grep httpd
$ sudo dnf-Liste installiert | grep php
$ sudo dnf-Liste installiert | grep vsftpd

Installieren mehrerer Softwarepakete mithilfe der Loop-Schleife

Ab Ansible 2.5 wird empfohlen, Loops in Ihrem Playbook zu verwenden, indem Sie die Schleife Stichwort, statt der with_items Stichwort. Deshalb hast du eine Warnmeldung gesehen, als ich das ausgeführt habe install_packages.yaml Playbook im vorherigen Abschnitt dieses Artikels.

Arbeiten mit Schleifen mit dem Schleife Stichwort ist ganz einfach.

Öffne zuerst das Playbook install_packages.yaml (aus dem vorherigen Beispiel) wie folgt:

$ Nano-Playbooks/install_packages.yaml

In dem install_packages.yaml Playbook, ersetze einfach den Begriff with_items mit dem Begriff Schleife, wie im Screenshot unten markiert. Sie müssen nichts mehr ändern.

Wenn Sie fertig sind, drücken Sie + X, gefolgt von Ja und , um die zu retten install_packages.yaml Datei.

Führen Sie die install_packages.yaml Spielbuch wie folgt:

$ ansible-playbook playbooks/install_packages.yaml

Wie Sie sehen, ist die Aufgabe Installieren Sie alle Pakete lief die dnf/lecker Modul insgesamt dreimal; einmal für jede Schleife Artikel.

Das httpd, php, und vsftpd Pakete sind auf meinem CentOS 8-Host installiert, wie Sie im Screenshot unten sehen können.

$ sudo dnf-Liste installiert | grep httpd
$ sudo dnf-Liste installiert | grep php
$ sudo dnf-Liste installiert | grep vsftpd

Installieren mehrerer Softwarepakete mit Array-Syntax

In früheren Abschnitten dieses Artikels wurde Ihnen gezeigt, wie Sie das with_items und Schleife Schleifen in Ansible, um mehrere Softwarepakete auf CentOS/RHEL 7 oder 8 ohne Codewiederholung zu installieren. Dieser Abschnitt zeigt Ihnen, wie Sie dasselbe mit einer einfacheren Array-Syntax tun können.

Öffnen Sie zuerst die install_packages.yaml Spielbuch wie folgt:

$ Nano-Playbooks/install_packages.yaml

Entferne das with_items oder Schleife Abschnitt aus der Aufgabe und ändern Sie die Name Option zu ['httpd', 'php', vsftpd'], wie im Screenshot unten markiert.

Wenn Sie fertig sind, drücken Sie + X, gefolgt von Ja und , um die zu retten install_packages.yaml Spielbuch.

Hier wird jede Zeichenfolge in Anführungszeichen innerhalb der eckigen Klammern ([]) ist ein Array-Element (in meinem Fall der Name des Softwarepakets). Jedes Array-Element sollte durch ein Komma (,). Sie können beliebig viele Array-Elemente hinzufügen. Ich habe nur drei Elemente hinzugefügt, httpd, php, und vsftpd.

Führen Sie die install_packages.yaml Spielbuch wie folgt:

$ ansible-playbook playbooks/install_packages.yaml

Wie Sie sehen können, sind die Softwarepakete httpd, php, und vsftpd sind auf meinem CentOS 8-Host installiert.

$ sudo dnf-Liste installiert | grep httpd
$ sudo dnf-Liste installiert | grep php
$ sudo dnf-Liste installiert | grep vsftpd

Fazit

Dieser Artikel hat Ihnen gezeigt, wie Sie die with_items und Schleife Schleifen sowie die Array-Syntax mit dem Ansible lecker/dnf Modul zum Installieren mehrerer Softwarepakete auf Ihren CentOS/RHEL 7- oder 8-Hosts.

Weitere Informationen finden Sie in der offiziellen Dokumentation von Ansible.

[1] Offizielle Dokumentation von Ansible-Schleifen
[2] Offizielle Dokumentation von Ansible with_items
[3] Offizielle Dokumentation des Ansible-dnf-Moduls
[4] Offizielle Dokumentation des Ansible Yum-Moduls

Fügen Sie mit diesen kostenlosen Tools Mausgesten zu Windows 10 hinzu
In den letzten Jahren haben sich Computer und Betriebssysteme stark weiterentwickelt. Es gab eine Zeit, in der Benutzer Befehle verwenden mussten, um ...
Steuern und verwalten Sie Mausbewegungen zwischen mehreren Monitoren in Windows 10
Dual-Display-Maus-Manager lässt Sie die Mausbewegung zwischen mehreren Monitoren steuern und konfigurieren, indem Sie ihre Bewegungen in der Nähe der ...
Mit WinMouse können Sie die Mauszeigerbewegung auf einem Windows-PC anpassen und verbessern improve
Wenn Sie die Standardfunktionen Ihres Mauszeigers verbessern möchten, verwenden Sie Freeware WinMouse. Es fügt weitere Funktionen hinzu, damit Sie das...