32 lines
618 B
Python
Executable File
32 lines
618 B
Python
Executable File
#!/usr/bin/env python
|
|
|
|
import json
|
|
import subprocess
|
|
|
|
IGNORED_HOSTS = [
|
|
"inc1",
|
|
"inc2",
|
|
"media1",
|
|
"nixos-test1",
|
|
"ns3",
|
|
"ns4",
|
|
"template1",
|
|
]
|
|
|
|
result = subprocess.run(["nix", "flake", "show", "--json"], stdout=subprocess.PIPE, stderr=subprocess.DEVNULL)
|
|
results = json.loads(result.stdout)
|
|
|
|
configs = results.get("nixosConfigurations")
|
|
hosts = [x for x in configs.keys() if x not in IGNORED_HOSTS]
|
|
|
|
output = {
|
|
"all": {
|
|
"hosts": hosts,
|
|
"vars": {
|
|
"ansible_python_interpreter": "/run/current-system/sw/bin/python3"
|
|
},
|
|
}
|
|
}
|
|
|
|
print(json.dumps(output))
|