Ansible ist ein beliebtes Tool zur Verwaltung der Serverkonfiguration, mit dem Benutzer Remote-Systeme von einem einzigen Kontrollknoten aus verwalten und überwachen können. Mit Ansible können Sie Softwarepakete installieren, Dienste bereitstellen und Konfigurationen auf mehreren Hosts von einem einzigen Knoten aus vornehmen, anstatt sich bei jedem der Knoten anzumelden. Wir haben bereits eine Anleitung zur Installation und Einrichtung von Ansible auf Ubuntu 20.04. Dies gibt Ihnen eine Einführung und einen wahrscheinlichen Vorsprung, wenn Sie diesen Leitfaden durchgehen. In diesem Leitfaden konzentrieren wir uns darauf, was Playbooks sind, wie sie erstellt und zum Bereitstellen von Diensten verwendet werden.
Lab-Setup
Wir haben bereits ein Heimlabor, wie unten angegeben. Um das Beste aus diesem Leitfaden herauszuholen, können Sie ihn replizieren oder eine ähnliche Laborumgebung auf einer virtualisierten Plattform einrichten:
Ansible-Kontrollknoten IP:192.168.2.106
Verwalteter Host IP:192.168.2.108
Wenn die Einrichtung überprüft ist, können wir loslegen.
Was ist eine Playbook-Datei?
Ansible fällt, genau wie Terraform, unter Infrastructure as a Code. Was bedeutet das? Infrastructure as a Code (IaC) wird als ein Mechanismus zur Bereitstellung und Verwaltung von Hosts mithilfe von maschinenlesbaren Konfigurationsdateien beschrieben, im Gegensatz zur physischen Anmeldung und Vornahme der Konfigurationen. In Ansible ist ein Playbook eine solche Konfigurationsdatei.
Ein Playbook ist eine Datei in YAML, die ein oder mehrere Plays enthält. Was ist ein Theaterstück? Ein Play ist eine geordnete Aufgabe, die eine Aufgabe oder einen Prozess auf dem verwalteten Host automatisiert, wie z. B. das Bereitstellen einer Anwendung wie etwa eines Webservers oder das Vornehmen von Konfigurationen. Ein Playbook kann ein oder mehrere Plays haben, die jeweils unterschiedliche Aufgaben erfüllen.
Spiele verwenden Module, bei denen es sich um spezielle Funktionen handelt, um die auf dem entfernten Host erforderlichen Änderungen anzugeben. Jedes Modul ist speziell und definiert eine bestimmte Aufgabe.
Eine Playbook-Datei wird mit einer .yml-Datei gespeichert oder .yaml Dateierweiterung.
Erstellen einer Playbook-Datei
Lassen Sie uns nun eine Playbook-Datei erstellen. In dieser Demonstration erstellen wir eine Playbook-Datei namens greetings.yml im Ansible-Verzeichnispfad /etc/ansible wie abgebildet.
$ sudo vim /etc/ansible/greetings.yml
Fügen Sie die folgende Konfiguration hinzu. Dies ist ein einfaches Playbook, das eine Nachricht an stdout auf dem Remote-Server ausgibt. Achten Sie auf die Einrückung der Module.
Die Ansible Playbook-Datei beginnt mit drei Bindestrichen ( — ), um anzugeben, dass es sich um eine YAML-Datei handelt. Die „Gastgeber“ Der Parameter gibt den Remote-Host oder die Gruppe von Hosts an, die in der Inventardatei definiert sind, die sich standardmäßig in /etc/ansible/hosts. befindet Hier, Inszenierung ist die Hostgruppe, für die der Remote-Host mit der IP 192.168.2.108 ist ist definiert.
Der Remote-Host wird unter der Hostgruppe namens Staging definiert mit den folgenden Einträgen.
[staging] 192.168.2.108 ansible_ssh_pass=xxxxxxxx ansible_ssh_user=jack
Der ansible_ssh_pass gibt das SSH-Passwort des entfernten Benutzers an, während ansible_ssh_use gibt den Benutzernamen auf dem Remote-Host an.
Als nächstes haben wir den Namen des Stücks „Eine einfache Nachricht drucken “, gefolgt von debug Modul, das die durch msg definierte Nachricht ausgibt Modul.
Ausführen der Playbook-Datei
Um das Playbook auszuführen, verwenden Sie einfach das Ansible-Playbook Befehl in der unten angegebenen Syntax.
$ ansible-playbook /path/to/playbook-file
In unserem Fall ist dies:
$ ansible-playbook /etc/ansible/greetings.yml
Während der Spielausführung gibt Ansible zunächst den Namen der Hostgruppe oder des entfernten Hosts aus, auf dem das Spiel ausgeführt wird – in unserem Fall das Staging Gruppe. Ansible ruft dann Informationen über das Spiel ab, die als Fakten bezeichnet werden und führt schließlich die im Playbook angegebene Aktion aus. Hier wird die einfache Nachricht gedruckt.
Nehmen wir noch ein weiteres Beispiel für eine Playbook-Datei namens install_apache_and_git.yml Wie nachfolgend dargestellt. Hier haben wir zwei Stücke. Das erste Spiel installiert den Apache-Webserver, während das zweite Spiel Git auf dem Remote-System installiert. Die werden:wahr Der Parameter führt den Befehl wie erwartet als Benutzer mit erhöhten Rechten oder als sudo-Benutzer für den entfernten Benutzer aus.
Wenn das Playbook ausgeführt wird, werden alle Plays in der Reihenfolge ihrer Ausführung vom ersten bis zum letzten aufgelistet. Das Playbook installiert zuerst den Apache-Webserver, bevor es Git installiert. Das –fragen-werden-passieren Direktive fordert den sudo-Benutzer auf, die in den Spielen definierten Aufgaben auszuführen.
Abschluss
Und so können Sie eine einfache Playbook-Datei erstellen und ausführen. Wir hoffen, dass dies ein grundlegendes Verständnis einer Ansible-Playbook-Datei, ihrer Struktur und ihrer Verwendung zum Ausführen von Aufgaben auf Remote-Hosts vermittelt hat.