我created a repo重现我的情景。
基本上我们正在为我们的主机加载一个库存,我们可以通过库存覆盖每个主机的值而没有问题,但是想尝试使用host_vars。
我不是100%清楚主机变量如何与主机匹配。我读了ansible repo的例子,但似乎无法让它按照文档记录工作,所以我正在寻找对我们设置的一些审查。
当我在我的示例仓库中运行命令ansible-playbook -i ansible.inventory site.yml -clocal
时,我希望读取host_vars/{{ ansible_hostname }}
文件并覆盖变量中设置的任何内容,但这似乎不会发生。
有人可以指点我一个工作的例子,这样我就可以看到我们哪里出错了?
由于文档对此主题不是非常具体,因此这是当前版本的Ansible中vars的优先顺序:
在这里,您可以在ansible docs中看到从最小到最大的优先级顺序(最后列出的优先级排序变量)。
你应该认为host_vars和group_vars更像是默认值而不是默认值的覆盖。如果你在vars_files中有相同的var set:block like you do in your example它将优先。