2017-02-28 19 views
0

感謝其他的stackoverflow用戶,我設法從digital_ocean模塊註冊的變量中提取一些數據。我試圖使用loop_control僅打印已註冊的巨大變量的一部分。這裏是一個角色摘錄:使用digital_ocean ansible模塊的循環控制

- 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 }}" 

我明顯在這裏做錯了,因爲它打印整個變量以及調試消息。在這一點上,我不太瞭解loop_control,但是有誰知道是否有可能以這種方式在這個模塊中使用它?

回答

1

debug動作有result['_ansible_verbose_always'] = True,所以它總是會打印完整的項目,不管你label是什麼(雖然label: "{{item}}"不會改變任何東西,嘗試label: "{{ item.droplet.ip_address }}")。

如果你只需要列出所有的IP地址,使用map過濾器和單調試聲明:

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