是否有可能创建这样一个混乱的清单,使它只能在一个组,两个组或所有组上运行任务,但是在组内有被称为相同主机的主机?
主机的别名与剧本在组中相同,但是在每个组中,每个服务器和虚拟机都有不同的变量。而且,要从本地主机连接到VM,需要将服务器用作Jumphost。
场景应大致如下所示: 库存:
[group1]
server
vm
[group2]
server
vm
[group3]
server
vm
剧本:
- hosts: server
tasks:
- name: ....
- hosts: vm
tasks:
- name: ...
答案 0 :(得分:0)
给出以下清单:
[server]
machine1.somewhere.com
machine2.somewhere.com
machine3.somewhere.com
[vm]
vm1.virtual.com
vm2.virtual.com
vm3.virtual.com
[group1]
machine1.somewhere.com
vm1.virtual.com
[group2]
machine2.somewhere.com
vm2.virtual.com
[group3]
machine3.somewhere.com
vm3.virtual.com
您可以使用以上的剧本支架并将limit的用法用于特定的人群:
# All groups
ansible-playbook -i inventory.ini playbook.yml
# Group 1 only
ansible-playbook -i inventory.ini playbook.yml -l group1
# Group 1 and 3
ansible-playbook- i inventory.ini playbook.yom -l group1:group3
您也可以在播放的hosts
节中使用这种模式。有关模式的更多信息,请参见the documentation