2016-11-09 9 views
0

同じ優先順位でset_factの変数を追加したいと思います。このリンクを参照してください:http://docs.ansible.com/ansible/playbooks_variables.html#variable-precedence-where-should-i-put-a-variable不可能 - 同じ優先順位の変数を追加する

変数の命名は、両方のymlファイルで同じでなければなりません。

私が定義した group_vars/all.yml

my_var: 
    - value 
    - another 

をそしてgroup_vars/hostgroup.ymlに私はmy_varが期待する何

my_var: 
    - win 

を定義している:

それは実際には何
{{ 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

関連する問題