Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
linux:ansible:playbook_example_10 [24.09.2022 12:40. ] – [Inventory] djangolinux:ansible:playbook_example_10 [24.09.2022 13:50. ] (aktuell) – [Links] django
Zeile 479: Zeile 479:
  
 Die betreffenden Hostspezifischen Variablen halten wir hier in entsprechenden Dateien bzw. Unterverzeichnissen vor. Das nachfolgende Beispiel hier zeigt die Host-spezifischen Variablen eines Hosts im Intranet. Die betreffenden Hostspezifischen Variablen halten wir hier in entsprechenden Dateien bzw. Unterverzeichnissen vor. Das nachfolgende Beispiel hier zeigt die Host-spezifischen Variablen eines Hosts im Intranet.
-   $ less inventories/production/host_vars/pml111002+   $ less ~/ansible/inventories/production/host_vars/pml111002
  
 <file c++ vml030010># Generated by Ansible on 2022-09-20, do not edit manually! <file c++ vml030010># Generated by Ansible on 2022-09-20, do not edit manually!
Zeile 490: Zeile 490:
 ssh_keyfile: ~/.ssh/id_idmz"</file> ssh_keyfile: ~/.ssh/id_idmz"</file>
  
 +Als Beispiel für einen externen Host, der nur via Jump-Host erreichbar ist sehen wir uns die Inventory-Host-Definition des Hosts **''ff_pliening_gbw%%__%%ug_''** näher an.
 +   $ less ~/ansible/inventories/production/host_vars/ff_pliening_gbw__ug_ 
  
