{
"changed": false,
"clusters": {
"ADC_CORE4": {
"enable_ha": true,
"ha_failover_level": 2,
"ha_vm_monitoring": "vmMonitoringDisabled",
"datacenter": "ADC_AI"
}
}
}
这是输出,ADC_CORE4 这是不断变化的簇值。如何使用 ansible 中的 set_facts 获取变量中的数据中心值。
#i 将输出存储为 cluster_info。并尝试使用以下方法获取数据中心值:
- name: get the datacenter value
msg: "datacenter : {{ cluster_info.clusters.ADC_CORE4.datacenter }}"
但是 ADC_CORE4 不是恒定值,它会不断变化。所以我不能在部署虚拟机的自动化中使用它。因此需要有关如何获取变量中的数据中心值的帮助。
使用过滤器json_query
- set_fact:
datacenter: "{{ cluster_info.clusters |
json_query('*.datacenter') }}"
给出以下列表,因为字典中可能有更多项目
datacenter:
- ADC_AI
在这种特殊情况下,选择第一个
- set_fact:
datacenter: "{{ cluster_info.clusters |
json_query('*.datacenter') |
first }}"
给予
datacenter: ADC_AI