GNU/Linux >> LINUX-Kenntnisse >  >> Ubuntu

Ansible Playbook:So erstellen und konfigurieren Sie Playbooks

Einführung

Ansible ist ein Infrastructure-as-Code-Tool, mit dem Sie eine Reihe von Remote-Servern mithilfe eines einzigen Steuerknotens verwalten und überwachen können.

Mit Ansible können Sie Remote-Server mithilfe von Playbooks verwalten. Diese Playbooks leiten Anweisungen an entfernte Server weiter und ermöglichen ihnen, vordefinierte Aufgaben auszuführen.

In diesem Tutorial gehen wir darauf ein, was Ansible-Playbooks sind, wie sie funktionieren und wie Sie sie erstellen und ausführen können.

Voraussetzungen

  • Ein Linux-System (wir verwenden Ubuntu 20.04)
  • Zugriff auf die Kommandozeile / das Terminalfenster
  • Ansible installiert und konfiguriert

Was ist ein Ansible Playbook?

Ein Ansible-Playbook ist eine Liste mit Anweisungen für Jobs, die automatisch von entfernten Computern in einem Ansible-Netzwerk ausgeführt werden.

Ein Ansible Playbook besteht aus Plays. Plays sind eine orchestrierte Reihe von Aufgaben, die abgeschlossen werden, sobald ein Playbook ausgeführt wird. Sie können mehrere Plays zu einem Playbook hinzufügen.

Spiele verwenden Module, um zu definieren, welche Änderungen vorgenommen werden müssen, um eine Aufgabe abzuschließen. Jedes Modul bietet einen Rahmen für eine bestimmte Kategorie von Jobs und kann mithilfe von Argumenten angepasst werden und Variablen .

Ansible-Playbooks werden als .yaml-Dateien gespeichert, wodurch sie flexibel und einfach zu verwenden sind.

Playbooks werden hauptsächlich verwendet für:

  • Konfigurationen deklarieren.
  • Automatisierung bestimmter wiederholbarer Aufgaben, die manuell zu lange dauern würden.
  • Aufgaben synchron oder asynchron starten.

Ansible-Playbook-Variablen

Ansible-Playbooks verwenden Variablen, um Flexibilität und Benutzerfreundlichkeit zu bieten. Variablen können integriert werden (z. B. Systeminformationen) oder benutzerdefiniert .

In einem Ansible-Playbook werden Variablen mithilfe von vars definiert Stichwort:

Im obigen Beispiel definieren wir die greeting Variable mit dem zugewiesenen Wert Hello World! .

Um auf den Wert zuzugreifen, geben Sie den Variablennamen greeting ein in doppelten geschweiften Klammern:

Nach der Ausführung gibt das Playbook die Nachricht Hello World! aus

Neben Variablen mit einem einzelnen Wert gibt es mehrere andere Arten von Ansible-Variablen. Verwendung von Variablen mit Arrays , weisen Sie einer Variablen mehrere Werte mit der folgenden Syntax zu:

vars:
  array_name:
    - value1
    - value2
    …
    - valueN

Greifen Sie auf einen bestimmten Wert zu, indem Sie {{ array_name[value number] }} verwenden , zum Beispiel:

Variablen mit Wörterbüchern Kombinieren Sie mehrere Arrays von Werten in einer einzigen Variablen:

vars:
  array_name:
    dictionary_name1:
      item1: value1
      item2: value2
    dictionary_name2:
      item1: value1
      item2: value2

Schließlich spezielle Variablen sind von Ansible vordefiniert und können nicht von Benutzern festgelegt werden. Verwenden Sie den folgenden Befehl, um eine Liste spezieller Variablen abzurufen:

ansible -m setup hostname

Wie schreibe ich ein Ansible-Playbook?

Erstellen Sie ein Ansible-Playbook mit einem beliebigen auf Ihrem System verfügbaren Texteditor. Erstellen Sie beispielsweise ein Playbook mit Nano:

sudo nano /path/to/playbook/directory/playbook_name.yaml

Ansible-Playbooks folgen grundlegenden YAML-Syntaxregeln.

Ein Playbook beginnt mit drei n-Bindestrichen (--- ), gefolgt vom Playbook-Namen, dem Namen der Remote-Hosts-Gruppe, die das Playbook ausführt, und zusätzlichen Parametern wie become (Führen Sie das Playbook als Administrator aus).

Der nächste Abschnitt enthält alle benutzerdefinierten Variablen. Es beginnt mit den vars -Tag in derselben Einrückungsebene wie im vorherigen Abschnitt, gefolgt von einer Liste von Variablen in der nächsten Einrückung.

Schließlich beginnt die Aufgabenliste mit den tasks -Tag, wobei die Einrückungsebene von der Art der Aufgabe und den verwendeten Parametern abhängt.

Die YAML-Syntax ermöglicht die Verwendung von drei Punkten ( ), um das Playbook zu beenden. Obwohl die meisten Playbooks auf diese Weise enden, ist es nicht erforderlich, dass das Playbook ordnungsgemäß funktioniert.

Ansible Playbook-Syntax

Einige wichtige Elemente der YAML-Syntax, die Sie beim Schreiben von Ansible-Playbooks beachten sollten:

  • Verwenden Sie beim Verfassen von Listen ein Leerzeichen zwischen dem Bindestrich (- ) und den Listeneintrag.
  • Bei Verwendung des key: value muss dem Doppelpunkt ein Leerzeichen folgen.
  • Boolesche Werte können sowohl yes verwenden und no , sowie true und false .
  • Verwenden Sie ein Leerzeichen gefolgt von # um einen Kommentar anzuzeigen.

