{
"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 不是恒定值,它会不断变化。所以我不能在部署虚拟机的自动化中使用它。因此需要有关如何获取变量中的数据中心值的帮助。
给出字典:
cluster_info:
changed: false
clusters:
ADC_CORE4:
datacenter: ADC_AI
enable_ha: true
ha_failover_level: 2
ha_vm_monitoring: vmMonitoringDisabled
问:“使用 set_fact 获取变量中的数据中心值。”
A:使用过滤器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