2016-06-14 3 views
0

파일 (예 : NEWVALUE 포함)에서 값을로드하여 이전에 정의한 변수 my_var (이 값을 LATEST으로 설정 한 경우)을 덮어 쓰려고합니다.파일에서 가능한 변수 덮어 쓰기 오류가 발생했습니다.

- 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 절을 사용 중지해도 아무런 차이가없는 것처럼 보입니다.

해야할까요? 대안으로 나는 세 번째 변수를 사용하여 기존 값이나 파일의 값으로 설정하려고합니다. 그러나 이것은 나에게 불필요한 단계처럼 보입니다.

해당 버전 2.1.0.0 b.t.w.

+0

'set_fact'를 사용해야했지만 사실은 명령 줄 환경 변수로 제공 되었기 때문에 동일한 문제가 여전히 존재했습니다. 재정의 할 수 없습니다. –

답변

0

예제에서 정의한 바는 단일 디버그 작업에만 사용할 수 있습니다.

당신이 코멘트에서 언급했듯이 이것을 알아 냈고 대신 set_fact를 사용했습니다. 그리고 예, extra-var와 동일한 변수를 전달한 경우에는 highest precedence이므로이 작업은 작동하지 않습니다. extra-var로 전달한 변수를 재정의 할 방법이 없습니다.

관련 문제