2017-02-28 6 views
0

Dank anderer stackoverflow Benutzer, habe ich es geschafft, einige Daten aus einer Variable, die durch das digital_ocean ansible Modul registriert wurde, zu ziehen. Ich habe versucht, loop_control zu verwenden, um nur einen Teil der großen Variablen zu drucken, die registriert wird. Hier ein Auszug aus der Rolle:schleife mit digital_ocean ansible modul

- name: Add droplet 
    digital_ocean: > 
{ some parameters } 
    with_dict: "{{ droplets_up }}" 
    register: my_droplet 

- debug: msg="Droplet IP is {{ item.droplet.ip_address }}" 
    with_items: "{{ my_droplet.results }}" 
    loop_control: 
    label: "{{ item }}" 

Ich bin offensichtlich etwas falsch hier tun, da sie die ganze Variable sowie die Debug-Meldung ausgibt. Ich verstehe loop_control an dieser Stelle nicht ganz, aber weiß jemand, ob es möglich ist, es auf diese Weise mit diesem Modul zu verwenden?

Antwort

1

debug Aktion hat result['_ansible_verbose_always'] = True, so wird es immer voller Artikel drucken möchten, egal, was Ihr label ist (obwohl label: "{{item}}" ändert nichts, versuchen label: "{{ item.droplet.ip_address }}").

Wenn Sie nur alle Adressen Ihre IP aufzulisten, verwenden map Filter und einzelne Debug-Anweisung:

- name: Print droplets IP 
    debug: 
    msg: "{{ my_droplet.results | map(attribute='droplet.ip_address') | list }}"