Veröffentlicht 12. März 20214 j Hey, ich stehe gerade vor einem Problem in Ansible (bin absoluter Neuling darin). Ich möchte die IP Adresse des targets zurückbekommen, diese in eine Variable packen und die Variable dann später in eine Datei einfügen. Jedoch bekomme ich immer nur Fehlermedlungen oder mehr als nur die IP zurück. Das aktuelle Script sieht so aus: -- - hosts: target become: true gather_facts: true tasks: - name: getIP debug: var=ansible_eth0.ipv4.address register: result - name: print lineinfile: destfile: /home/test/test.txt line: "{{ result }}" Ich habe bereits versucht die Variable result zu splitten, in etwa so (Erst mal versucht die grundlegend zu splitten um danach zu schauen welche Parameter ich angeben muss, damit nur die IP genommen wird): - name: print lineinfile: destfile: /home/test/test.txt line: "{{ result.split() }}" Doch hierbei kommt dann plötzlich die Fehlermeldung, dass die Variable result nicht existiert.... Finde nirgendswo eine Lösung, habt ihr vielleicht eine Idee?
12. März 20214 j Bist du sicher, dass das "eth0"-Interface vom remote Host verwendet wird? Ansonsten: Einen Schritt nach dem anderen Versuch erstmal, die remote IP überhaupt separat auszulesen, bevor du sie in eine Variable packst bzw. in eine Text-Datei schreiben willst. Hier zB sind unterschiedliche Methoden aufgeführt: https://www.middlewareinventory.com/blog/ansible-get-ip-address/ Eine Interface-spezifische (die du auch verwendest): - hosts: all gather_facts: yes tasks: # Getting the IP address of enp0s3 interface - debug: var=ansible_enp0s3.ipv4.address # Getting the IP address of eth0 interface - debug: var=ansible_eth0.ipv4.address -> für 2 spezifische remote Interfaces als Beispiel und dann noch unspezifisch, ausgelesen aus den sog. Ansible facts: - hosts: all tasks: - debug: var=hostvars[inventory_hostname]['ansible_default_ipv4']['address'] - debug: var=hostvars[inventory_hostname]['ansible_default_ipv6']['address'] Das "debug" dient dazu, einfach nur statements auszugeben, wenn sie ausgeführt werden. Versuch das vielleicht erstmal mit einem normalen Ansible run, ohne Variablen etc. - was das jew. ausgeben sollte, ist auf der Seite oben ebenfalls mit angegeben (nämlich eben nur die IP-Adresse). Wenn das funktioniert, dann kann man weiter überlegen, wie man das in eine Variable schmeißt + in eine Textdatei schreibt.
12. März 20214 j Danke für die Antwort! Nur die IP per debug auszugeben hatte ich bereits geschafft, mit dem setup Modul. Damit konnte ich es jedoch nicht in eine Variable speichern. Daraufhin bin ich auf dei Seite gestoßen die auch du verlinkt hast, allerdings wird bei mir damit nicht NUR die IP adresse ausgegeben, bzw in der Variable gespeichert, sondern der ganze Rest der davor steht ebenfalls... 😕 Und ja, bin mir sicher, dass es sich um eth0 handelt
Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.