2017-10-10 5 views
0

변수가 YAML 파일에서로드되어 extra_args로 전달됩니다. 나는 다음과 같은 시도했지만 작동하지 않습니다 : 부울 유사한 또한변수에 부울 값이 포함되어있는 경우 어떻게해야합니까? Anabilities playbooks에 대한 입력 유효성 검사를 수행하려고합니다.

- name: Check if variable are of type boolean 
    fail: 
    msg: "Variable '{{ item }}' is not a boolean" 
    when: item is not bool 
    with_items: "{{ required_boolean_vars }}" 

, 나는 정수, 사전 및 객체 유형에 대한 동일한 기능을 수행 할 수있는 방법.

when: "item | type_debug == 'bool'"` 

또 다른 방법 : 사전에 대한

when: item is sameas true or item is sameas false 

:

when: item is mapping 

를 들어 부울에 대한 조건이 그래서

+0

"개체"유형이란 무엇입니까? – techraf

답변

0

는 유형을 반환하는 일반 type_debug filter있다 목록 :

when: item is iterable 

또한, 상기 조건을 확인 당신이 제목에 질문으로 부울 것에 대해 item. 당신이 당신의 코드에서 알 수 있듯이 반대를 테스트하고 싶다면 ...

+0

항목이 문자열이 아닌 경우 테스트 할 수 있지만 항목이 부울이 아닌 경우 테스트 할 수는 없습니다. –

+0

나는 bool, boolean, Boolean ... 중 어느 것도 유효하지 않습니다. 이 작동합니다. 감사합니다 @ 테크노, 좋은 직장. –

0

하지 boolean 형의 변수가 있다면 내가 작업을 실패하는 것으로 해결 방법을 not 추가 required_boolean_vars 변수의 목록이 포함

- name: Check if variable are of type boolean 
    assert: 
    that: "{{ item }} == false or {{ item }} == true" 
    msg: "Variable {{ item }} is not of type boolean" 
    with_items: "{{ required_boolean_vars }}" 

내가 확인하고 싶다.

+1

'that :'은 Jinja2 표현식 자체이므로 안에는 중괄호를 사용하지 마십시오. –