Ansible Include_Vars

Ansible Include Vars



Im Ansible-Ökosystem haben wir Zugriff auf das Modul include_vars, das es uns ermöglicht, die Variablen aus einer Datei, einem Verzeichnis oder mehreren Dateien zu laden, die einem Glob-Muster in einem bestimmten Playbook entsprechen.

In diesem Tutorial lernen wir, wie man dieses Modul verwendet, das es uns ermöglicht, unsere Ansible-Konfigurationen in logischeren und saubereren Einheiten zu organisieren, die einfacher wiederzuverwenden und zu warten sind.

Ansible-Variablen

Standardmäßig definieren wir hauptsächlich die Variablen innerhalb des Playbooks. Wenn die Playbooks jedoch komplexer werden, müssen Sie möglicherweise ein gewisses Maß an Organisation und Wartung aufrechterhalten. Hier hilft das Modul include_vars.







Mit diesem Modul können wir die Variablen in spezifische Dateien aufteilen, die wir bei Bedarf importieren und wiederverwenden können. Dies ist besonders nützlich, wenn Sie in verschiedenen Umgebungen wie Produktion, Staging usw. arbeiten, in denen die Anforderungen unterschiedlich sein können.



Vorteile des Include_Vars-Moduls

Im Folgenden sind einige deutliche Vorteile der Aufteilung der Variablen in bestimmte Dateien aufgeführt:



Trennung von Logik und Daten – Das Modul include_vars ermöglicht es uns, die Playbooks übersichtlich zu halten, indem wir die Aufgaben von den Konfigurationsdaten trennen.





Umgebungsspezifische Konfigurationen – Durch die Trennung der Variablen können wir unterschiedliche Variablendateien für unterschiedliche Umgebungen oder Hosts verwenden.

Reduzierte Duplizierung – Dadurch können wir vermeiden, dieselben Variablen an mehreren Stellen zu definieren.



Ansible Include_Vars-Syntax

Im Folgenden wird die grundlegende Syntax des Moduls include_vars in einem Ansible-Playbook gezeigt:

- Name: Variablen aus einer Datei einschließen
include_vars:
Datei: Dateipfad

Beispielverwendung:

Lassen Sie uns einige grundlegende Beispiele für die Konfiguration und Arbeit mit dem Modul include_vars in einem Playbook untersuchen.

Beispiel 1: Grundlegende Verwendung

Angenommen, wir haben ein Verzeichnislayout wie im Folgenden dargestellt:

.
├── playbook.yml
└── wessen
└── db_config.yml Im Stammverzeichnis haben wir das eigentliche Playbook, das wir ausführen möchten. Wir haben auch die Datei „db_config.yml“ im Verzeichnis vars, mit der wir die benötigten Variablen für die Datenbankkonfiguration definieren.

Als nächstes haben wir in der Datei var/db_config.yml die folgenden Variablen:

db_user: root
db_password: mysql

Um die vorherigen Variablen in einem Playbook zu verwenden, können wir das Modul include_vars verwenden, wie im folgenden Playbook-Beispiel gezeigt:

---
- Gastgeber: alle
Aufgaben:
- Name: DB-Konfiguration einschließen
include_vars:
Datei: vars/db_config.yml
- Name: Den DB-Benutzer drucken
debuggen:
msg: „Datenbankbenutzer ist {{ db_user }}“

Beispiel 2: Einschließen aller Dateien in ein Verzeichnis

Wir können auch alle Dateien in einem bestimmten Verzeichnis einschließen, wie im folgenden Beispiel gezeigt:

---
- Gastgeber: alle
Aufgaben:
- Name: Alle Konfigurationen einbeziehen
include_vars:
du: vars

Dies sollte alle Variablen umfassen, die in allen Dateien im vars-Verzeichnis definiert sind.

Beispiel 3: Variablen bedingt laden

Wir können auch verschiedene Parameter verwenden, um die Variablen einzubeziehen, die einer bestimmten Bedingung entsprechen, wie im Folgenden gezeigt:

---
- Gastgeber: alle
wessen:
env: Inszenierung

Aufgaben:
- Name: Umgebungsspezifische Konfiguration einschließen
include_vars:
Datei: „vars/{{ env }}.yml“

In diesem Fall laden wir die „staging.yml“ wie im vorherigen Playbook definiert.

Abschluss

Sie haben etwas über das Ansible-Modul include_vars erfahren, mit dem wir die Variablen laden können, die in einer bestimmten Datei oder einem bestimmten Verzeichnis definiert sind. Eine detailliertere Kontrolle finden Sie in der Dokumentation.