如何在 Proxmox.py 动态清单中添加新组

问题描述 投票:0回答:1

我使用这个存储库 GitHub: https://github.com/xezpeleta/Ansible-Proxmox-inventory/blob/master/proxmox.py

它工作正常,但现在我想基于 proxmox_name 字段添加新组

我在脚本中找到了要重复的行:

我复制这个

            # Create group 'running'
            # so you can: --limit 'running'
            status = results['_meta']['hostvars'][vm]['proxmox_status']
            if status == 'running':
                if 'running' not in results:
                    results['running'] = {
                        'hosts': []
                    }
                results['running']['hosts'] += [vm]

进入这个

            # Create group 'bddservers'
            # so you can: --limit 'bddservers'
            bddservers = results['_meta']['hostvars'][vm]['proxmox_name']
            if bddservers == 'x-xxxxx-x-Bxx':
                if '.-....-.-B..' not in results:
                    results['bddservers'] = {
                        'hosts': []
                    }
                results['bddservers']['hosts'] += [vm]

创建仅包含 BDD 服务器的组

我想将其基于主机名服务器(proxmox_name 字段),但是当我尝试模式“B”时,它不起作用 如果我用单个主机服务器替换它,它就可以工作,我有一个组 bddservers,仅包含我设置的主机名。

你能帮我PLZ用模式替换单个主机吗 命名约定如下:x-xxxxx-x-Bxx(当 B 仅用于 BDD 服务器时)。 代码是python3

python-3.x ansible-inventory proxmox
1个回答
0
投票

我在解决方案中前进

现在正则表达式/模式可以工作,但它只打印一个结果而不是多个结果

这是我尝试过的两个代码:

    # Create group 'bddservers'
    # so you can: --limit 'bddservers'
    import re
    bddservers = results['_meta']['hostvars'][vm]['proxmox_name']
    substring = "B0"
    for s in bddservers:
        if re.search(substring, bddservers):
            if re.search(substring, bddservers) not in results:
                results['bddservers'] = {
                    'hosts': []
                }
            results['bddservers']['hosts'] += [vm]

    # Create group 'bdd1servers'
    # so you can: --limit 'bdd1servers'
    bdd1servers = results['_meta']['hostvars'][vm]['proxmox_name']
    substring = "BDD"
    if substring in bdd1servers:
        if substring not in results:
            results['bdd1servers'] = {
                'hosts': []
            }
        results['bdd1servers']['hosts'] += [vm]

这两个都不起作用

有什么想法吗?

© www.soinside.com 2019 - 2024. All rights reserved.