如何在cs_instance"中添加列表元素和#34;标签如果定义了变量

时间:2018-04-12 09:45:53

标签: ansible

我正在使用CloudStack模块cs_instance创建实例,例如:

- name: create or update instance
  cs_instance:
    display_name: web-vm-1
    template: Linux Debian 7 64-bit
    service_offering: Tiny
    ssh_key: john@example.com
    tags:
      - { key: admin, value: john }
      - { key: group, value: "{{ vm_group_tab }}" }
    user_data: |
        #cloud-config
        packages:
          - nginx

如果定义了变量,我怎么能添加或删除tags,例如,如果变量vm_group_tab未定义,我只想拥有:

    tags:
      - { key: admin, value: john }

如果定义了变量vm_group_tab

    tags:
      - { key: admin, value: john }
      - { key: group, value: "{{ vm_group_tab }}" }

目前,我将var设置为null vm_group_tab: ~,但该标记已创建为group: None任何想法如何处理此问题。

1 个答案:

答案 0 :(得分:0)

这样的事情:

tags: >
  {{ [dict(key='admin',value='john')] + 
     ([dict(key='group',value=vm_group_tab|d(''))] if vm_group_tab|d('') != '' else [])
  }}