ansible失败的条件执行

conditional execution of ansible failing

我正在尝试编写一个要在 4 个组上执行的任务。其中 2 个基于位置 'sb' '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' 执行模板模块的任务时,如下所示。挑战在于,任务在第一组分布中 运行 并且在第二个条件下被跳过。只有当服务器在两个组中时我才希望任务在 运行 中,而不仅仅是 one.In 在这种情况下我没有常见的服务器。如何才能做到这一点 ?我究竟做错了什么 ?

- 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

不要在 when: 语句中使用模板内容:

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