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_errors
Jinja ş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.nested2
tanımlı değil, bu görevi yine rağmen başarısız olur ignore_errors=yes
seti 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 ?
$key
yanıtta alan olmadığında ne olduğunu soruyor - yani jinja'nındefault
filtresi yararlı olabilir.