将 Ansible 组变量引用到清单
Referencing Ansible group variables to inventory
我有一个清单文件 inv.yml
,其中包含如下所示的主机列表:
---
all:
hosts:
csr1:
ansible_host: 192.168.10.11
os: ios
csr2:
# etc...
我有一个包含一些文件的 group_vars
文件夹。其中之一是 all.yml
,我可以看到所有主机都从该文件中获取变量。我还有另外两个文件 amers.yml
和 emear.yml
。每个区域都包含一个特定的 snmp 配置,如下所示:
---
snmp:
contact: Joe Smith
location: Americas
communities:
- community: public
type: ro
我的问题是我不知道如何引用哪个主机应该使用 emear
或 amers
组变量文件。
如何正确引用清单中特定设备的 amers
和 emear
变量文件?
您的清单应该如下所示(例如,将正确的主机放在每个组中)
---
all:
children:
amers:
hosts:
csr1:
ansible_host: 1.2.3.4
emear:
hosts:
csr2:
ansible_host: 5.6.7.8
现在每个组都将收到各自 group_vars/amers.yml
和 group_vars/emear.yml
文件中定义的变量。
这是一个非常简短的介绍,关于如何构建清单、将变量准确放置在何处(跳过可能的变量优先噩梦...)、良好实践等,还有很多内容需要了解。您可以在ansible文档中找到所有这些:How to build your inventory
我不确定您的组是否已定义。尝试创建一个 hosts.ini
(见下文)并将其传递给 ansible-playbook
$ ansible-inventory -i hosts.ini --list
文件:
├── group_vars
│ ├── all.yml
│ ├── amers.yml
│ └── emers.yml
└── hosts.ini
hosts.ini
[amers]
192.168.10.11
[emers]
192.168.10.12
group_vars/amers.yml
---
snmp:
contact: Joe Smith
location: Americas
communities:
- community: public
type: ro
group_vars/emers.yml
---
snmp:
contact: Nobody
group_vars/all.yml
---
os: ios
我有一个清单文件 inv.yml
,其中包含如下所示的主机列表:
---
all:
hosts:
csr1:
ansible_host: 192.168.10.11
os: ios
csr2:
# etc...
我有一个包含一些文件的 group_vars
文件夹。其中之一是 all.yml
,我可以看到所有主机都从该文件中获取变量。我还有另外两个文件 amers.yml
和 emear.yml
。每个区域都包含一个特定的 snmp 配置,如下所示:
---
snmp:
contact: Joe Smith
location: Americas
communities:
- community: public
type: ro
我的问题是我不知道如何引用哪个主机应该使用 emear
或 amers
组变量文件。
如何正确引用清单中特定设备的 amers
和 emear
变量文件?
您的清单应该如下所示(例如,将正确的主机放在每个组中)
---
all:
children:
amers:
hosts:
csr1:
ansible_host: 1.2.3.4
emear:
hosts:
csr2:
ansible_host: 5.6.7.8
现在每个组都将收到各自 group_vars/amers.yml
和 group_vars/emear.yml
文件中定义的变量。
这是一个非常简短的介绍,关于如何构建清单、将变量准确放置在何处(跳过可能的变量优先噩梦...)、良好实践等,还有很多内容需要了解。您可以在ansible文档中找到所有这些:How to build your inventory
我不确定您的组是否已定义。尝试创建一个 hosts.ini
(见下文)并将其传递给 ansible-playbook
$ ansible-inventory -i hosts.ini --list
文件:
├── group_vars
│ ├── all.yml
│ ├── amers.yml
│ └── emers.yml
└── hosts.ini
hosts.ini
[amers]
192.168.10.11
[emers]
192.168.10.12
group_vars/amers.yml
---
snmp:
contact: Joe Smith
location: Americas
communities:
- community: public
type: ro
group_vars/emers.yml
---
snmp:
contact: Nobody
group_vars/all.yml
---
os: ios