36 lines
1 KiB
Text
36 lines
1 KiB
Text
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 = {} }
|
|
}
|