Rewrote hosts file to tag-based structure

dehydrated
Felix Stupp 4 years ago
parent 5555c86357
commit 7b797dc8a5
Signed by: zocker
GPG Key ID: 93E1BD26F6B02FB7

1
.gitignore vendored

@ -5,3 +5,4 @@ public_keys/
*.facts
/*.yml
!/site.yml
!/hosts.yml

@ -2,6 +2,6 @@
ask_vault_pass = True
force_handlers = True
inventory = ./hosts
inventory = ./hosts.py
nocows = True
retry_files_enabled = False

19
hosts

@ -1,19 +0,0 @@
[bootstrap]
nvak.banananet.work
morska.banananet.work
rurapenthe.banananet.work
hardie.khitomer.banananet.work
[public_available]
nvak.banananet.work
morska.banananet.work
rurapenthe.banananet.work
[bwcloud_vserver]
morska.banananet.work
rurapenthe.banananet.work
[wireguard_backbones]
nvak.banananet.work
morska.banananet.work
rurapenthe.banananet.work

@ -0,0 +1,27 @@
#!/usr/bin/env python3
import json
import sys
import yaml
def parse(path):
with open(path, 'r') as stream:
try:
data = yaml.safe_load(stream)
except yaml.YAMLError as e:
return AnsibleError(e)
ret = { "all": { "hosts": list(), "vars": dict(), "children": list() } , "_meta": { "hostvars": {} } }
for host, groups in data.items():
ret["all"]["hosts"].append(host)
if groups is not None:
for group in groups:
if not group in ret:
ret[group] = dict()
ret[group]["hosts"] = list()
ret[group]["vars"] = dict()
ret[group]["children"] = list()
if not host in ret[group]["hosts"]:
ret[group]["hosts"].append(host)
return ret
print(parse("hosts.yml"))

@ -0,0 +1,16 @@
nvak.banananet.work:
- bootstrap
- public_available
- wireguard_backbones
morska.banananet.work:
- bwcloud_vserver
- bootstrap
- public_available
- wireguard_backbones
rurapenthe.banananet.work:
- bwcloud_vserver
- bootstrap
- public_available
- wireguard_backbones
hardie.khitomer.banananet.work:
- bootstrap
Loading…
Cancel
Save