如何查看ansible-playbook执行时读取的vars文件
查看Ansible Playbook执行时加载的变量文件
以下几种方法可以帮你追踪Ansible执行过程中加载的变量文件:
用
ansible-config dump查看默认变量路径
先确认Ansible默认扫描变量文件的目录,执行命令:ansible-config dump | grep DEFAULT_VARS_PATH输出会列出Ansible默认查找变量的目录,比如
/etc/ansible/group_vars/、/etc/ansible/host_vars/,这些目录下的yml/yaml文件都会被自动加载。用
--list-vars查看变量来源
虽然不会直接列出文件,但可以通过变量的来源标注推断加载的文件,执行:ansible-playbook your_playbook.yml --list-vars输出中部分变量会附带来源信息,比如
from group_vars/all.yml,对应就是加载了该文件。自定义回调插件记录加载的文件
这是最直接的方法,通过回调插件捕获变量加载的文件路径:- 在项目目录创建
callback_plugins文件夹 - 新建
var_loader_logger.py文件,内容如下:from ansible.plugins.callback import CallbackBase class CallbackModule(CallbackBase): CALLBACK_NAME = 'var_loader_logger' CALLBACK_VERSION = 2.0 CALLBACK_TYPE = 'notification' def v2_playbook_on_start(self, playbook): self._display.display("=== 已加载的变量文件 ===") for loader in playbook._loader._loaders.values(): if hasattr(loader, '_files_loaded'): for file_path in loader._files_loaded: self._display.display(f"→ {file_path}") - 执行playbook时指定该插件:
ansible-playbook your_playbook.yml -e 'ansible_callback_plugins=./callback_plugins'
执行日志里会直接列出所有被加载的变量文件路径。
- 在项目目录创建
检查playbook内的
vars_files字段
如果你的playbook里显式声明了vars_files,直接查看该字段下的文件列表即可,比如:- name: 示例Playbook hosts: all vars_files: - ./vars/common.yml - ./vars/{{ ansible_os_family }}.yml这些文件会被Ansible优先加载。
内容的提问来源于stack exchange,提问作者maf
相关产品推荐
相关产品推荐

