Ansible json_查询-与语法斗争
我已经阅读了和以及相关的 我仍然不知道应该使用什么样的语法。我正在尝试以下方法:Ansible json_查询-与语法斗争,ansible,json-query,Ansible,Json Query,我已经阅读了和以及相关的 我仍然不知道应该使用什么样的语法。我正在尝试以下方法: # Find all of the load-balancers reference - name: Gather facts about all load-balancers elb_application_lb_facts: register: load_balancers # Get the load-balancer we want - name: Find the correct load-ba
# Find all of the load-balancers reference
- name: Gather facts about all load-balancers
elb_application_lb_facts:
register: load_balancers
# Get the load-balancer we want
- name: Find the correct load-balancer
set_fact:
load_balancer_dns: "{{ load_balancer_dns }}"
elb_zone_id: "{{ elb_zone_id }}"
with_items: "{{ load_balancers | json_query(lb_query) }}"
vars:
lb_query: "load_balancers[?load_balancer_name=='{{load_balancer_name}}'].{load_balancer_dns: dns_name, elb_zone_id: canonical_hosted_zone_id}"
这总是会导致错误(在第二个任务中):该任务包含一个带有未定义变量的选项。错误是:“负载\u平衡器\u dns”未定义
elb_应用程序\u lb_facts
的JSON输出包括dns_name
和canonical_hosted_zone_id
键,它们与load_balancer_name
处于同一级别(不嵌套在任何地方)
有人能帮我解释一下语法吗?在设置事实时,您需要包含“项”,因为您正在循环“与项”:
此处记录:
# Get the load-balancer we want
- name: Find the correct load-balancer
set_fact:
load_balancer_dns: "{{ item.load_balancer_dns }}"
elb_zone_id: "{{ item.elb_zone_id }}"
with_items: "{{ load_balancers | json_query(lb_query) }}"
vars:
lb_query: "load_balancers[?load_balancer_name=='simple-application-load-balancer'].{load_balancer_dns: dns_name, elb_zone_id: canonical_hosted_zone_id}"