Ansible:从命令行覆盖清单的 ansible_host

use*_*484 2 ansible ansible-inventory

我有一个简单的库存hosts

dockermachine ansible_host=10.10.10.10
Run Code Online (Sandbox Code Playgroud)

我需要能够从命令行提供我希望的任何其他 IP,覆盖默认值,例如: ansible-playbook -i hosts@dockermachine.ansible_host=11.11.11.11 site.yml

我怎样才能做到这一点?

Zei*_*tor 5

如果您的清单真的那么简单,那么您可能可以在没有主机名的情况下生存。从当前默认库存中删除该条目。确保您的 playbook 针对该all组,并使用单个主机 IP 库存启动您的 playbook:

ansible-playbook -i 10.10.10.11, my_playbook.yml
Run Code Online (Sandbox Code Playgroud)

注意:IP 后面的逗号不是错误,它需要存在,以便-i参数后面的 IP 被解释为逗号分隔的主机列表,而不是库存文件路径。