每当我需要更改 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 / 主机文件 / 组文件