我正在尝试编写一个要在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
答案 0 :(得分:0)
不要在when:
声明中使用模板化内容:
when: ansible_distribution == "RedHat" and "sb" in group_names