2016-09-16 83 views
0

ansible主機我已經在做類似下面看到通過清單文件的地址循環的能力:遍歷基於遊戲

{% for url in groups['kafka'] %} 
    {%- if url == ansible_fqdn or url in ansible_all_ipv4_addresses 
    or (kafka_id is defined and loop.index0 == kafka_id | int) -%} 
     broker.id={{loop.index0}} 
    {% endif %} 
{% endfor %} 

這種想法的問題是我有幾個不同的「KAFA 「每個類型的主機都會做一些稍微不同的事情。我想知道是否有一種方法可以通過劇本將組['kafka']的變量傳遞給模板,而不是在模板中對其進行硬編碼。這樣,我只使用主機進行特定的播放,並且可以在所有不同的播放中重複使用相同的模板。

+0

我認爲你可以很容易地做到這一點,但通過你的詳細描述,並試圖找出你的意思是一個真正的痛苦。你爲什麼不發佈你的庫存文件,劇本,並要求填寫有問題的部分? – techraf

回答

0

這是我嘗試仍然用引號包裹組['FOO']的錯。我能夠設置一個變量的劇本里和它向下傳遞通過執行以下操作:

然後在我的神社模板有這個。

% for url in groups[kafka-bts] %} 
    {%- if url == ansible_fqdn or url in ansible_all_ipv4_addresses 
    or (kafka_id is defined and loop.index0 == kafka_id | int) -%} 
     broker.id={{loop.index0}} 
    {% endif %} 
{% endfor %}