it-swarm.com.de

Wie ordne ich einer Variablen in Ansible einen leeren Wert zu?

Wenn firewall_allowed_ports im:

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

ist undefiniert, dann tritt dieser Fehler auf:

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

Versuch das Problem zu lösen

"{{ firewall_allowed_ports | }}"

ergebnisse in:

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

Verwenden Sie default([]), um eine leere Liste zu erstellen, wenn firewall_allowed_ports ist nicht definiert. Das with_items überspringt es, wenn es leer ist.

- name: port {{ item }} allowed in firewall
  ufw:
    rule: allow
    port: "{{ item }}"
    proto: tcp
  with_items: 
    - 22
    - "{{ firewall_allowed_ports | default([]) }}"
15
jscott