我使用这个存储库 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
我在解决方案中前进
现在正则表达式/模式可以工作,但它只打印一个结果而不是多个结果
这是我尝试过的两个代码:
# 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]
这两个都不起作用
有什么想法吗?