จะกำหนดค่าว่างให้กับตัวแปรใน Ansible ได้อย่างไร


12

หากfirewall_allowed_portsอยู่ใน:

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

ไม่ได้กำหนดดังนั้นข้อผิดพลาดนี้เกิดขึ้น:

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

พยายามแก้ไขปัญหา

"{{ firewall_allowed_ports | }}"

ผลลัพธ์ใน:

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

คำตอบ:


14

ใช้default([])เพื่อสร้างรายการที่ว่างเปล่าถ้าfirewall_allowed_portsไม่ได้กำหนด with_itemsจะข้ามมันเมื่อว่าง

- name: port {{ item }} allowed in firewall
  ufw:
    rule: allow
    port: "{{ item }}"
    proto: tcp
  with_items: 
    - 22
    - "{{ firewall_allowed_ports | default([]) }}"
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.