Ansible 嵌套 host_vars 个文件夹
Ansible nested host_vars folders
我正在尝试按父级对所有 host_vars 文件进行分组,我有以下文件夹结构:
- mail.yml
- hosts.yml
- group_vars/
- pool1.yml
- pool2.yml
- host_vars/
- ns1.me.yml
.....
和hosts.yml:
all:
children:
pool1:
hosts:
ns1.me:
ansible_host: 10.10.0.1
ns2.me:
ansible_host: 10.10.0.2
pool2:
hosts:
ns3.me:
ansible_host: 10.10.0.14
在此设置中,它工作正常,但如果我尝试在 host_vars 和 ns1.me.yml 之间添加嵌套文件夹,ansible 将不会获取变量
来自 ansible 文档:“您还可以创建以您的组或主机命名的目录。Ansible 将按字典顺序读取这些目录中的所有文件。” - https://docs.ansible.com/ansible/latest/user_guide/intro_inventory.html 但不工作...
所需的文件夹结构:
- host_vars/
- pool1/
- ns1.me.yml
- ns2.me.yml
- pool2/
- ns3.me.yml
我错过了什么? :)
这是对语句“创建以您的组或主机命名的目录” 的误解。您可以在 group_vars
中的组之后创建目录,也可以在 host_vars
中的主机之后创建目录。但在你的情况下
- host_vars/
pool1/
ns1.me.yml
ns2.me.yml
pool2/
ns3.me.yml
您已经在 host_vars
中的组之后创建了目录。这不行。
当您有更多包含主机或组变量的文件时,将使用此 Ansible 功能。例如
mail.yml
hosts.yml
group_vars/
pool1/
vars1.yml
vars2.yml
pool2/
vars1.yml
vars2.yml
host_vars/
ns1.me/
varsX.yml
varsY.yml
我正在尝试按父级对所有 host_vars 文件进行分组,我有以下文件夹结构:
- mail.yml
- hosts.yml
- group_vars/
- pool1.yml
- pool2.yml
- host_vars/
- ns1.me.yml
.....
和hosts.yml:
all:
children:
pool1:
hosts:
ns1.me:
ansible_host: 10.10.0.1
ns2.me:
ansible_host: 10.10.0.2
pool2:
hosts:
ns3.me:
ansible_host: 10.10.0.14
在此设置中,它工作正常,但如果我尝试在 host_vars 和 ns1.me.yml 之间添加嵌套文件夹,ansible 将不会获取变量
来自 ansible 文档:“您还可以创建以您的组或主机命名的目录。Ansible 将按字典顺序读取这些目录中的所有文件。” - https://docs.ansible.com/ansible/latest/user_guide/intro_inventory.html 但不工作...
所需的文件夹结构:
- host_vars/
- pool1/
- ns1.me.yml
- ns2.me.yml
- pool2/
- ns3.me.yml
我错过了什么? :)
这是对语句“创建以您的组或主机命名的目录” 的误解。您可以在 group_vars
中的组之后创建目录,也可以在 host_vars
中的主机之后创建目录。但在你的情况下
- host_vars/
pool1/
ns1.me.yml
ns2.me.yml
pool2/
ns3.me.yml
您已经在 host_vars
中的组之后创建了目录。这不行。
当您有更多包含主机或组变量的文件时,将使用此 Ansible 功能。例如
mail.yml
hosts.yml
group_vars/
pool1/
vars1.yml
vars2.yml
pool2/
vars1.yml
vars2.yml
host_vars/
ns1.me/
varsX.yml
varsY.yml