语句ansible时循环变量

时间:2017-12-12 10:17:31

标签: configuration ansible devops configurationmanager ansible-template

我正在尝试在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

1 个答案:

答案 0 :(得分:0)

我的原始答案不起作用,但我相信下面的答案会(或者至少使用我有限的模拟数据):

- set_fact:
    current_template: "{{item}}"
- name: anaconda.handler
  command: echo '1' 
  notify: "{{item.name}}"
  when: current_template.changed is defined