我正在尝试构建一个使用文件中某些变量的角色。 虽然这些变量还取决于我想为所有角色定义的一些常见变量,但只有一个没有复制并将其粘贴到每个变量文件中。
虽然我无法理解如何做到这一点。我只谈论vars文件。
E.g。 roles / dns / tasks / main.yml包含特定位置的文件:
- include_vars: ../vars/dns/domains_{{ location }}.yml
位置在角色级别定义。在此我试图定义各种dns名称的设置,例如:
domains: [
{
domain: "domain.com",
location: "america",
ip: "xx.xx.xx.xx",
ttl: 1800,
mx: "10 mail",
subdomains: [
{ name: "www", ip: "xx.xx.xx.xx"},
]
},
]
所以这里我为每个条目定义了相同的IP。 有没有办法将所有IP放入一些全局var文件(例如group_vars / all / vars_file.yml)并在此角色特定的var文件中使用它,如下所示:
domains: [
{
domain: "domain.com",
location: "america",
ip: server.america.ip,
ttl: 1800,
mx: "10 mail",
subdomains: [
{ name: "www", ip: server.america.ip },
]
},
]
where server.america.ip在全球某处定义?
答案 0 :(得分:1)
是的,这是可能的。变量文件实际上也通过jinja运行,因此您可以在变量文件中包含基本表达式和变量。
domains: [
{
domain: "domain.com",
location: "america",
ip: "{{ server.america.ip }}",
ttl: 1800,
mx: "10 mail",
subdomains: [
{ name: "www", ip: "{{ server.america.ip }}" },
]
},
]
答案 1 :(得分:0)
例如,您可以在角色Y的tasks / main.yml的开头包含角色X中的变量。 例如,如果您有共同的角色,请在此位置放置位置。 唯一可能的问题是,您可能需要使用' with_items'调用包含的变量。