Como atribuir um valor vazio a uma variável no Ansible?

9

Se firewall_allowed_ports em:

- name: port {{ item }} allowed in firewall
  ufw:
    rule: allow
    port: "{{ item }}"
    proto: tcp
  with_items: 
    - 22
    - "{{ firewall_allowed_ports }}"

é indefinido, então este erro ocorre:

fatal: [host.example.com]: FAILED! => {"failed": true, "msg": "the field 'args' 
has an invalid value, which appears to include a variable that is undefined.

Tente resolver o problema

"{{ firewall_allowed_ports | }}"

resulta em:

fatal: [host.example.com]: FAILED! => {"failed": true, "msg": "template error
while templating string: expected token 'name', got 'end of print statement'. 
String: {{ firewall_allowed_ports | }}"}
    
por 030 27.09.2016 / 13:48

1 resposta

9

Use default([]) para criar uma lista vazia se firewall_allowed_ports for indefinido. O with_items irá ignorá-lo quando estiver vazio.

- name: port {{ item }} allowed in firewall
  ufw:
    rule: allow
    port: "{{ item }}"
    proto: tcp
  with_items: 
    - 22
    - "{{ firewall_allowed_ports | default([]) }}"
    
por 27.09.2016 / 13:59

Tags