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
我在限制 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