Ansible-Playbook-Beispiel

Für dieses Beispiel erstellen wir ein Playbook im Ansible-Installationsordner:

sudo nano /etc/ansible/example_playbook.yaml

Dieses Playbook enthält die folgenden Elemente:

  • --- :Signalisiert den Start des Playbooks.
  • name :Definiert den Namen für das Ansible-Playbook.
  • hosts :Definiert, welche Hosts das Playbook ausführen. Im obigen Beispiel wird das Playbook auf allen Hosts ausgeführt, die in der Inventardatei enthalten sind.
  • become :Weist den Remote-Host an, das Playbook als Administrator auszuführen. Wenn Sie dieses Tag verwenden, müssen Sie beim Ausführen des Playbooks das Admin-Passwort für den Remote-Host eingeben.
  • vars :Definiert Variablen – in unserem Fall eine Variable namens greeting mit dem Wert Hello World! .
  • tasks :Die Liste der Aufgaben, die das Playbook ausführen soll. Im obigen Beispiel erstellt die erste Aufgabe ein Verzeichnis namens example_playbook auf dem entfernten Host. Die zweite Aufgabe erstellt eine neue Textdatei in diesem Verzeichnis und platziert den Wert von greeting Variable als Inhalt.
  • ... :Signalisiert das Ende des Playbooks.

Wie wird ein Playbook ausgeführt?

Ansible-Playbooks werden der Reihe nach von oben nach unten ausgeführt. Dies gilt sowohl für einzelne Spielzüge als auch für Aufgaben, die in diesen Spielzügen aufgeführt sind.

Im obigen Beispiel führt das Playbook die folgenden Aktionen in dieser Reihenfolge aus:

  1. Definiert eine Liste von Variablen.
  2. Erstellt einen neuen Ordner auf dem Remote-Host.
  3. Erstellt eine Textdatei im neuen Ordner.
  4. Fügt den Wert der Variablen als Dateiinhalt hinzu.

So führen Sie ein Ansible-Playbook aus

Um ein Ansible-Playbook auszuführen, verwenden Sie:

ansible-playbook /path/to/playbook/directory/playbook_name.yaml

Für die Zwecke dieses Artikels verwenden wir example_playbook.yaml mit dem -K -Argument, mit dem wir das Root-Benutzerkennwort für den Remote-Host eingeben und das Playbook als Administrator ausführen können:

ansible-playbook /etc/ansible/example_playbook.yaml -K

So verifizieren Sie Playbooks

Führen Sie ein Playbook im Prüfmodus mit --check aus Flagge, um es zu überprüfen. So können Sie die Änderungen sehen, die Ihr Playbook vornehmen würde, ohne sie tatsächlich vorzunehmen:

ansible-playbook /path/to/playbook/directory/playbook_name.yaml --check

Verwenden Sie für einen detaillierteren Überblick über mögliche Änderungen die Kombination --check und --diff Flaggen:

ansible-playbook /path/to/playbook/directory/playbook_name.yaml --check --diff

Nützliche Ansible Playbook-Tipps

Es gibt mehrere Möglichkeiten, Ansible-Playbooks lesbarer und benutzerfreundlicher zu gestalten:

Spiele und Aufgaben immer benennen

Verwenden Sie den name Schlüsselwort, um Namen für Spiele und Aufgaben zu definieren. Das Hinzufügen kurzer und einfacher Namen macht es viel einfacher, auf einen Blick zu erkennen, was jeder Spielzug oder jede Aufgabe tut.

Verwenden Sie Kommentare

Stellen Sie sicher, dass Sie viele Kommentare hinzufügen, insbesondere wenn Sie Variablen und Aufgaben definieren.

Detaillierte Kommentare tragen dazu bei, das Playbook noch übersichtlicher und verständlicher zu machen. Sie helfen auch allen anderen, die Ihre Playbooks verwenden.

Formatieren Sie das Playbook für eine einfache Verwendung

Während Sie die Einrückungsregeln befolgen müssen, damit das Playbook funktioniert, können Sie dennoch Leerzeichen (z. B. Leerzeilen zwischen Aufgaben) verwenden, um ein Playbook leichter lesbar zu machen.


Ubuntu
  1. So installieren und konfigurieren Sie Ansible unter Ubuntu 18.04 LTS

  2. So installieren und konfigurieren Sie Ansible auf Fedora 35

  3. So installieren und konfigurieren Sie Ansible unter Rocky Linux/CentOS 8

  4. So verwenden Sie Ansible zum Installieren und Konfigurieren von Redis 6 unter Ubuntu 20.04

  5. So verwenden Sie Ansible zum Installieren und Konfigurieren von Redis 6 unter Debian 11

So erstellen Sie Ansible Playbooks für die IT-Automatisierung

So erstellen und konfigurieren Sie einen Wi-Fi-Hotspot in Ubuntu 17.10

So definieren und verwenden Sie Handler in Ansible Playbooks

So erstellen und führen Sie eine Ansible Playbook-Datei aus

Ansible-Rollen und ihre Verwendung in Playbooks

So installieren und konfigurieren Sie Ansible unter Ubuntu