Bir JSON yanıtı almak için bir Web sitesine URI isteği yapan Ansible bir görevim var. Yuvalanmış JSON değişkeni tanımlanmışsa Ansible bir şey yapmak ve değilse başka bir şey yapmak istiyorum.
- 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_errorsJinja şablonu içindeki iç içe veri yapılarındaki tanımlanmamış değerleri kontrol etmek için değil, yalnızca görevin komutu başarısız olduğunda işe yaradığını unutmayın . Yani eğer json_response.json.nested1.nested2tanımlı değil, bu görevi yine rağmen başarısız olur ignore_errors=yesseti olma.
Bu oynatma kitabının /tmp/foo.txt, istek başarısız olursa veya isteğin doğru iç içe değeri tanımlanmamışsa bazı varsayılan değerleri depolamasını nasıl sağlayabilirim ?
$keyyanıtta alan olmadığında ne olduğunu soruyor - yani jinja'nındefaultfiltresi yararlı olabilir.