Saya memiliki tugas Ansible yang membuat permintaan URI ke situs web untuk mendapatkan respons JSON. Saya ingin Dapat melakukan sesuatu jika variabel JSON bersarang didefinisikan, dan sesuatu yang lain jika tidak.
- 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"
Perhatikan bahwa menggunakan ignore_errors
hanya berfungsi untuk perintah tugas gagal, bukan untuk memeriksa nilai yang tidak ditentukan dalam struktur data bersarang dalam template Jinja. Jadi, jika json_response.json.nested1.nested2
tidak didefinisikan, tugas ini masih akan gagal meskipun ignore_errors=yes
telah ditetapkan.
Bagaimana caranya agar buku pedoman ini menyimpan beberapa nilai default /tmp/foo.txt
jika permintaan gagal, atau jika permintaan tidak memiliki nilai bersarang yang ditentukan?
$key
bidang dalam respons - yaitu sesuatu yangdefault
mungkin berguna untuk filter jinja .