-==== Ergebnis: ~/.ssh/config ==== 
  
 +<file c++ ff_pliening_gbw__ug_># Generated by Ansible on 2022-09-20, do not edit manually!
 +host_alias: 
 +host_ipv4:
 +host_ipv6: 2001:678:e68:102:32b5:c2ff:fe56:62b1
 +ssh_user: root
 +ssh_port: 22
 +ssh_protocol: 2
 +ssh_keyfile: ~/.ssh/id_freifunk
 +host_sshjump: vml070010
 +
 +branch: "stable"
 +domain: "ffmuc_muc_ost"
 +director: "ffmuc_muc_ost"
 +node_contact_address: "Django [BOfH] | django@nausch.org | chat: @django"
 +node_hostname: "ff_pliening_gbw_antipode"
 +node_latitude: "-48.19861319429455"
 +node_longitude: "-168.2017571420684"
 +node_model: "TP-Link TL-WDR4300 v1"
 +node_share_location: "True"
 +node_ghostmode: "False"
 +node_release: "experimental"
 +node_autoupdate: "False"
 +</file>
 +
 +Hier sehen wir nun dass unter anderem ein anderer SSH-User, ein anderes SSH-Keyfile sowie ein Jump-Host benutzt wird. Ferner finden sich im Anschluß noch weitere Host-spezische Variablen, für die Konfiguration des betreffenden **[[https://map.ffmuc.net/#!/de/map/30b5c25662b1|Freifunk-Knotens]]**.
 +
 +=== Playbook-Lauf ===
 +Dank der **[[playbook_example_08#aufgabenstellung_2_-_erweiterte_grund-_basis-installation_fuer_ansible-vault|Vorkonfiguration]]** unseres Ansible-Controll-Nodes, welche wir im Kapitel **[[playbook_example_08|Ansible - erweiterte Konfigurationsbeispiele: Ansible mit Hilfe von Ansible einrichten]]** hier in Djangos WIKI vorgenommen hatten, reicht zum Starten des Playbooks folgender Befehlsaufruf:
 +   $ ansible-playbook ~/ansible/playbooks/ssh_client_config.yml
 +
 +<html>
 +<pre class="code">
 +<font style="color: rgb(0, 0, 0)">
 +PLAY [ssh_client_config.yml] ******************************************************************************************************
 +
 +TASK [Gathering Facts] ************************************************************************************************************</font>
 +<font style="color: rgb(25, 100, 5)">ok: [localhost]</font>
 +<font style="color: rgb(0, 0, 0)">
 +TASK [ssh_client : include_tasks] *************************************************************************************************</font>
 +<font style="color: rgb(43, 100, 164)">included: /home/django/ansible/roles/ssh_client/tasks/client_config.yml for localhost</font>
 +<font style="color: rgb(0, 0, 0)">
 +TASK [ssh_client : Generieren und kopieren der SSH Client Konfiguration ~/.ssh/config.] *******************************************</font>
 +<font style="color: rgb(25, 100, 5)">ok: [localhost]</font>
 +<font style="color: rgb(0, 0, 0)">
 +PLAY RECAP *************************************************************************************************************************</font>
 +<font style="color: rgb(25, 100, 5)">localhost                  </font><font style="color: rgb(0, 0, 0)">: </font><font style="color: rgb(25, 100, 5)">ok=3</font>    changed=0    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0</font>
 +</pre>
 +</html>
 +=== Ergebnis: ~/.ssh/config ===
 +Als Ergebnis erhalten wir dann quasi auf Knopfdruck immer eine aktuelle SSH-Client-Konfigurationsdatei **''~/.ssh/config''**, basierend auf den Konfigurationsdaten aus unsere Inventory.
  
 <file bash ~/.ssh/config># Generiert mit Hilfe von Ansible am 2022-09-24 - diese Datei nicht manuell bearbeiten! <file bash ~/.ssh/config># Generiert mit Hilfe von Ansible am 2022-09-24 - diese Datei nicht manuell bearbeiten!
Zeile 515: Zeile 566:
 # interne Systeme - IDMZ # interne Systeme - IDMZ
 Host vml030010 Host vml030010
-  Hostname 10.0.0.17+  Hostname 10.30.30.10
   User django   User django
   Port 22   Port 22
Zeile 522: Zeile 573:
  
 Host fw1 Host fw1
-  Hostname 10.0.0.17+  Hostname 10.30.30.10
   User django   User django
   Port 22   Port 22
Zeile 529: Zeile 580:
  
 Host vml030020 Host vml030020
-  Hostname 10.0.0.27+  Hostname 10.30.30.20
   User django   User django
   Port 22   Port 22
Zeile 536: Zeile 587:
  
 Host fw2 Host fw2
-  Hostname 10.0.0.27+  Hostname 10.30.30.2
   User django   User django
   Port 22   Port 22
Zeile 543: Zeile 594:
  
 Host vml030030 Host vml030030
-  Hostname 10.0.0.37+  Hostname 10.30.30.30
   User django   User django
   Port 22   Port 22
Zeile 550: Zeile 601:
  
 Host  Host 
-  Hostname 10.0.0.37+  Hostname 10.30.30.30
   User django   User django
   Port 22   Port 22
Zeile 560: Zeile 611:
  
 Host vml030250 Host vml030250
-  Hostname 10.0.0.40+  Hostname 10.30.30.250
   User django   User django
   Port 22   Port 22
Zeile 567: Zeile 618:
  
 Host db_clusternode_3 Host db_clusternode_3
-  Hostname 10.0.0.40+  Hostname 10.30.30.250
   User django   User django
   Port 22   Port 22
Zeile 575: Zeile 626:
 # interne Systeme - Intranet # interne Systeme - Intranet
 Host pml010002 Host pml010002
-  Hostname 10.0.10.2+  Hostname 10.10.10.2
   User django   User django
   Port 22   Port 22
Zeile 582: Zeile 633:
  
 Host kvm_1 Host kvm_1
-  Hostname 10.0.10.2+  Hostname 10.10.10.2
   User django   User django
   Port 22   Port 22
Zeile 592: Zeile 643:
  
 Host pml010126 Host pml010126
-  Hostname 10.0.10.71+  Hostname 10.10.10.126
   User django   User django
   Port 22   Port 22
Zeile 599: Zeile 650:
  
 Host feinstaubsensor Host feinstaubsensor
-  Hostname 10.0.10.71+  Hostname 10.10.10.126
   User django   User django
   Port 22   Port 22
Zeile 641: Zeile 692:
 </file> </file>
  
 +===== Fazit  und Ausblick =====
 +<WRAP center round info 80%>
  
-FIXME //**... do geds weida!**// FIXME +Die manuelle, zeitraubende und ggfFehlerbehaftete Pflege der SSH-Client-Konfigurations-Datei durch mehrere Admins auf verschiedenen Ansible-Kontroll-Knoten ist somit GeschichteFerner sind wir unabhängig und können so viele SSH-Jump-Hosts verwenden, die eben zum Erreichen der Zielhost von Nöten sind.
  
 +Die initiale Fragestellung //Wie wird sicher gestellt, dass alle Ziele auch erreichbar sind?//, die wir bei unseren **[[detail#wo_laufen_die_ansible_scripte|Vorüberlegungen]]** angestellt hatten, können wir also auch als erfolgreich erledigt abhaken und wir sind bei unserem Ziel von **Automatisierung** und **Orchestrierung** einen wesentlichen Schritt weiter gekommen. :UP:
 +</WRAP>
  
-===== lorem ipsum dolor sit amet =====+====== Links ====== 
 +  * **[[detail|zurück zum Kapitel "Ansible - Erweiterte Konfigurationsbeispiele"]] <= ** 
 +  * **=> [[playbook_example_11|weiter zum Kapitel "Ansible - Erweiterte Konfigurationsbeispiel: Roles]]** 
 +  * **[[start|Zurück zur "Ansible"-Übersicht]]** 
 +  * **[[wiki:start|Zurück zu >>Projekte und Themenkapitel<<]]** 
 +  * **[[http://dokuwiki.nausch.org/doku.php/|Zurück zur Startseite]]**
  
-:KRIT: FIXME :KRIT: 
  
  • linux/ansible/playbook_example_10.1664023259.txt.gz
  • Zuletzt geändert: 24.09.2022 12:40.
  • von django