yml에 vars가 없을 때 강제로 오류가 발생합니까?


8

정의되지 않은 yml 파일에서 var를 바꿀 때 강제로 Ansible을 강제 실행할 수 있습니까? 빈 문자열로 자동 대체되는 대신 오류가 발생합니까?

답변:


9

네 가능합니다. 복잡한 변수 데이터 액세스 에서 온라인 설명서를 확인하십시오 .

다음을 정확히 수행하는 예제가 제공됩니다.

tasks:
    - shell: echo "I've got '{{ foo }}' and am not afraid to use it!"
      when: foo is defined

    - fail: msg="Bailing out: this play requires 'bar'"
      when: bar is not defined

8

이 줄을 [defaults]ansible.cfg 섹션에 추가하십시오 :

error_on_undefined_vars = True

변수가 정의되지 않은 경우 오류 메시지가 표시됩니다.


옵션에 1.3이 필요하지만 곧 출시되지는 않았다고 생각합니다.
mblakele

1

변수 정의

roles/<role_name>/defaults/main.yml

처럼:

SUPERVAR:
  VAR1:foo
  VAR2:bar

그런 다음에

roles/<role_name>/tasks/main.yml

처럼:

- fail: msg="{{ item }} is not defined"
  when: not {{ item }}
  with_items:
    - SUPERVAR.VAR1
    - SUPERVAR.VAR2
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.