diff --git a/plugins/inventory/freeipa.py b/plugins/inventory/freeipa.py new file mode 100755 index 0000000000..ae4ad59fd2 --- /dev/null +++ b/plugins/inventory/freeipa.py @@ -0,0 +1,19 @@ +#!/usr/bin/python + +import json +from ipalib import api +api.bootstrap(context='cli') +api.finalize() +api.Backend.xmlclient.connect() +inventory = {} +hostvars={} +meta={} +result =api.Command.hostgroup_find()['result'] +for hostgroup in result: + inventory[hostgroup['cn'][0]] = { 'hosts': [host for host in hostgroup['member_host']]} + for host in hostgroup['member_host']: + hostvars[host] = {} +inventory['_meta'] = {'hostvars': hostvars} +inv_string = json.dumps( inventory) +print inv_string +