是否可以为不同的主机定义不同的变量?例如:
- hosts:
server_a:
var_a: "xxx"
server_b:
var_a: "yyy"
roles:
- some_role
答案1
主机(和组)变量不存储在剧本中。它们单独存储在清单文件本身中,或存储在目录中的文件中host_vars
或group_vars
与清单文件相关的文件中。这些文件以包含变量的主机或组命名。
看组织主机和组变量在 Ansible 文档中了解有关变量文件的更完整描述。
答案2
我发现的最好的信息是:
- hosts:
- server_a (or a group of hosts)
- server_b
roles:
- some_role
vars:
var_a: |
{{
{
'server_a_ip': [
'xxx'
],
'server_b_ip': [
'yyy'
]
}[inventory_hostname]
}}