在 Ansible 中自动查找变量来源的方法

在 Ansible 中自动查找变量来源的方法

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

相关内容