ansible/dhall/inventory.dhall

37 lines
1 KiB
Text
Raw Normal View History

2024-11-26 04:03:32 +00:00
let ip = ./ip.dhall
let Host = ./Host.dhall
let servers = ./servers.dhall
let render =
\(host : Host.Host) ->
let domain = "sailmaker.fenix.lgbt"
let renderAddress =
\(address : Host.Address) ->
merge
{ ip = \(ip : ip.Address) -> ip.address
, dhcp = "${host.name}.${domain}"
}
address
in { ansible_host = renderAddress host.address }
in { servers.hosts
=
{ reason = render servers.reason, nomadix = render servers.nomadix }
, appliances.hosts.ipowerswitch = render servers.ipowerswitch
, virtual.hosts
=
{ pihole = render servers.pihole
, wireguard = render servers.wireguard
, lldap = render servers.lldap
, traefik = render servers.traefik
, homeassistant = render servers.homeassistant
, mqtt = render servers.mqtt
, heimdall = render servers.heimdall
}
, sailmaker.children = { servers = {}, appliances = {}, virtual = {} }
}