From e877526ecdea11be28d4e8d6a8f390c78ea3f504 Mon Sep 17 00:00:00 2001 From: kraeml Date: Wed, 27 Sep 2023 14:13:00 +0000 Subject: [PATCH] =?UTF-8?q?variablen=20hinzugef=C3=BCgt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- variablen.md | 64 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 64 insertions(+) create mode 100644 variablen.md diff --git a/variablen.md b/variablen.md new file mode 100644 index 0000000..0203e8e --- /dev/null +++ b/variablen.md @@ -0,0 +1,64 @@ +# Ansible Variablen + +Variablen in Ansible dienen dazu, Werte zu speichern, die in [Playbooks](playbooks) oder [Roles](rollen) wiederverwendet werden können. Hier sind einige Beispiele und wie sie in einem Playbook verwendet werden: + +1. **Host-Variablen**: Diese werden verwendet, um hostspezifische Informationen zu speichern, z.B. IP-Adressen oder Verbindungsinformationen. Zum Beispiel: + +```yaml + # In der Inventory-Datei + webserver: + ansible_host: 192.168.1.100 + + # Im Playbook + - name: Konfiguriere den Webserver + hosts: webserver + tasks: + - name: Stelle sicher, dass der Webserver läuft + service: + name: apache2 + state: started +``` + +2. **Gruppen-Variablen**: Diese werden für Gruppen von Hosts definiert und gelten für alle Hosts in dieser Gruppe. Zum Beispiel: + +```yaml + # In der Inventory-Datei + [webservers] + webserver1 ansible_host=192.168.1.100 + webserver2 ansible_host=192.168.1.101 + + # In einer Gruppen-Variablen-Datei (group_vars/webservers.yml) + web_server_port: 80 + + # Im Playbook + - name: Konfiguriere die Webserver + hosts: webservers + tasks: + - name: Setze den HTTP-Port + vars: + http_port: "{{ web_server_port }}" + template: + src: templates/httpd.conf.j2 + dest: /etc/httpd/conf/httpd.conf +``` + +3. **Playbook-Variablen**: Diese werden im Playbook selbst definiert und gelten nur für dieses Playbook. Zum Beispiel: + +```yaml + - name: Installiere und konfiguriere die Datenbank + hosts: database + vars: + db_name: mydb + db_user: myuser + tasks: + - name: Installiere die Datenbank + yum: + name: mysql + state: present + - name: Erstelle die Datenbank + mysql_db: + name: "{{ db_name }}" + state: present +``` + +Variablen in Ansible können in verschiedenen Formen definiert werden, z.B. als einfache Werte oder als Listen und Dictionaries. Sie können auch in [Jinja2-Vorlagen](templates) verwendet werden, um dynamische Konfigurationen zu erstellen.