Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen Revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
centos:ansible:detail [10.01.2020 10:29. ] – [inventory - Beispiel] django | centos:ansible:detail [24.09.2022 14:26. ] (aktuell) – gelöscht django | ||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
- | ====== Ansible - Erweiterte Konfigurationsbeispiele ====== | ||
- | {{: | ||
- | Nachdem wir uns bereits eingehend mit den **[[centos: | ||
- | |||
- | ===== Inventory ===== | ||
- | Zur Verwaltung/ | ||
- | |||
- | Im Kapitel **[[centos: | ||
- | |||
- | Im Kapitel **[[https:// | ||
- | |||
- | {{page> | ||
- | |||
- | |||
- | ==== ~/ | ||
- | Im Kapitel **[[centos: | ||
- | |||
- | In der Ansible-Konfigurationsdatei **''/ | ||
- | |||
- | < | ||
- | |||
- | [defaults] | ||
- | |||
- | # some basic default values... | ||
- | |||
- | # | ||
- | ... | ||
- | </ | ||
- | |||
- | Unsere erweiterte YAML-Konfigurationsdatei für die Hosts wolen wir aber künftig in der Ansible-Administationsumgebung unseres Admin-Users vorhalten und pflegen. Im Beispiel unseres Adminusers **django** wäre dies entsprechend der Pfad **''/ | ||
- | |||
- | Wir hinterlegen also dort, dass zukünftig die Inventory-Datei **'' | ||
- | # vim / | ||
- | |||
- | < | ||
- | |||
- | # some basic default values... | ||
- | |||
- | # Django : 2020-01-01 | ||
- | # default: # | ||
- | inventory | ||
- | </ | ||
- | |||
- | === inventory - Beispiel === | ||
- | Dort legen wir uns unsere erweiterte Host-Datei im YAML-Format an. | ||
- | $ vim / | ||
- | |||
- | <file bash / | ||
- | all: | ||
- | hosts: | ||
- | n3r0.intra.nausch.org: | ||
- | g33k.intra.nausch.org: | ||
- | children: | ||
- | centos8: | ||
- | vars: # Variablen, die für die ganze Gruppe gelten | ||
- | ansible_ssh_port: | ||
- | ansible_ssh_user: | ||
- | ansible_ssh_private_key_file: | ||
- | hosts: | ||
- | www8.dmz.nausch.org: | ||
- | ansible_ssh_host: | ||
- | centos7: | ||
- | vars: # Variablen, die für die ganze Gruppe gelten | ||
- | ansible_ssh_port: | ||
- | ansible_ssh_user: | ||
- | ansible_ssh_private_key_file: | ||
- | hosts: | ||
- | www7.dmz.nausch.org: | ||
- | ansible_ssh_host: | ||
- | # optische Abtrennung zu nachfolgenden Definitionen | ||
- | ffmucgluon: | ||
- | vars: # Variablen, die für die ganze Gruppe gelten | ||
- | ansible_ssh_port: | ||
- | ansible_ssh_user: | ||
- | ansible_ssh_private_key_file: | ||
- | contact_info: | ||
- | hosts: | ||
- | ff_pliening_gbw_ug: | ||
- | hostname: ff_pliening_gbw_ug | ||
- | latitude: -48.19861319429455 | ||
- | longitude: -168.2017571420684 | ||
- | branch: stable | ||
- | domain: ffmuc_muc_ost | ||
- | director: ffmuc_muc_ost | ||
- | modell: TP-Link TL-WDR4300 v1 | ||
- | ansible_ssh_host: | ||
- | |||
- | ff_pliening_gbw_egod: | ||
- | hostname: ffplieninggbwegod | ||
- | pretty_hostname: | ||
- | latitude: 48.198652080 | ||
- | longitude: 11.797969940 | ||
- | branch: stable | ||
- | domain: ffmuc_muc_ost | ||
- | director: ffmuc_muc_ost | ||
- | modell: Ubiquiti UniFi-AC-MESH | ||
- | ansible_ssh_host: | ||
- | |||
- | ff_pliening_gbw_ogod: | ||
- | hostname: ffplieninggbwogod | ||
- | pretty_hostname: | ||
- | latitude: 48.198699460 | ||
- | longitude: 11.798053090 | ||
- | branch: stable | ||
- | domain: ffmuc_muc_ost | ||
- | director: ffmuc_muc_ost | ||
- | modell: Ubiquiti UniFi-AC-MESH | ||
- | ansible_ssh_host: | ||
- | |||
- | ff_pliening_gbw_dgod: | ||
- | | ||
- | | ||
- | | ||
- | | ||
- | | ||
- | | ||
- | | ||
- | | ||
- | | ||
- | |||
- | ff_pliening_gbw_cpod: | ||
- | | ||
- | | ||
- | | ||
- | | ||
- | | ||
- | | ||
- | | ||
- | | ||
- | | ||
- | |||
- | ff_pliening_gbw_kvm_ol: | ||
- | | ||
- | | ||
- | | ||
- | | ||
- | | ||
- | | ||
- | | ||
- | | ||
- | | ||
- | |||
- | ... #YAML end syntax</ | ||
- | |||
- | |||
- | Die YAML-Konfigurationsdatei enthält entsprechende Bemerkungen, | ||
- | |||
- | <WRAP center round info 100%> | ||
- | Natürlich gilt zu bedenken, dass das gezeigte Beispiel mit nur 8 Hosts und überschaubaren Variablen doch schon recht umfangreich geworden ist, wenn dies alles in eine Inventory-Datei gepackt wird. Bei Dutzenden oder Hunderten von Maschinen wird dies dann daraus schwer zu handeln - von verschachtelten Gruppen in Gruppen, oder Host die Mitglied in mehreren Gruppen sein sollen, sprechen wir dann besser gar nicht. Hier werden wir später auf eine **[[# | ||
- | </ | ||
- | |||
- | /* Viele Hinweise und Beispiel zu den Gruppen finden sich auch hier im Kapitel **[[https:// | ||
- | |||
- | === playbook === | ||
- | Unsere gerade angelegte Inventory-Datei wollen wir nun verwenden um die Geolocation-Daten unserer Freifunk-Knoten zu organisieren. Die Geodaten sind in der obigen Inventory-Datei in den beiden Variablen **'' | ||
- | $ ~/ | ||
- | |||
- | <file bash ~/ | ||
- | --- | ||
- | - hosts: ffmucgluon | ||
- | gather_facts: | ||
- | |||
- | tasks: | ||
- | - name: "Set GEO location of our own ffmuc-nodes" | ||
- | # | ||
- | raw: uci set gluon-node-info.@location[0]=" | ||
- | |||
- | === Script ausführen === | ||
- | Nun wollen wir unser ersten Playbook ausführen, um die Geodaten aus der Inventory-Datei auf unseren Freifunk-Knoten abzugleichen; | ||
- | $ ansible-playbook -v 08_change_contact.yml | ||
- | |||
- | < | ||
- | <font style=" | ||
- | <font style=" | ||
- | |||
- | PLAY [ffmucgluon] ********************************************************************************************************************** | ||
- | |||
- | <font style=" | ||
- | <font style=" | ||
- | changed: [ff_pliening_gbw_kvm_ol] => {" | ||
- | changed: [ff_pliening_gbw_ogod] => {" | ||
- | changed: [ff_pliening_gbw_ug] => {" | ||
- | changed: [ff_pliening_gbw_dgod] => {" | ||
- | changed: [ff_pliening_gbw_cpod] => {" | ||
- | <font style=" | ||
- | <font style=" | ||
- | <font style=" | ||
- | <font style=" | ||
- | <font style=" | ||
- | <font style=" | ||
- | <font style=" | ||
- | < | ||
- | </ | ||
- | |||
- | === Ergebnis === | ||
- | Alle unsere eigenen definierten Freifunk Knoten haben nun auf der **[[https:// | ||
- | |||
- | ==== Inventarisierung größerer Umgebungen ==== | ||
- | Wie schon im vorhergehenden Beispiel angemerkt, wird es bei einer größeren Anzahl von Hostdefinitionen mit umfangreichen Gruppenzugehörigkeiten mit verschiedensten zugeordneten Variablen sehr schnell " | ||
- | |||
- | $ mkdir host_vars | ||
- | |||
- | $ mkdir group_vars | ||
- | === inventory - Beispiel === | ||
- | Dort legen wir uns unsere erweiterte Host-Datei im YAML-Format an. | ||
- | $ vim ~/ | ||
- | |||
- | <file bash ~/ | ||
- | all: | ||
- | hosts: | ||
- | n3r0.intra.nausch.org: | ||
- | g33k.intra.nausch.org: | ||
- | children: | ||
- | centos8: | ||
- | hosts: | ||
- | vml000010: | ||
- | vml000020: | ||
- | vml000030: | ||
- | vml000040: | ||
- | vml000050: | ||
- | vml000060: | ||
- | vml000070: | ||
- | vml000080: | ||
- | vml000090: | ||
- | vml000100: | ||
- | vml000110: | ||
- | vml000120: | ||
- | vml000130: | ||
- | vml000140: | ||
- | vml000150: | ||
- | vml000160: | ||
- | vml000170: | ||
- | vml000180: | ||
- | vml000190: | ||
- | centos7: | ||
- | vml001002: | ||
- | vml000017: | ||
- | vml000027: | ||
- | vml000037: | ||
- | vml000047: | ||
- | vml000057: | ||
- | vml000067: | ||
- | vml000077: | ||
- | vml000087: | ||
- | vml000097: | ||
- | vml000107: | ||
- | vml000117: | ||
- | vml000127: | ||
- | vml000137: | ||
- | vml000147: | ||
- | vml000157: | ||
- | vml000167: | ||
- | vml000177: | ||
- | vml000187: | ||
- | vml000197: | ||
- | stranger: | ||
- | vml000201: | ||
- | vml000202: | ||
- | vml000203: | ||
- | vml000204: | ||
- | vml000205: | ||
- | vml000206: | ||
- | vml000207: | ||
- | vml000208: | ||
- | intra: | ||
- | pml010002: | ||
- | pml010009: | ||
- | pnc010011: | ||
- | pml010012: | ||
- | pml010013: | ||
- | pml010016: | ||
- | vml010020: | ||
- | vml010021: | ||
- | pml010022: | ||
- | vml010027: | ||
- | pml010080: | ||
- | pwl010082: | ||
- | pml010083: | ||
- | pml010085: | ||
- | pml010086: | ||
- | pml010087: | ||
- | pml010089: | ||
- | mail7: | ||
- | children: | ||
- | vml000067: | ||
- | vml000077: | ||
- | vml000087: | ||
- | mail8: | ||
- | children: | ||
- | vml000060: | ||
- | vml000070: | ||
- | vml000080: | ||
- | mail: | ||
- | children: | ||
- | mail7: | ||
- | mail8: | ||
- | db7: | ||
- | children: | ||
- | vml000027: | ||
- | vml000037: | ||
- | db8: | ||
- | children: | ||
- | vml000020: | ||
- | vml000030: | ||
- | databases: | ||
- | children: | ||
- | db7: | ||
- | db8: | ||
- | www7: | ||
- | children: | ||
- | vml000097: | ||
- | vml000127: | ||
- | www8: | ||
- | children: | ||
- | vml000090: | ||
- | vml000107: | ||
- | vml000120: | ||
- | wwwall: | ||
- | children: | ||
- | www7: | ||
- | www8: | ||
- | ffmuc: | ||
- | hosts: | ||
- | ff_pliening_gbw_ug: | ||
- | ff_pliening_gbw_egod: | ||
- | ff_pliening_gbw_ogod: | ||
- | ff_pliening_gbw_dgod: | ||
- | ff_pliening_gbw_cpod: | ||
- | ff_roding_as_nausch: | ||
- | oldeb: | ||
- | hosts: | ||
- | ff_pliening_gbw_client: | ||
- | ff-django-raspi: | ||
- | olkvm: | ||
- | hosts: | ||
- | ff_pliening_gbw_kvm_ol: | ||
- | olfutro: | ||
- | hosts: | ||
- | ff_pliening_gbw_futro_mesh: | ||
- | olgluon: | ||
- | children: | ||
- | olkvm: | ||
- | olfutro: | ||
- | olall: | ||
- | children: | ||
- | oldeb: | ||
- | olgluon: | ||
- | ffmucall: | ||
- | children: | ||
- | ffmuc: | ||
- | olall: | ||
- | ... #YAML end syntax | ||
- | </ | ||
- | * **145** Zeilen (ohne Variablen): | ||
- | * mit **76** Hosts | ||
- | * und **13** Unter-/ | ||
- | |||
- | Bei durchschnittlich 15 Variablen pro Host und 5 Variablen pro Gruppe ergäbe das eine Inventory-Datei mit | ||
- | * **145** Zeilen (ohne Variablen): 145 | ||
- | * mit **76** Hosts ~15 Variablen pro Host: 1.140 | ||
- | * und **13** Unter-/ | ||
- | ergäbe dies eine Inventory-Datei mit **__1.350__** Zeilen. 8-o | ||
- | |||
- | /* | ||
- | |||
- | https:// | ||
- | https:// | ||
- | |||
- | https:// | ||
- | |||
- | |||
- | FIXME FIXME FIXME FIXME FIXME FIXME FIXME FIXME FIXME FIXME FIXME FIXME | ||
- | |||
- | |||
- | |||
- | /* https:// |