Ansible 无法识别 host_vars 下未找到的变量

Ansible not recognising variables not found under host_vars

我有以下库存

[foo]
foosrv ansible_host=11.22.33.44 

[bar]
barsrv ansible_host=44.11.22.33

[zoo]
zoosrv ansible_host=21.21.21.21

和以下文件结构

.
├── ansible.cfg
├── files
│   └── aws.yaml
├── host_vars
│   ├── foosrv
│   │   ├── templates
│   │   │   └── repoConf.yaml.j2
│   │   └── vault
│   └── barsrv
│       ├── templates
│       │   └── repoConf.yaml.j2
│       └── vault
├── inventory
├── site.yaml
├── templates
│   ├── amend.py.j2
│   └── config.j2
└── vars
    ├── ansible_vars.yaml
    └── vault

我的问题是 ./vars/vault 下的任何变量都无法被 ansible 识别。

关于这里可能出现的问题有什么提示吗?

Ansible 不会自动从 vars 目录加载变量。

加载变量有多种选择:

  • Ansible 将从 host_vars 中匹配清单主机名的文件(或目录)加载变量。
  • Ansible 将从 group_vars 中的文件(或目录)加载变量,匹配主机所属组的名称。
  • 您可以使用 include_vars 任务从文件中显式加载变量。

如果要自动加载所有主机的变量,请将它们放在 group_vars/all.yaml(或 group_vars/all 的子目录)中。

Ansible 将自动检测(并解密,如果您提供了密码)保管库加密的文件。