繁体   English   中英

如何获取 Ansible playbook 中使用的变量列表?

[英]How to get a list of variables used in Ansible playbook?

我想获得 ansible playbook 中使用的变量列表。 我查看了设置和调试模块,但我怀疑我能做到这一点。

有没有通用的方法?

看看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"
    ]
}

您可以看到剩下的是Special 变量和变量var1 我不知道关于如何仅列出特殊变量的任何方法、过滤器或函数。 如果您创建这样的列表,您可以创建差异并仅获取您的变量。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM