0

I have bellow json output:

I have to get "holders"("VG_ROOT-var", "VG_ROOT-root", "VG_ROOT-tmp") from all sd* drives *

tries to use something like this in ansible:

"gather_host_facts_result.ansible_facts.ansible_devices.sd*"

unfortunately at this stage I already have a problem. Could someone help me?

how to specify "*" in the query to go to the rest of the structure?

{
    "msg": [
        {
            "dm-0": {
                "holders": [],
                "host": "",
                "links": {
                    "ids": [
                        "dm-name-VG_ROOT-root",
                        "dm-uuid-LVM-YMwN1WVoYYOwj8ZRJ5ZBdpMSlPTiiOAOgCughz5IwAC91ILXxeQEkJU4NnhDgfGf"
                    ],
                    "labels": [],
                    "masters": [],
                    "uuids": [
                        "97c2a8ff-e21f-4869-9b0f-bbba523dc487"
                    ]
                },
                "model": null,
                "partitions": {},
                "removable": "0",
                "rotational": "1",
                "sas_address": null,
                "sas_device_handle": null,
                "scheduler_mode": "",
                "sectors": "123723776",
                "sectorsize": "512",
                "size": "59.00 GB",
                "support_discard": "0",
                "vendor": null,
                "virtual": 1
            },
            "dm-1": {
                "holders": [],
                "host": "",
                "links": {
                    "ids": [
                        "dm-name-VG_DATA-data",
                        "dm-uuid-LVM-htvEwSfXRtyxN1j7V4A2BSdeKJGBTLqiPBERZVCP8ZOr4uMWSmopoedAQvSZ4gXJ"
                    ],
                    "labels": [],
                    "masters": [],
                    "uuids": [
                        "4c4c89ab-df3f-4647-aa37-c04c9175b804"
                    ]
                },
                "model": null,
                "partitions": {},
                "removable": "0",
                "rotational": "1",
                "sas_address": null,
                "sas_device_handle": null,
                "scheduler_mode": "",
                "sectors": "62906368",
                "sectorsize": "512",
                "size": "30.00 GB",
                "support_discard": "0",
                "vendor": null,
                "virtual": 1
            },
            "dm-2": {
                "holders": [],
                "host": "",
                "links": {
                    "ids": [
                        "dm-name-VG_SWAP-swap",
                        "dm-uuid-LVM-SHCF191xu9CcjovlxavjqUXI1yBmVdLTxbd24kHS8fkcAlDkbMcXlAlsY7m0soMF"
                    ],
                    "labels": [],
                    "masters": [],
                    "uuids": [
                        "97999edf-ccb5-45c8-87c6-23d2a5771146"
                    ]
                },
                "model": null,
                "partitions": {},
                "removable": "0",
                "rotational": "1",
                "sas_address": null,
                "sas_device_handle": null,
                "scheduler_mode": "",
                "sectors": "20963328",
                "sectorsize": "512",
                "size": "10.00 GB",
                "support_discard": "0",
                "vendor": null,
                "virtual": 1
            },
            "dm-3": {
                "holders": [],
                "host": "",
                "links": {
                    "ids": [
                        "dm-name-VG_ROOT-tmp",
                        "dm-uuid-LVM-YMwN1WVoYYOwj8ZRJ5ZBdpMSlPTiiOAOqId09qrO6vwn9z7306ZkWhRyiXS4d1jy"
                    ],
                    "labels": [],
                    "masters": [],
                    "uuids": [
                        "325d6523-4e1f-4352-ab39-1e7259b613c5"
                    ]
                },
                "model": null,
                "partitions": {},
                "removable": "0",
                "rotational": "1",
                "sas_address": null,
                "sas_device_handle": null,
                "scheduler_mode": "",
                "sectors": "20971520",
                "sectorsize": "512",
                "size": "10.00 GB",
                "support_discard": "0",
                "vendor": null,
                "virtual": 1
            },
            "dm-4": {
                "holders": [],
                "host": "",
                "links": {
                    "ids": [
                        "dm-name-VG_ROOT-var",
                        "dm-uuid-LVM-YMwN1WVoYYOwj8ZRJ5ZBdpMSlPTiiOAOTz6mFIEVsHJN4B0hOAV0RlVdmm293Z0L"
                    ],
                    "labels": [],
                    "masters": [],
                    "uuids": [
                        "41f5cd6a-fa50-4ac3-a14d-693d23a3df87"
                    ]
                },
                "model": null,
                "partitions": {},
                "removable": "0",
                "rotational": "1",
                "sas_address": null,
                "sas_device_handle": null,
                "scheduler_mode": "",
                "sectors": "20971520",
                "sectorsize": "512",
                "size": "10.00 GB",
                "support_discard": "0",
                "vendor": null,
                "virtual": 1
            },
            "sda": {
                "holders": [],
                "host": "Serial Attached SCSI controller: VMware PVSCSI SCSI Controller (rev 02)",
                "links": {
                    "ids": [],
                    "labels": [],
                    "masters": [],
                    "uuids": []
                },
                "model": "Virtual disk",
                "partitions": {
                    "sda1": {
                        "holders": [],
                        "links": {
                            "ids": [],
                            "labels": [],
                            "masters": [],
                            "uuids": [
                                "3C14-A798"
                            ]
                        },
                        "sectors": "2097152",
                        "sectorsize": 512,
                        "size": "1.00 GB",
                        "start": "2048",
                        "uuid": "3C14-A798"
                    },
                    "sda2": {
                        "holders": [
                            "VG_ROOT-var",
                            "VG_ROOT-root",
                            "VG_ROOT-tmp"
                        ],
                        "links": {
                            "ids": [
                                "lvm-pv-uuid-9Mm0hj-z0vg-WEhd-7MyB-xcp1-mEI3-XZENN8"
                            ],
                            "labels": [],
                            "masters": [
                                "dm-0",
                                "dm-3",
                                "dm-4"
                            ],
                            "uuids": []
                        },
                        "sectors": "165672927",
                        "sectorsize": 512,
                        "size": "79.00 GB",
                        "start": "2099200",
                        "uuid": null
                    }
                },
                "removable": "0",
                "rotational": "1",
                "sas_address": null,
                "sas_device_handle": null,
                "scheduler_mode": "bfq",
                "sectors": "167772160",
                "sectorsize": "512",
                "size": "80.00 GB",
                "support_discard": "0",
                "vendor": "VMware",
                "virtual": 1
            },
            "sdb": {
                "holders": [
                    "VG_SWAP-swap"
                ],
                "host": "Serial Attached SCSI controller: VMware PVSCSI SCSI Controller (rev 02)",
                "links": {
                    "ids": [
                        "lvm-pv-uuid-m2YPQe-ofBp-AjUa-qAfQ-Bcy6-xTpj-WyNFU1"
                    ],
                    "labels": [],
                    "masters": [
                        "dm-2"
                    ],
                    "uuids": []
                },
                "model": "Virtual disk",
                "partitions": {},
                "removable": "0",
                "rotational": "1",
                "sas_address": null,
                "sas_device_handle": null,
                "scheduler_mode": "bfq",
                "sectors": "20971520",
                "sectorsize": "512",
                "size": "10.00 GB",
                "support_discard": "0",
                "vendor": "VMware",
                "virtual": 1
            },
            "sdc": {
                "holders": [
                    "VG_DATA-data"
                ],
                "host": "Serial Attached SCSI controller: VMware PVSCSI SCSI Controller (rev 02)",
                "links": {
                    "ids": [
                        "lvm-pv-uuid-X47VTO-03iG-WVw4-ww8p-PH0v-hlGj-wU1t7F"
                    ],
                    "labels": [],
                    "masters": [
                        "dm-1"
                    ],
                    "uuids": []
                },
                "model": "Virtual disk",
                "partitions": {},
                "removable": "0",
                "rotational": "1",
                "sas_address": null,
                "sas_device_handle": null,
                "scheduler_mode": "bfq",
                "sectors": "62914560",
                "sectorsize": "512",
                "size": "30.00 GB",
                "support_discard": "0",
                "vendor": "VMware",
                "virtual": 1
            },
            "sr0": {
                "holders": [],
                "host": "IDE interface: Intel Corporation 82371AB/EB/MB PIIX4 IDE (rev 01)",
                "links": {
                    "ids": [
                        "ata-VMware_Virtual_IDE_CDROM_Drive_10000000000000000001"
                    ],
                    "labels": [],
                    "masters": [],
                    "uuids": []
                },
                "model": "VMware IDE CDR10",
                "partitions": {},
                "removable": "1",
                "rotational": "1",
                "sas_address": null,
                "sas_device_handle": null,
                "scheduler_mode": "bfq",
                "sectors": "2097151",
                "sectorsize": "512",
                "size": "1024.00 MB",
                "support_discard": "0",
                "vendor": "NECVMWar",
                "virtual": 1
            }
        }
    ]
}
larsks
  • 277,717
  • 41
  • 399
  • 399
