ansible 模板中遍历字典

2021-08-04  本文已影响0人  mini鱼

需求: 从ansible_facts.ansible_devices变量中查找符合条件的磁盘

{
    'sdbu': {
        'virtual': 1,
        'links': {
            'ids': [],
            'uuids': [],
            'labels': [],
            'masters': []
        },
        'vendor': 'INSPUR',
        'model': 'AS13000',
        'sas_address': None,
        'sas_device_handle': None,
        'serial': '1a70f26b8b4567',
        'removable': '0',
        'support_discard': '512',
        'partitions': {},
        'rotational': '1',
        'scheduler_mode': 'mq-deadline',
        'sectors': '20971520',
        'sectorsize': '512',
        'size': '10.00GB',
        'host': '',
        'holders': []
    },
    'sda': {
        'virtual': 1,
        'links': {
            'ids': [
                'scsi-3600605b01022732000000180198fe1e9',
                'scsi-SAVAGO_MR9361-8i_00e9e18f198001000020732210b00506',
                'wwn-0x600605b01022732000000180198fe1e9'
            ],
            'uuids': [],
            'labels': [],
            'masters': []
        },
        'vendor': 'AVAGO',
        'model': 'MR9361-8i',
        'sas_address': None,
        'sas_device_handle': None,
        'serial': '00e9e18f198001000020732210b00506',
        'removable': '0',
        'support_discard': '0',
        'wwn': '0x600605b01022732000000180198fe1e9',
        'rotational': '1',
        'scheduler_mode': 'mq-deadline',
        'sectors': '4686348288',
        'sectorsize': '512',
        'size': '2.18TB',
        'host': 'RAIDbuscontroller: Broadcom/LSIMegaRAIDSAS-33108[Invader](rev02)',
        'holders': []
    },
省略 ...
}
blacklist {
{% for item in ansible_devices %}
{% if ansible_devices[item].host  %}
        devnode "^{{ item }}$"
{% endif %}
{% endfor %}
        devnode "^rbd*"
}
blacklist {
                devnode "^sda$"
                devnode "^rbd*"
}

参考: Loop dictionary in ansible template

上一篇 下一篇

猜你喜欢

热点阅读