2016-04-16 9 views
2

Wenn wir überprüfen hostvars mit:Wie spezifiziert man ein Array oder ein Listenelement mit yaml?

- name: Display all variables/facts known for a host 
    debug: var=hostvars[inventory_hostname] 

Wir erhalten:

ok: [default] => { 
    "hostvars[inventory_hostname]": { 
     "admin_email": "[email protected]", 
     "admin_user": "root", 
     "ansible_all_ipv4_addresses": [ 
      "192.168.35.19", 
      "10.0.2.15" 
     ],... 

Wie würde ich das erste Element der "ansible_all_ipv4_addresses" Liste angeben?

Antwort

4

Verwenden Punktnotation

"{{ ansible_all_ipv4_addresses.0 }}" 
2

Dies sollte genauso funktionieren wie in Python. Das heißt, Sie können auf die Schlüssel mit Anführungszeichen und den Index mit einer Ganzzahl zugreifen.

- set_fact: 
     ip_address_1: "{{ hostvars[inventory_hostname]['ansible_all_ipv4_addresses'][0] }}" 
     ip_address_2: "{{ hostvars[inventory_hostname]['ansible_all_ipv4_addresses'][1] }}" 

    - name: Display 1st ipaddress 
    debug: 
     var: ip_address_1 
    - name: Display 2nd ipaddress 
    debug: 
     var: ip_address_2 
Verwandte Themen