Kalina
  • 1
  • 1
  • 1
    I'm not 100% sure of your requirement from your question, but basically: `"{{ ansible_facts.devices | dict2items | selectattr('key', 'contains', 'sd') | map(attribute='value.holders') | flatten }}"` – Zeitounator Mar 01 '21 at 16:08
  • 1
    @Zeitounator small nit: `selectattr('key', 'match', '^sd.*')` as the `contains` would match `nonsd` – mdaniel Mar 01 '21 at 17:00

1 Answers1

0

I created something like this:

- name: disks
  hosts: localhost
  become: false
  gather_facts: false
  tasks:
  - name: hardware
    setup:
      gather_subset:
      - hardware
    register: gather_host_facts_result


  - name: The output 
    debug:
      msg:
        - "{{ gather_host_facts_result.devices | dict2items | selectattr('key', 'match', '^sd.*') | map(attribute='value.holders') | flatten }}"

But this dosen't work.

I'd like to pull all holders f.e VG ROOT-var, VG _ROOT-rootVG _ROOT-tmp from all sd * disks. The output should look like this: sda2: "VG_ROOT-var", "VG_ROOT-root", "VG_ROOT-tmp"

sdc "VG_DATA-data" sdb "VG_SWAP-swap"

Kalina
  • 1
  • 1