2017-10-09 3 views
0

Meine Hosts haben 3 Netzwerk-IP-Adressen und eine davon wird später in meinem Playbook benötigt.Ansible Setup-Modul zum Suchen und Finden einer IP-Adresse

In meinem Textbuch Ich habe folgende Setup-Modul lief:

- name: Gather Networks Facts into Variable 
    setup: 
    register: setup 

- name: Debug Set Facts 
    debug: 
    var: setup.ansible_facts.ansible_ip_addresses 

Das liefert die folgende Ausgabe:

{ 
    "setup.ansible_facts.ansible_ip_addresses": [ 
     "10.0.2.15", 
     "fe80::85ae:2178:df12:8da0", 
     "192.168.99.63", 
     "fe80::3871:2201:c0ab:6e39", 
     "192.168.0.63", 
     "fe80::79c5:aa03:47ff:bf65", 
     "fd89:8d5f:2227:0:79c5:aa03:47ff:bf65", 
     "2a02:c7f:9420:7100:79c5:aa03:47ff:bf65" 
    ] 
} 

Ich versuche, einen Weg zu finden, die 192.168.0.63 zu finden durch die Suche Verwenden Sie die ersten drei Oktette oder 192.168.0. Ich möchte auch diesen Wert in eine Tatsache bringen, damit ich das später in meinem Spielbuch verwenden kann.

Was wäre der beste Weg, diesen Wert mit Ansible oder Jinja2 zu suchen und zu finden?

Antwort

1

Wird dies tun?

- set_fact: 
    my_fact: "{{ (setup.ansible_facts.ansible_ip_addresses | select('match','192.168.0.') | list)[0] }}" 

Wenn mehrere Werte passend zum Muster sind, wird es die ersten in Ordnung bringen.

+0

Das hat perfekt funktioniert. Vielen Dank – PatchSte

Verwandte Themen