![在 Ansible 中自动查找变量来源的方法](https://linux22.com/image/777238/%E5%9C%A8%20Ansible%20%E4%B8%AD%E8%87%AA%E5%8A%A8%E6%9F%A5%E6%89%BE%E5%8F%98%E9%87%8F%E6%9D%A5%E6%BA%90%E7%9A%84%E6%96%B9%E6%B3%95.png)
每当我需要更改 Ansible 存储库中的某些内容时,我都必须检查所有可以设置变量这非常耗时。
有什么东西可以向我显示类似“此模板文件中使用的变量 X 在所有这些位置都为主机 Y 定义”的内容吗?
答案1
我们公司也遇到过类似的问题。库存非常大,很难跟踪变量的定义位置以及哪些变量“获胜”了(https://docs.ansible.com/ansible/latest/playbook_guide/playbooks_variables.html#understanding-variable-precedence)
我编写了一个简单的工具来解决这个问题:https://github.com/hille721/ansible-variables
但这只适用于主机上下文变量,因此不适用于剧本或角色变量
答案2
我认为对于这种用例,shell 是你最好的朋友:
grep -ERl "your_vars|{{ your_vars }}" /path/to/your/ansible/code
可能会有用。
答案3
询问功能要求:
https://github.com/ansible/ansible/issues/82204- 识别变量的来源:env var / -e / 主机文件 / 组文件