![Ansible:列出剧本所需的所有变量](https://linux22.com/image/711669/Ansible%EF%BC%9A%E5%88%97%E5%87%BA%E5%89%A7%E6%9C%AC%E6%89%80%E9%9C%80%E7%9A%84%E6%89%80%E6%9C%89%E5%8F%98%E9%87%8F.png)
给定一个剧本
---
- hosts:
some_host_group
roles:
- foo
- bar
我想获取剧本需要定义的所有变量的列表。例如:
# playbook-requires myplaybook.yml
对于更复杂(或只是众多)的剧本,这可能会派上用场。在开始编写此类实用程序之前,我想确保我没有重新发明轮子。
快速谷歌搜索显示了很多相反任务(列出所有定义的变量)的解决方案。这不是我想要的。
那么,有人知道有这样的实用程序吗?
答案1
没有这样的工具,我确信您需要一个完整的 Ansible-Yaml 和 Jinja-Parser。也许 ansible-lint 是一个很好的起点。
因为剧本和角色中可能会使用变量,角色的依赖项中也可能使用变量。角色也会有模板,模板可以使用变量。然后,在字典或列表中“构造”变量键的可能性不大,只有在完全运行脚本时才能看到。有一个剧本试运行 - 也许可以从那里开始检查所有错误 - 但是如果它包含 if else 条件,则只会解释一个块。