Ansible

Ansible:在任務或模板中有條件?

  • January 21, 2020

似乎有兩種方法可以使文件內容依賴於變數。

copy:
 path: /foo
 content: |
   {{ if myFoo }}
     ; lots of stuff
   {{ else }}
     ; lots of other stuff
   {{ end }}

或者我可以

copy:
 path: /foo
 content: |
     ; lots of stuff
when: myFoo

copy:
 path: /foo
 content: |
     ; lots of other stuff
when: not myFoo

這裡的正常構造是什麼?想要什麼?

我不得不重寫任務。

- copy:
       dest: /tmp/ansiblefile.txt
       content: |
         {% if myFoo %}
           ; lots of stuff
         {% else %}
           ; lots of other stuff
         {% endif %}
- copy:
   dest: /foo
   content: |
     ; lots of stuff
 when: myFoo

- copy:
   dest: /foo
   content: |
     ; lots of stuff
 when: not myFoo

在我看來,兩者都可以。但是,我會使用後一種方法,因為我發現不處理 jinja 模板更容易;jinja 模板的文件不是很詳細且易於理解。

引用自:https://unix.stackexchange.com/questions/561624