In diesem Artikel werden Ihnen angezeigt. 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 ein CentOS/RHEL 7 oder 8 Host haben, das für die Ansible -Automatisierung konfiguriert ist.
Es gibt viele Artikel unter LinuxHint, die der Installation von Ansible und Konfigurieren von Hosts für Ansible Automation gewidmet sind. Sie können diese bei Bedarf überprüfen.
Einrichten eines Projektverzeichnisses
Bevor wir uns weiter bewegen, werden wir ein Projektverzeichnis erstellen, um die Dinge ein wenig zu organisieren.
Um das Projektverzeichnis zu erstellen CentOS-PKG/ und alle erforderlichen Unterverzeichnisse (in Ihrem aktuellen Arbeitsverzeichnis) führen Sie den folgenden Befehl aus:
$ mkdir -pv Centos -PKG/Playbooks
Sobald das Projektverzeichnis erstellt wurde, navigieren Sie wie folgt zum Projektverzeichnis:
$ cd Centos-pkg/
Als nächstes erstellen Sie eine Gastgeber Inventardatei wie folgt:
$ nano Gastgeber
Fügen Sie den Host -IP- oder DNS -Namen hinzu (VM3.Nodekite.com, in meinem Fall) Ihrer CentOS/Rhel -Hosts in der Inventardatei (ein Host pro Zeile).
Sobald Sie fertig sind, speichern Sie die Datei durch Drücken + X, gefolgt von Y Und .
Erstellen Sie eine ansible Konfigurationsdatei Ansible.CFG In Ihrem Projektverzeichnis wie folgt:
$ nano ansible.CFG
Geben Sie dann die folgenden Zeilen in die Ansible.CFG Datei.
[Standardeinstellungen]Sobald Sie fertig sind, speichern Sie die Ansible.CFG Datei durch Drücken + X, gefolgt von Y 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 wird angezeigt, wie Sie ein einzelnes Softwarepaket mit dem installieren DNF oder Yum Modul der Ansible auf Ihren Centos/Rhel -Hosts.
Erstellen Sie zunächst das neue Spielbuch Installationspaket.Yaml im Playbooks/ Verzeichnis wie folgt:
$ nano playbooks/install_package.YamlGeben Sie als nächstes die folgenden Zeilen in die Installationspaket.Yaml Datei.
- Hosts: AllesSobald Sie fertig sind, speichern Sie die Datei durch Drücken + X, gefolgt von Y Und .
Hier habe ich nur eine Aufgabe hinzugefügt, Installieren Sie das HTTPD -Paket. Der Zweck dieser Aufgabe besteht darin, die zu installieren httpd Paket auf CentOS/RHEL 8.
CentOS/rhel 7 verwendet die nicht DNF Paketmanager, es verwendet die Yum Paket-Manager. Wenn Sie also CentOS/RHEL 7 verwenden, ändern Sie sich DNF Zu Yum, wie im Screenshot unten markiert. Es sind keine anderen Änderungen erforderlich.
Der Name Option wird verwendet, um das zu sagen DNF oder Yum Modul den Namen des Pakets, das Sie installieren möchten. In diesem Fall wird es das sein httpd Paket.
Der Zustand Option wird verwendet, um das zu sagen DNF oder Yum Modul die Aktion (i.e. Installieren, Upgrade, Entfernen) Es sollte das angegebene Paket übernehmen. In diesem Fall ist die Aktion gegenwärtig.
Die unterstützten Werte der Zustand Option sind:
gegenwärtig - installiert das Paket, wenn es nicht bereits installiert ist.
neueste - installiert das Paket, wenn es nicht bereits installiert ist. Wenn bereits installiert, prüft das Modul nach Updates. Wenn eine aktualisierte Version des Pakets verfügbar ist, wird die neue Version installiert.
abwesend - Entfernen Sie das Paket, wenn es installiert ist.
Wenn der update_cache Option ist auf WAHR, Der DNF/YUM -Paket -Repository -Cache wird aktualisiert, bevor das Paket installiert ist.
Leiten Sie die Installationspaket.Yaml Spielbuch wie folgt:
$ Ansible-Playbook-Playbooks/install_package.YamlWie Sie sehen können, das Spielbuch Installationspaket.Yaml lief erfolgreich.
Wie Sie sehen können, die httpd Das Paket ist auf meinem CentOS 8 -Host installiert, den ich zu meinem hinzugefügt habe Gastgeber Inventardatei.
$ sudo dnf liste installiert | grep httpdWenn Sie sich bei CentOS/RHEL 7 befinden, verwenden Sie die Yum Paketmanager anstelle der DNF Paketmanager, um zu überprüfen, ob das Paket installiert ist.
$ sudo yum liste installiert | grep httpdInstallieren mehrerer Softwarepakete über die With_items -Schleife
Der vorherige Abschnitt dieses Artikels hat Ihnen gezeigt DNF/Yum Modul. In diesem Abschnitt werden Sie angezeigt, wie Sie mehrere Softwarepakete auf Ihren CentOS/RHEL -Hosts mithilfe des Ansible installieren können With_items Schleife.
Erstellen Sie zunächst das neue Spielbuch install_packages.Yaml, folgendermaßen:
$ nano playbooks/install_packages.YamlGeben Sie die folgenden Zeilen in die install_packages.Yaml Datei.
- Hosts: AllesSobald Sie fertig sind, drücken Sie + X, gefolgt von Y Und , um die zu retten install_packages.Yaml Datei.
Hier habe ich die Paketnamen definiert (httpd, Php, vsftpd) was ich verwenden möchte With_items Schleife.
Ich habe den Paketnamen durch die Variable ersetzt Artikel. Der Artikel Die Variable wird in jeder Iteration mit dem Paketnamen aktualisiert.
Leiten Sie die install_packages.Yaml Spielbuch wie folgt:
$ Ansible-Playbook-Playbooks/install_packages.YamlWie Sie sehen können, das Spielbuch install_packages.Yaml lief erfolgreich.
Der httpd, Php, Und vsftpd Pakete werden 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
Installation mehrerer Softwarepakete über die Schleifenschleife
Ausgehend von Ansible 2.5, Die empfohlene Art, Schleifen in Ihrem Spielbuch zu verwenden, besteht darin, die zu verwenden Schleife Schlüsselwort anstelle der With_items Stichwort. Deshalb haben Sie eine Warnmeldung gesehen, als ich das leitete install_packages.Yaml Spielbuch im früheren Abschnitt dieses Artikels.
Arbeiten mit Schleifen mit der Schleife Schlüsselwort ist sehr einfach.
Öffnen Sie zunächst das Spielbuch install_packages.Yaml (Aus dem vorherigen Beispiel) wie folgt:
$ nano playbooks/install_packages.YamlIm install_packages.Yaml Spielbuch ersetzen Sie einfach den Begriff With_items mit dem Begriff Schleife, wie im Screenshot unten markiert. Sie müssen nichts anderes ändern.
Sobald Sie fertig sind, drücken Sie + X, gefolgt von Y Und , um die zu retten install_packages.Yaml Datei.
Leiten Sie die install_packages.Yaml Spielbuch wie folgt:
$ Ansible-Playbook-Playbooks/install_packages.YamlWie Sie sehen können, die Aufgabe Installieren Sie alle Pakete lief die DNF/Yum Modul insgesamt dreimal; Einmal für jede Schleife Artikel.
Der httpd, Php, Und vsftpd Pakete werden auf meinem CentOS 8 -Host installiert, wie Sie im Screenshot unten sehen können.
$ sudo dnf liste installiert | grep httpdInstallieren mehrerer Softwarepakete mithilfe der Array -Syntax
Frühere Abschnitte dieses Artikels zeigten Ihnen, wie Sie die verwenden sollen With_items Und Schleife Schleifen in Ansible, um mehrere Softwarepakete auf CentOS/RHEL 7 oder 8 zu installieren, ohne eine Code -Wiederholung. In diesem Abschnitt wird Ihnen angezeigt, wie Sie dasselbe mit einer einfacheren Array -Syntax tun.
Öffnen Sie zuerst die install_packages.Yaml Spielbuch wie folgt:
$ nano playbooks/install_packages.YamlEntferne das With_items oder Schleife Abschnitt aus der Aufgabe und ändern Sie die Name Option zu ['httpd', 'php', vsftpd '], wie im Screenshot unten markiert.
Sobald Sie fertig sind, drücken Sie + X, gefolgt von Y Und , um die zu retten install_packages.Yaml Spielbuch.
Hier, jede zitierte Zeichenfolge in den Quadratklammern ([]) ist ein Array -Element (der Softwarepaketname in meinem Fall). Jedes Array -Element sollte durch ein Komma getrennt werden (,). Sie können so viele Array -Elemente hinzufügen, wie Sie möchten. Ich habe nur drei Elemente hinzugefügt, httpd, Php, Und vsftpd.
Leiten Sie die install_packages.Yaml Spielbuch wie folgt:
$ Ansible-Playbook-Playbooks/install_packages.YamlWie Sie sehen können, paketen die Softwarepakete httpd, Php, Und vsftpd sind auf meinem CentOS 8 -Host installiert.
$ sudo dnf liste installiert | grep httpdAbschluss
Dieser Artikel hat Ihnen gezeigt, wie man die benutzt With_items Und Schleife Schleifen sowie die Array -Syntax mit dem Ansible Yum/DNF Modul zum Installieren mehrerer Softwarepakete auf Ihren CentOs/RHEL 7 oder 8 Hosts.
Weitere Informationen finden Sie in der offiziellen Dokumentation der Ansible.
[1] Offizielle Dokumentation von Ansible Loops
[2] Offizielle Dokumentation von Ansible with_items
[3] Offizielle Dokumentation des Ansible DNF -Moduls
[4] Offizielle Dokumentation des Ansible Yum -Moduls