Ansible语法可根据主机条件运行任务

时间:2019-03-14 15:38:33

标签: ansible

我想知道是否有这种语法可以根据主机要求运行剧本:

  • 包括:tomcat8_for_assc_team.yml 什么时候: 主机组:assc

  • 包括:tomcat8_for_oab_team.yml 什么时候: 主机组:oab

在我的清单文件中:

[assc] 虚拟机1 虚拟机2 等

[oab] 虚拟机4 虚拟机5 等

1 个答案:

答案 0 :(得分:0)

您可以使用魔术变量group_names。此处描述:https://docs.ansible.com/ansible/latest/user_guide/playbooks_variables.html#accessing-information-about-other-hosts-with-magic-variables。他们说:group_names是当前主机所在的所有组的列表(数组)。

因此,在您的情况下,以下两个任务将完成工作。

- name: "run the playbook for assc"
  include: "tomcat8_for_assc_team.yml"
  when: "'assc' in group_names"
- name: "run the playbook for oab"
  include: "tomcat8_for_oab_team.yml"
  when: "'oab' in group_names"

仅当assc在当前主机的gouplist中时,才会运行包含的第一个剧本。第二个是上去燕麦的。