1 variablen
kraeml edited this page 2023-09-27 14:13:00 +00:00

Ansible Variablen

Variablen in Ansible dienen dazu, Werte zu speichern, die in Playbooks oder Roles 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:
   # 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
  1. Gruppen-Variablen: Diese werden für Gruppen von Hosts definiert und gelten für alle Hosts in dieser Gruppe. Zum Beispiel:
   # 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
  1. Playbook-Variablen: Diese werden im Playbook selbst definiert und gelten nur für dieses Playbook. Zum Beispiel:
   - 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 verwendet werden, um dynamische Konfigurationen zu erstellen.