JSON 응답을 얻기 위해 웹 사이트에 URI 요청을하는 Ansible 작업이 있습니다. 중첩 JSON 변수가 정의되어 있으면 Ansible이 무언가를하고 그렇지 않으면 다른 것을 원합니다.
- name: Get JSON from the Interwebs
uri: url="http://whatever.com/jsonresponse" return_content=yes
register: json_response
- name: Write nested JSON variable to disk
copy: content={{json_response.json.nested1.nested2}} dest="/tmp/foo.txt"
사용하는 것을 참고 ignore_errors
만하는 것이 아닌 신사 템플릿 내에서 중첩 된 데이터 구조에서 정의되지 않은 값을 확인하기 위해, 실패한 작업의 명령이 작동합니다. 그래서 만약 json_response.json.nested1.nested2
정의되지 않은이 작업은 여전히에도 불구하고 실패합니다 ignore_errors=yes
세트되고.
/tmp/foo.txt
요청이 실패하거나 요청에 올바른 중첩 값이 정의되지 않은 경우이 플레이 북에 기본값을 저장하려면 어떻게해야 합니까?
$key
응답에 필드 가 없을 때 어떤 일이 발생하는지 묻습니다. 즉, jinja의default
필터가 유용 할 수 있습니다.