나는 이상한 행동을하고 있습니다. 나는 여전히 Anabilities 초심자이므로 사전에 사과드립니다.변수를 기반으로 역할을 실행
는내가 여기서 본 예에 따라, 조건부 역할을 수행하기 위해 노력하고있어 : 내 최상위 site.yml
에서
has_thing: true
, 내가 가진 : 어쨌든 https://github.com/atomicobject/ansible-laptop-playbook-example/blob/1785f25014fa5a7776de5b332d093b60bf59c8e0/laptop.yml
, 나는 host_vars/localhost
이 :
-name: Title
hosts: all
roles:
- { role: myrole, when: has_thing is defined and has_thing == "true" }
이렇게하면 역할을 건너 뜁니다.
나는이 대신 할 경우 :
는-name: Title
hosts: all
roles:
- { role: myrole, when: has_thing is defined }
역할을 수행한다. 내가 이렇게하면
:
-name: Title
hosts: all
roles:
- { role: myrole, when: has_thing == "true" }
이 작동하지 않습니다.
내가 할 경우 : 그것은 여전히 작동하지
-name: Title
hosts: all
roles:
- { role: myrole, when: has_thing != "true" }
. 왜 그 값을 테스트하지 않는 한 변수 has_thing
이 명확하게 정의 되었기 때문에 왜 그런지 이해하지 못합니다.
무엇이 여기에 있습니까?
고마워요 콘스탄틴. 나는'- {role : myrole, when : has_thing이 정의되고 has_thing : 'true'}'를 시도했지만'has_thing : 'true'}'에 구문에 대한 오류가 발생했습니다. 왜 그런가? – prelic
'debug : var = has_thing'을 사용합니다. 따옴표로 묶지 않은 따옴표 붙은 출력 의미 문자열 - 다른 유형. 뭔가'when : has_thing | 기본값 (false) | bool'은 당신이 원하는 것을해야합니다. –
닌자 편집을 위해 죄송합니다. 나는 네가 지금 무엇을 말하고 있는지 이해한다. 도와 주셔서 정말로 고맙습니다. – prelic