Ansible通过CLI命令行获取所有自定义变量,包括inventory清单和group_vars
1 ansible -i inventory.ini localhost -m debug \ 2 -a 'msg="{% set filtered_var = {} %} {% for key in _my_vars %} {{ filtered_var.update({key: lookup(\"vars\", key)}) }} {% endfor %} {{ filtered_var | to_json }}"' \ 3 -e '_hostvars="{{ hostvars[inventory_hostname].keys() }}"' \ 4 -e '_special_vars=["ansible_check_mode","ansible_connection","ansible_config_file","ansible_diff_mode","ansible_facts","ansible_forks","ansible_inventory_sources","ansible_playbook_python","ansible_python_interpreter","ansible_run_tags","ansible_skip_tags","ansible_verbosity","ansible_version","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","group_names","ungrouped","hostvars","inventory_hostname","inventory_hostname_short","omit","play_hosts","playbook_dir","role_names"]' \ 5 -e '_my_vars="{{ vars.keys() | difference(_special_vars) | reject(\"match\", \"^_.*$\") | list | sort }}"' \ 6 | sed -E 's/localhost \| (FAILED|SUCCESS) => //g' \ 7 | /usr/bin/python3 -c "import sys, json; data = json.load(sys.stdin); print(json.dumps(json.loads(data['msg']), indent=2));"
浙公网安备 33010602011771号