inventory-scripts.lxc/inventory_lxc_ip.py
2024-09-20 09:48:55 +02:00

38 lines
728 B
Python
Executable file

#!/usr/bin/python3
import json
import sys
try:
import lxc
except ImportError:
print("Could not import lxc module!")
sys.exit(1)
########################################
inventory ={ '_meta':{'hostvars':{} } }
########################################
ctnames = lxc.list_containers()
for ctname in ctnames:
ct = lxc.Container(ctname)
if ct.running:
for group in ct.get_running_config_item('lxc.group').rstrip().split('\n'):
if not group in inventory:
inventory[group] = {
'hosts': [],
'vars': {
'ansible_user': 'root',
},
}
inventory[group]['hosts'].append(ctname)
inventory['_meta']['hostvars'][ctname] = {
'ansible_host': ct.get_ips()[0],
}
print(json.dumps(inventory))