feat: replace per-node baked ISOs with HTTP answer server

Replace 4 per-node auto-install ISOs (~4GB) with 2 generic ISOs
(~2GB) served by an HTTP answer server that routes per-node configs
by MAC address.

New flow:
1. Deterministic MAC addresses assigned per node (AA:BB:CC:00:VV:NN)
2. Per-MAC answer.toml files generated in answers/ directory
3. HTTP answer server (slothcroissant/proxmox-auto-installer-server)
   managed by Terraform, serves answer files on port 8000
4. Generic ISOs prepared with --fetch-from http --url pointing to
   the answer server
5. PVE installer POSTs system info, server matches MAC to answer file

Benefits:
- 50% reduction in ISO disk/tmp usage (2 ISOs instead of 4)
- Faster ISO preparation (2 builds instead of 4)
- Answer files can be updated without rebuilding ISOs
- First-boot script embedded in generic ISO via --on-first-boot

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
Clint Branham
2026-03-25 14:38:15 -05:00
parent 943a9e61dd
commit b3005e1e72
4 changed files with 124 additions and 43 deletions
+20
View File
@@ -1,3 +1,23 @@
# ── Answer server container ──────────────────────────────────────────
resource "docker_container" "answer_server" {
name = "pvetest-answer-server"
image = "slothcroissant/proxmox-auto-installer-server:latest"
restart = "unless-stopped"
network_mode = "host"
volumes {
host_path = var.answer_files_dir
container_path = "/app/answers"
}
volumes {
host_path = var.default_answer_file
container_path = "/app/default.toml"
}
}
# ── Docker images & volumes ──────────────────────────────────────────
resource "docker_image" "ubuntu" {