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