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
我正在尝试编写一个要在 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