feat: add icinga & ansible file generation

This commit is contained in:
2022-12-28 19:18:48 +01:00
parent d19448cf31
commit 9461a95639
3 changed files with 20 additions and 1 deletions

View File

@@ -3,7 +3,7 @@ environment = jinja2.Environment(loader=jinja2.FileSystemLoader(searchpath="./te
def createMasterHostConfig(vmList): def createMasterHostConfig(vmList):
template = environment.get_template("icinga_host.conf.j2") template = environment.get_template("icinga_host.conf.j2")
with open("build/icinga_master_hosts.conf", "w") as f: with open("ansible/files/icinga_master_hosts.conf", "w") as f:
for vmo in vmList: for vmo in vmList:
if not vmo.check: if not vmo.check:

11
main.py
View File

@@ -78,3 +78,14 @@ if __name__ == "__main__":
# dump icinga master # dump icinga master
icinga.createMasterHostConfig(vmList) icinga.createMasterHostConfig(vmList)
# dump ansible
with open("./ansible/hosts.ini", "w") as f:
env = jinja2.Environment(loader=jinja2.FileSystemLoader(searchpath="./templates"))
template = env.get_template("hosts.ini.j2")
for vmo in set(vmList):
if vmo.ansible:
f.write(template.render(hostname=vmo.hostname, ip=vmo.ip))
f.write("\n")

8
vm.py
View File

@@ -15,6 +15,7 @@ class VM:
self.network = args.get("network") or "default" self.network = args.get("network") or "default"
self.isExternal = args.get("external") self.isExternal = args.get("external")
self.noTerminateACME = args.get("no-terminate-acme") self.noTerminateACME = args.get("no-terminate-acme")
self.ansible = not args.get("noansible")
if self.isExternal: if self.isExternal:
self.lease = None self.lease = None
@@ -39,6 +40,13 @@ class VM:
raise ValueError("Hostname {} doesn't have a DHCP lease".format(self.hostname)) raise ValueError("Hostname {} doesn't have a DHCP lease".format(self.hostname))
def __hash__(self):
return hash(self.hostname)
def __eq__(self, other):
return self.hostname == other.hostname
def dumpStreamComponents(self): def dumpStreamComponents(self):
# port forwarding components # # port forwarding components #