有什么方法可以简化下面的 json_query?在这里您可以看到我正在尝试使用三个查询设置来提取三个值。因为我在列表中有三个项目,所以值将生成三次,对应于项目列表。有什么方法可以分离每个项目的价值吗?
ClusterName: xxxx for dv-cn-c1
DomainName: xxxx for dv-cn-c1
ClusterName: xxxx for dv-cn-c2
DomainName: xxxx for dv-cn-c2
请看我的想法
- name: "set fact for policy pkg for list of devices"
set_fact:
ClusterName: "{{ fullinvt | json_query(query1) }}"
DomainName: "{{ fullinvt | json_query(query2) }}"
PolicyName: "{{ fullinvt | json_query(query3) }}"
vars:
#w query: "ansible_facts.checkpoint_servers_gateways.objects[*].policy[].\"cluster-members-access-policy-revision\"[?name == 'dev-cn-c2'].name"
query1: "ansible_facts.checkpoint_servers_gateways.objects[?\"cluster-member-names\"[?contains(@ `{{ item }}`)]].name | [0]"
query2: "ansible_facts.checkpoint_servers_gateways.objects[?\"cluster-member-names\"[?contains(@ `{{ item }}`)]].domain.name | [0]"
query3: "ansible_facts.checkpoint_servers_gateways.objects[?\"cluster-member-names\"[?contains(@ `{{ item }}`)]].policy.\"access-policy-name\" | [0]"
with_items:
- dv-cn-c1
- dv-cn-c2
- dv-cn-4
tags: ADDLAG