【发布时间】:2018-07-20 20:03:37
【问题描述】:
我正在尝试使用 Ansible 的 json_query 为特定虚拟机选择集群名称,该 json_query 在后端使用 JMESPATH。 我已按照http://jmespath.org 的教程和示例进行操作,但无法构建正确的查询。
我的数据结构如下:
{
"datacenters": [
{
"name": "dc-a",
"clusters": [
{ "name": "cluster-a",
"hosts": [
{
"name": "host-a",
"vms": [
{
"name": "vm-a",
"summary": {
"mem": "8",
"diskGB": "78.00",
"annotation": "",
"state": "poweredOn",
"ostype": "Microsoft Windows Server 2008 R2 (64-bit)",
"cpu": "2"
}
},
{
"name": "vm-b",
"summary": {
"mem": "24",
"diskGB": "114.00",
"annotation": "",
"state": "poweredOn",
"ostype": "Microsoft Windows Server 2008 R2 (64-bit)",
"cpu": "4"
}
}]
}]
}]
}]
}
我可以使用下面的查询选择 VM ('vm-a'),但我正在寻找集群 (即 'cluster-a') .
datacenters[].clusters[].hosts[].vms[?name=='vm-a'].name[]
【问题讨论】:
-
没有意图证明,请阅读stackoverflow.com/help/on-topic了解如何在stackoverflow上正确提问
-
我认为这是一个足够好的问题。我当然见过更糟糕的情况。还有,这是发帖人的第一个问题,这里不用太正式。更不用说投票了。