簡體   English   中英

變量內部的ansible變量

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM