2016-11-09 35 views
0

我想以相同的優先級追加我的變量set_fact。請參閱此鏈接:http://docs.ansible.com/ansible/playbooks_variables.html#variable-precedence-where-should-i-put-a-variableAnsible - 爲相同的優先級追加變量

變量的命名必須是在這兩個陽明文件相同的。

group_vars/all.yml我已經定義:

my_var: 
    - value 
    - another 

而在group_vars/hostgroup.yml我已經定義

my_var: 
    - win 

我期待什麼my_var是:

{{ value }}{{ another }}{{ win }} 

它實際上是什麼:

{{ win }} 

如何確保我的set_fact追加兩個變量。

+0

中鏈接網頁的一部分,涉及追加到一個變量?我認爲,因爲兩個變量都設置爲'group_vars'(在相同的優先級上),後面的(更具體的'hostgroup.yml')只是獲勝。 – dgw

+0

編輯鏈接。 但是我怎麼追加他們,而他們有相同的命名。 – Kevin

回答

1

沒有辦法將列表與默認庫存插件合併。

你唯一的選擇就是與set_fact合併它們在運行時:

- set_fact: 
    my_var: "{{ my_var + ['win'] }}" 
+0

這有點糟糕。絕對沒有辦法?該死的。 – Kevin

+0

不,合併行爲只存在於字典中,而不是列表。您可以隨時編寫自己的庫存腳本或var插件來克服這一點。 –

+0

Oke。謝謝回覆。不能給+1。但它已列出。 – Kevin