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 将自动检测(并解密,如果您提供了密码)保管库加密的文件。
我有以下库存
[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 将自动检测(并解密,如果您提供了密码)保管库加密的文件。