美文网首页
ansible 模板中遍历字典

ansible 模板中遍历字典

作者: mini鱼 | 来源:发表于2021-08-04 10:42 被阅读0次

    需求: 从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': []
        },
    省略 ...
    }
    
    • template 模板:
    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

    相关文章

      网友评论

          本文标题:ansible 模板中遍历字典

          本文链接:https://www.haomeiwen.com/subject/oqtevltx.html