Erweitern unserer Rolle
Jetzt, da wir eine grundlegende Rollenstruktur haben, erweitern wir sie, um mehr Komponenten einer typischen Ansible-Rolle einzubeziehen. Wir werden Variablen, einen Handler und eine Vorlage hinzufügen.
Zunächst fügen wir eine Standardvariable hinzu. Erstellen Sie eine main.yml
-Datei im defaults
-Verzeichnis:
nano defaults/main.yml
Fügen Sie folgenden Inhalt hinzu:
---
example_variable: "This is a default value"
Dadurch wird ein Standardwert für example_variable
festgelegt, der beim Verwenden der Rolle überschrieben werden kann.
Als Nächstes erstellen wir einen Handler. Erstellen Sie eine main.yml
-Datei im handlers
-Verzeichnis:
nano handlers/main.yml
Fügen Sie folgenden Inhalt hinzu:
---
- name: Restart example service
debug:
msg: "This would restart a service in a real scenario"
In einer realen Anwendung würde dieser Handler möglicherweise einen Dienst neu starten, aber in diesem Beispiel geben wir einfach eine Nachricht aus.
Jetzt erstellen wir eine Vorlage. Erstellen Sie eine Datei namens example_template.j2
im templates
-Verzeichnis:
nano templates/example_template.j2
Fügen Sie folgenden Inhalt hinzu:
This is an example template.
The value of example_variable is: {{ example_variable }}
Diese Vorlage verwendet die Jinja2-Syntax, um den Wert unserer example_variable
einzubeziehen.
Schließlich aktualisieren wir unsere tasks/main.yml
, um diese neuen Komponenten zu verwenden:
nano tasks/main.yml
Ersetzen Sie den vorhandenen Inhalt durch:
---
- name: Print a message
debug:
msg: "This is a task from our example role!"
- name: Use our variable
debug:
msg: "The value of example_variable is: {{ example_variable }}"
- name: Create a file from our template
template:
src: example_template.j2
dest: /tmp/example_file.txt
notify: Restart example service
Diese aktualisierte Aufgabenliste verwendet jetzt unsere Variable, erstellt eine Datei aus unserer Vorlage und benachrichtigt unseren Handler.