我正在尝试在when语句中使用变量,而ansible会弹出类似这样的警告
[WARNING]: when statements should not include jinja2 templating delimiters such as {{ }} or {% %}. Found: {{ item.name}}.changed
我首先使用循环:
- include_tasks: anaconda_env.yml
with_items: "{{anaconda_templates}}"
在anaconda_env file.yml中我有这个:
- name: anaconda.templates
template:
owner: "{{item.owner|default(common_owner)}}"
group: "{{item.group|default(common_group)}}"
mode: "{{item.mode|default(common_mode)}}"
src: "{{item.template}}"
dest: "{{item.dest}}"
register: "{{item.name}}"
- name: anaconda.handler
command: echo '1'
notify: "{{item.name}}"
when: "{{ item.name}}.changed"
在另一种情况下,我尝试了“{{item.name}}。rc == 1”,我也有同样的问题。任何想法我怎么能避免这个Wanring的消息。
我在这里找到了问题,但没有解决方案 https://github.com/ansible/ansible/issues/27225
答案 0 :(得分:0)
我的原始答案不起作用,但我相信下面的答案会(或者至少使用我有限的模拟数据):
- set_fact:
current_template: "{{item}}"
- name: anaconda.handler
command: echo '1'
notify: "{{item.name}}"
when: current_template.changed is defined