2016-06-14 8 views
0

ファイル(例えば、NEWVALUEを含む)から値をロードすることによって、以前に定義された変数my_varLATESTに設定されている)を上書きしようとしています。ファイルからの変数の上書きが失敗する

- name: Load from file 
    vars: 
    my_var: "{{ lookup('file', '~/file.txt') }}" 
    my_var2: "{{ lookup('file', '~/file.txt') }}" 
    debug: msg="my_var is {{ my_var }} my_var2 is {{ my_var2 }}" 
    when: "{{ my_var=='LATEST' }}" 

これは

ok: [host] ==> { 
    "msg": "my_var is LATEST my_var2 is NEWVALUE" 
} 

だから私は、私は私が正しく値をロードしてることを確認したことを感じる..しかし、何らかの理由で、私は以前にlookupの結果を設定することはできませんを印刷します変数を設定します。 when句を無効にしても違いはありません。

これを行う必要がありますか?別の方法として、3番目の変数を使用して、それを既存の値またはファイルの値のいずれかに設定しますが、これは私にとっては不必要なステップのようです。

有効バージョン2.1.0.0 b.t.w.

+0

私は 'set_fact'を使用していたはずですが、その事実はコマンドライン環境変数として提供されているため、上書きすることはできません。 –

答えて

0

例で定義したvarsは、単一のデバッグタスクでのみ使用できます。

コメントに記載されているように、これを理解してset_factを代わりに使用しました。そしてyes、extra-varと同じ変数を渡した場合は、highest precedenceがあるので、これは機能しません。 extra-varとして渡した変数を上書きする方法はありません。

関連する問題