In diesem Schritt schreiben Sie Ihr erstes Ansible Playbook. Ein Playbook ist eine Datei im YAML-Format, die eine Reihe von Aufgaben beschreibt, die auf Ihren verwalteten Hosts ausgeführt werden sollen. Sie erstellen ein Playbook, das den Apache-Webserver (httpd
) installiert und dessen Dienst auf der in Ihrem Inventar definierten localhost
-Maschine startet.
-
Verwenden Sie zuerst den Texteditor nano
, um eine neue Datei namens apache.yml
zu erstellen. Diese Datei wird Ihr Playbook enthalten.
nano apache.yml
-
Innerhalb des nano
-Editors definieren Sie einen "Play". Ein Play ist die Kerneinheit eines Playbooks und ordnet eine Gruppe von Hosts einer Reihe von Aufgaben zu. Fügen Sie den folgenden Inhalt zu apache.yml
hinzu.
---
: Dies ist ein Standard-YAML-Marker, der den Beginn eines Dokuments anzeigt.
- name: ...
: Dies ist der Beginn Ihres Plays. Ihm einen beschreibenden Namen zu geben, ist eine bewährte Methode.
hosts: webservers
: Dies weist Ansible an, dieses Play auf allen Hosts in der Gruppe webservers
aus Ihrer Inventardatei auszuführen.
become: true
: Dies weist Ansible an, eine Berechtigungserweiterung (wie sudo
) zu verwenden, um die Aufgaben auszuführen. Dies ist für Aktionen wie die Installation von Software oder die Verwaltung von Diensten erforderlich.
tasks:
: Dieses Schlüsselwort leitet die Liste der auszuführenden Aufgaben ein.
---
- name: Install and start Apache web server
hosts: webservers
become: true
tasks:
-
Fügen Sie nun die Aufgaben zu Ihrem Playbook hinzu. Jede Aufgabe ist eine einzelne Aktion, die ein Ansible-Modul aufruft. Die Einrückung ist in YAML entscheidend, stellen Sie also sicher, dass die Aufgaben korrekt unter dem Abschnitt tasks:
eingerückt sind.
- Aufgabe 1: httpd installieren. Diese Aufgabe verwendet das Modul
ansible.builtin.dnf
, um sicherzustellen, dass das Paket httpd
installiert ist. Der Parameter state: present
bedeutet, dass Ansible das Paket installiert, wenn es fehlt, und nichts tut, wenn es bereits installiert ist.
- Aufgabe 2: httpd-Dienst starten. Diese Aufgabe verwendet das Modul
ansible.builtin.service
. state: started
stellt sicher, dass der Dienst läuft, und enabled: true
stellt sicher, dass er beim Systemstart automatisch gestartet wird.
Fügen Sie die folgenden Aufgaben zu Ihrer apache.yml
-Datei hinzu, direkt unter der Zeile tasks:
:
- name: Install httpd package
ansible.builtin.dnf:
name: httpd
state: present
- name: Start and enable httpd service
ansible.builtin.service:
name: httpd
state: started
enabled: true
-
Ihr vollständiges apache.yml
-Playbook sollte nun wie folgt aussehen. Überprüfen Sie die Einrückung sorgfältig.
---
- name: Install and start Apache web server
hosts: webservers
become: true
tasks:
- name: Install httpd package
ansible.builtin.dnf:
name: httpd
state: present
- name: Start and enable httpd service
ansible.builtin.service:
name: httpd
state: started
enabled: true
Speichern Sie die Datei und beenden Sie nano
(Strg+O
, Enter
, Strg+X
).
-
Bevor Sie Ihr Playbook ausführen, ist es eine gute Praxis, es mit dem Befehl ansible-playbook
und dem Flag --syntax-check
auf Syntaxfehler zu überprüfen.
ansible-playbook --syntax-check apache.yml
Wenn die Syntax korrekt ist, gibt der Befehl den Dateinamen des Playbooks ohne Fehler aus.
playbook: apache.yml
-
Führen Sie nun das Playbook aus.
ansible-playbook apache.yml
Ansible wird die Aufgaben durchlaufen. Da dies der erste Durchlauf ist, sehen Sie für beide Aufgaben den Status changed
, was bedeutet, dass der Systemzustand geändert wurde.
PLAY [Install and start Apache web server] *************************************
TASK [Gathering Facts] *********************************************************
ok: [localhost]
TASK [Install httpd package] ***************************************************
changed: [localhost]
TASK [Start and enable httpd service] ******************************************
changed: [localhost]
PLAY RECAP *********************************************************************
localhost : ok=3 changed=2 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
-
Überprüfen Sie abschließend, ob der Apache-Webserver läuft, indem Sie mit curl
die Standard-Webseite von localhost
abrufen.
curl http://localhost
Sie sollten die Standard-Apache-Testseite sehen, was bestätigt, dass Ihr Playbook erfolgreich war.
<html>
<head>
<title>Test Page</title>
</head>
<body>
<h1>Test Page</h1>
<p>This is the default test page for the Apache HTTP server.</p>
</body>
</html>