Zuweisen von Variablen zu Gruppen
Ansible ermöglicht es Ihnen, Variablen in der Inventar-Datei Gruppen zuzuweisen. Diese Variablen können in Playbooks und Vorlagen verwendet werden, wodurch Ihr Ansible-Code flexibler und wiederverwendbarer wird.
Bearbeiten Sie die inventory
-Datei:
nano /home/labex/project/inventory
Aktualisieren Sie den Inhalt wie folgt:
[webservers]
localhost ansible_connection=local
[production:children]
webservers
[webservers:vars]
http_port=80
Dies weist der Variable http_port
mit dem Wert 80 alle Hosts in der webservers
-Gruppe zu. Das Suffix :vars
wird verwendet, um Variablen für eine Gruppe zu definieren.
Speichern Sie die Datei und verlassen Sie den Editor.
Jetzt erstellen wir ein einfaches Playbook, um diese Variable anzuzeigen. Ein Playbook ist eine YAML-Datei, die eine Reihe von Aufgaben definiert, die auf Hosts ausgeführt werden sollen. Erstellen Sie eine neue Datei namens show_http_port.yml
:
nano /home/labex/project/show_http_port.yml
Fügen Sie den folgenden Inhalt hinzu:
---
- name: Show HTTP Port
hosts: webservers
tasks:
- name: Display HTTP Port
debug:
msg: "The HTTP port is {{ http_port }}"
Dieses Playbook:
- Zielt auf die
webservers
-Gruppe ab
- Hat eine einzelne Aufgabe, die das
debug
-Modul verwendet, um eine Nachricht anzuzeigen
- Verwendet die Syntax
{{ http_port }}
, um auf die Variable zu verweisen, die wir in der Inventar-Datei definiert haben
Speichern Sie die Datei und verlassen Sie den Editor.
Führen Sie das Playbook aus:
ansible-playbook -i inventory show_http_port.yml
Sie sollten eine Ausgabe sehen, die den Wert des HTTP-Ports anzeigt:
PLAY [Show HTTP Port] ********************************************************
TASK [Gathering Facts] ********************************************************
ok: [localhost]
TASK [Display HTTP Port] ******************************************************
ok: [localhost] => {
"msg": "The HTTP port is 80"
}
PLAY RECAP ********************************************************************
localhost : ok=2 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
Dies zeigt, dass die Variable, die wir in der Inventar-Datei definiert haben, in unserem Playbook zugänglich ist.