我想知道是否有这种语法可以根据主机要求运行剧本:
包括:tomcat8_for_assc_team.yml 什么时候: 主机组:assc
包括:tomcat8_for_oab_team.yml 什么时候: 主机组:oab
在我的清单文件中:
[assc] 虚拟机1 虚拟机2 等
[oab] 虚拟机4 虚拟机5 等
答案 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中时,才会运行包含的第一个剧本。第二个是上去燕麦的。