# ── Site configuration ───────────────────────────────────────────────────────── hypervisors = { proxmox = { api_url = "https://192.168.0.240:8006/api2/json" node_name = "pve" storage = "local-lvm" } } ipam_endpoint = "https://ipam.example.net/api" network_subnets = { lan = "192.168.0.0/24" } ansible_user = "ansible" search_domain = "oswaldtheotter.lan" dns_nameservers = "1.1.1.1" technitium_host = "http://192.168.0.2:5380" # ── DNS (Technitium) ──────────────────────────────────────────────────────────── # Every declared node automatically gets an A record in the search_domain zone # (lan.oswaldtheotter.net). Define extra zones and manual records below. # Additional zones beyond the auto-managed search_domain zone. dns_zones = { # "internal.oswaldtheotter.net" = { type = "Primary" } # "10.168.192.in-addr.arpa" = { type = "Primary" } } # Manual records. In the search_domain zone, a record whose name matches an # auto-added host replaces that host's record instead of conflicting with it. dns_records = [ # { zone = "lan.oswaldtheotter.net", name = "router", type = "A", value = "192.168.0.1" }, # { zone = "lan.oswaldtheotter.net", name = "nas", type = "CNAME", value = "dev.lan.oswaldtheotter.net" }, # { zone = "lan.oswaldtheotter.net", name = "@", type = "MX", value = "mail.lan.oswaldtheotter.net", priority = 10 }, { zone = "oswaldtheotter.lan", name = "omada", type = "A", value = "192.168.0.110" }, { zone = "oswaldtheotter.lan", name = "portanas", type = "A", value = "192.168.0.4" }, { zone = "oswaldtheotter.lan", name = "proxmox", type = "A", value = "192.168.0.240" }, { zone = "oswaldtheotter.lan", name = "nas", type = "CNAME", value = "portanas.oswaldtheotter.lan" }, { zone = "oswaldtheotter.lan", name = "s3", type = "CNAME", value="portanas.oswaldtheotter.lan"}, ] # ── Node definitions ─────────────────────────────────────────────────────────── nodes = { proxmox = { lxc = { "dev" = { hostname = "dev" vmid = 800 template = "local:vztmpl/debian-13-standard_13.1-2_amd64.tar.zst" unprivileged = true onboot = true tags = "" memory = 2048 swap = 1024 disk_size = "32G" nic_name = "eth0" bridge = "vmbr0" ip = "192.168.0.200/24" nameserver = "192.168.0.2" gw = "192.168.0.1" } "audiopen" = { hostname = "audiopen" vmid = 801 template = "local:vztmpl/debian-13-standard_13.1-2_amd64.tar.zst" unprivileged = true onboot = true tags = "" memory = 512 swap = 0 disk_size = "8G" nic_name = "eth0" bridge = "vmbr0" ip = "192.168.0.202/24" gw = "192.168.0.1" } "remoteterm" = { hostname = "remoteterm" vmid = 117 template = "local:vztmpl/debian-13-standard_13.1-2_amd64.tar.zst" unprivileged = true onboot = false tags = "" memory = 2048 swap = 0 disk_size = "16G" nic_name = "eth0" bridge = "vmbr0" ip = "192.168.0.203/24" gw = "192.168.0.1" } "technitium" = { hostname = "technitium" vmid = 118 template = "local:vztmpl/debian-13-standard_13.1-2_amd64.tar.zst" unprivileged = true onboot = true tags = "" memory = 2048 swap = 0 disk_size = "8G" nic_name = "eth0" bridge = "vmbr0" ip = "192.168.0.2/24" gw = "192.168.0.1" } } machines = { } } }