[英]ansible variables inside variables
我正在嘗試建立一個使用文件中某些變量的角色。 盡管此變量還依賴於一些我想為所有角色定義的公用變量,但沒有將其復制粘貼到每個單個變量文件中。
雖然我不明白該怎么做。 我說的只是vars文件。
例如role / 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 },
]
},
]
在哪里將server.america.ip定義為全局位置?
是的,那是可能的。 變量文件實際上也通過jinja運行,因此您可以在變量文件中包含基本表達式和變量。
domains: [
{
domain: "domain.com",
location: "america",
ip: "{{ server.america.ip }}",
ttl: 1800,
mx: "10 mail",
subdomains: [
{ name: "www", ip: "{{ server.america.ip }}" },
]
},
]
例如,您可以在角色Y的task / main.yml開頭包含角色X的變量。 如果您有共同的角色,例如,讓我們在該角色上放置位置。 唯一的潛在問題是,您可能需要使用“ with_items”來調用包含的變量。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.