首页 新闻 会员 周边 捐助

hostvars维护了所有主机的变量表,vars维护当前主机的变量表

0
[已关闭问题] 关闭于 2025-07-16 17:49

hostvars维护了所有主机的变量表,当前主机的变量表维护在哪里

  • debug: var=ansible_all_ipv4_addresses 是从哪张表获取的
  • debug: msg="{{ hostvars['server2']['ansible_all_ipv4_addresses'] }}" 这个是从hostvars中获取的

同步机制:

当前主机的变量空间与 hostvars[inventory_hostname] 自动保持同步

修改任意一个位置,另一个会立即更新

访问优先级:

yaml

  • debug: var=some_var # 优先从当前主机变量空间读取
    性能差异:

直接访问变量空间速度更快(无字典查找开销)

_java_python的主页 _java_python | 小虾三级 | 园豆:984
提问于:2025-07-16 17:47
< >
分享
所有回答(1)
0

查看当前主机所有变量
要查看当前主机的完整变量空间(包括事实、自定义变量等),可以使用:

yaml

  • name: Display ALL variables for current host
    debug:
    var: vars # 这是关键!使用魔术变量 vars
  1. 变量空间的组成
    这个空间包含:

系统事实:ansible_* 系列变量(如 ansible_all_ipv4_addresses)

Inventory 变量:host_vars/group_vars 中的变量

Playbook 变量:vars: 块中定义的变量

运行时变量:set_fact 设置的变量,register 注册的变量

角色变量:加载的 role 中的默认变量和覆盖变量

命令行变量:-e 传递的额外变量

_java_python | 园豆:984 (小虾三级) | 2025-07-16 17:49
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册