Как выбрать родителя, имя которого равно имени ребенка - PullRequest
0 голосов
/ 02 ноября 2019

Я думал, что это будет просто, но я в тупике. Как выбрать родительскую запись hostvars для каждой дочерней записи activedirectory_devops.hosts? Если бы это был SQL, я бы попытался написать join.

    {
        "_meta": {
            "hostvars": {
                "foo_423d1fe9-d964-d45e-ec69-2565589deae6": {
                "ansible_host": "192.168.0.1",
                "config.cpuHotAddEnabled": true,
                "config.cpuHotRemoveEnabled": false,
                "config.hardware.numCPU": 4,
                "config.instanceUuid": "503d1a90-8b07-4b33-2648-5d1f9330e5f7",
                "config.name": "devops-dal13-bc1",
                "config.template": false,
                "guest.guestId": "windows9Server64Guest",
                "guest.guestState": "running",
                "guest.hostName": "foo.company.com",
                "guest.ipAddress": "192.168.0.1",
                "inventory_dir": "/ansible/inventories",
                "inventory_file": "/ansible/inventories/vcsa2.vmware.yml",
                "name": "foo",
                "runtime.maxMemoryUsage": 16384
            },
,
                "bar_420b8b36-fffe-6f29-3e32-0ce9aa0d0ad3": {
                    "config.cpuHotAddEnabled": false,
                    "config.cpuHotRemoveEnabled": false,

...
            }
        }
    },
    "activedirectory_devops": {
        "hosts": [
            "foo_423d1fe9-d964-d45e-ec69-2565589deae6",
            "bar_420b8b36-fffe-6f29-3e32-0ce9aa0d0ad3"
        ]
    },

Моя неполная попытка:

jq '. as $parent | .activedirectory_devops.hosts as $children | .'

1 Ответ

0 голосов
/ 02 ноября 2019

Как выбрать родительскую запись hostvars для каждой дочерней записи activedirectory_devops.hosts?

Следующий запрос jq делает именно это:

.activedirectory_devops.hosts[] as $host
| ._meta.hostvars[$host]
...