使用loop / with_item建立变量列表

时间:2019-02-14 23:06:31

标签: ansible

我正在尝试使用loop / with_item动态构建列表:

- name: processes
  package: ""
  set_fact:
    plugin_options: "{{ CollectFileDescriptor true | CollectContextSwitch true | <ProcessMatch   '{{ item.name }}'  > | CollectFileDescriptor false | CollectContextSwitch true | </ProcessMatch>}}"
    loop:
       - { name: proc1 }
       - { name: proc2 }

所以最后我应该拥有plugin_options:

CollectFileDescriptor true 
CollectContextSwitch true 
<ProcessMatch   proc1  > 
 CollectFileDescriptor false 
 CollectContextSwitch true 
</ProcessMatch>
CollectFileDescriptor true 
CollectContextSwitch true 
<ProcessMatch   proc2  > 
 CollectFileDescriptor false 
 CollectContextSwitch true 
</ProcessMatch>

显然我做错了。有什么提示吗?

1 个答案:

答案 0 :(得分:0)

您为什么认为jinja2管道适合构造XML元素?

- set_fact:
    plugin_options: >-
      {% for item in ["proc1", "proc2"] %}
      CollectFileDescriptor true 
      CollectContextSwitch true 
      <ProcessMatch  {{item}} > 
      CollectFileDescriptor false 
      CollectContextSwitch true 
      </ProcessMatch>
      {% endfor %}