Rewrote hosts file to tag-based structure
parent
5555c86357
commit
7b797dc8a5
@ -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…
Reference in New Issue