我使用这个库存脚本:xezpeleta/Ansible-Proxmox-inventory。
它工作正常,但现在我想添加一个基于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组。
如何用模式替换单个主机名?命名约定是这样的:x-xxxxx-x-Bxx
,当B
仅用于BDD服务器时。代码是Python 3。
1条答案
按热度按时间anhgbhbe1#
您可以在不修改库存脚本的情况下执行此操作:
字符串
另外,请注意,您的原始正则表达式与您在问题中给予的示例主机名不匹配。我简化了它,以便您稍后可以使用它进行相应的检查和修改。
说到您最初打算从脚本中将主机添加到组中-您只需要将条件修改为如下所示:
型