有条件执行ansible失败

时间:2016-07-27 12:39:56

标签: ansible ansible-playbook

我正在尝试编写一个要在4个组上执行的任务。其中2个基于位置's'''ada',其中2个基于分布。每个组合都有单独的模板:

sb  - redhat  - template 1
sb  - aix     - template 2
ada - redhat  - template 3
ada - aix     - template 4

主机:

[redhat]
redhat1
redhat2

[sb]
sdbcf1
aix2
aix2

但是当我使用'when'执行模板模块的任务时,如下所示。挑战在于,任务正在第一组分布上运行,并在第二个条件下被跳过。我希望任务只在服务器同时在两个组中运行时运行。在这种情况下,我没有一个常见的服务器。如何才能做到这一点 ?我究竟做错了什么 ?

- name: Copying our rsyslog template to Redhat servers in sb
  template: src=rsyslog.conf.sb.lx.j2 dest=/etc/rsyslog.conf.test owner=root mode=0600
  when: (ansible_distribution == "RedHat"  and  "'sb' in {{group_names}}")
  notify:  restart rsyslog

1 个答案:

答案 0 :(得分:0)

不要在when:声明中使用模板化内容:

when: ansible_distribution == "RedHat" and "sb" in group_names