我想获取 ansible 剧本中使用的变量列表。
我研究了设置和调试模块,但我怀疑我能做到这一点。
有没有通用的方法?
看一眼vars
- debug: var=vars
您将看到所有变量,其中一些变量作为属性重复hostvars
- debug: var=hostvars
可以仅列出不在主机变量中的变量。例如,剧本
shell> cat playbook.yml
- hosts: test_01
vars:
var1: test
tasks:
- set_fact:
my_vars: "{{ vars.keys()|
difference(hostvars[inventory_hostname].keys())|
list|
sort }}"
- debug:
var: my_vars
给出(删节)
ok: [test_01] => {
"my_vars": [
"ansible_dependent_role_names",
"ansible_play_batch",
"ansible_play_hosts",
"ansible_play_hosts_all",
"ansible_play_name",
"ansible_play_role_names",
"ansible_role_names",
"environment",
"hostvars",
"play_hosts",
"role_names",
"var1"
]
}
你可以看到剩下的是特殊变量 https://docs.ansible.com/ansible/latest/reference_appendices/special_variables.html#special-variables和变量var1
。我不知道有任何关于如何仅列出特殊变量的方法、过滤器或函数。如果您创建这样的列表,您可以创建差异并仅获取变量。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)