ansible-playbook --limit 不适用于重叠的主机别名

ansible-playbook --limit not working with overlapping host aliases

我在限制 Ansible 仅与特定主机一起工作时遇到问题

我的库存文件如下所示:

[staging-docker-containers]
app1 ansible_host=host.domain.com ansible_ssh_port=2222  
app2 ansible_host=host.domain.com ansible_ssh_port=2223  
app3 ansible_host=host.domain.com ansible_ssh_port=2224  

[staging-other-servers]
app1 ansible_host=host.domain.com ansible_ssh_port=2225  
app2 ansible_host=host.domain.com ansible_ssh_port=2226  
app3 ansible_host=host.domain.com ansible_ssh_port=2227  

当我运行跟随命令

ansible-playbook --limit="staging-docker-containers:app3"  my-playbook.yml -i staging 

它忽略限制命令并尝试连接到 staging-other-servers 组下的 app3,而不是 staging-docker-containers 组下的 app3。

我是不是做错了什么?

您可以在不同的组中拥有相同的主机。
但是不能有不同的hosts在同一个名字下。
如果在不同的地方为同一个主机定义相同的主机变量,后者优先。
所以你的库存实际上变成了:

[staging-docker-containers]
app1
app2
app3

[staging-other-servers]
app1 ansible_host=host.domain.com ansible_ssh_port=2225
app2 ansible_host=host.domain.com ansible_ssh_port=2226
app3 ansible_host=host.domain.com ansible_ssh_port=2227