我想要做的是从以下字典中获取一个网址列表,即[url1, url2, url3, url4, url5, url6, url7]
,以便我可以将其分配给我的Ansible剧本中的变量:
dict:
site1:
domains:
- canonical: url1
redirects:
- url2
- url3
site2:
domains:
- canonical: url4
redirects:
- url5
- url6
- url7
我一直在玩各种过滤器,但到目前为止还没有成功。希望在jinja比我更好的人可以帮忙。感谢。
答案 0 :(得分:2)
json_query
可能会有所帮助:
- hosts: localhost
gather_facts: no
vars:
dict:
site1:
domains:
- canonical: url1
redirects:
- url2
- url3
site2:
domains:
- canonical: url4
redirects:
- url5
- url6
- url7
tasks:
# get redirects
- debug: msg="{{ dict | json_query('*.domains[].redirects[]') }}"
# get all urls
- debug: msg="{{ dict | json_query('*.domains[].{c:to_array(canonical),r:redirects} | [].*[][]') }}"