Dieses Repository enthält die Infrastrukturdefinition für mein Homelab basierend auf OpenTofu (Terraform Fork), Proxmox, und Ansible.
modules/vm-clone/- Terraform Modul zum Klonen von VMs aus vorhandenen Proxmox Templatesmodules/lxc/- Terraform Modul zur Erzeugung und Verwaltung von LXC-Containern in Proxmoxmodules/vm-template/- (optional) Modul zur Templateverwaltung (wird selten direkt verwendet)root/- Hauptkonfigurationsdateien für die Umgebung (Variablen, Moduleinbindungen)ansible/- Ansible Playbooks und Rollen zur weiteren Konfigurationsautomatisierung.gitignore- Ausschluss sensibler und temporärer Dateien
- VM Erstellung erfolgt ausschließlich durch Klonen von Templates (z.B. Ubuntu, Debian), die einmalig manuell oder mit Packer erstellt wurden.
- Cloud-init wird für die erste Konfiguration der VMs genutzt (User, SSH-Keys, Netzwerk).
- IP-Adressen für VMs und LXC werden automatisch aus der VMID abgeleitet über zentrale Variablen (
subnet,gateway_last_octet). - Der Proxmox Provider von OpenTofu wird zur Ressourcenverwaltung genutzt.
- Ansible ergänzt die Infrastruktur mit Software-Konfiguration und Dienstebereitstellung.
Alle wichtigen Parameter (z.B. SSH-Key, Subnetz, Gateway) befinden sich in der Root-variables.tf. Diese werden an die Module weitergereicht.
- Erstelle (manuell oder mit Packer) benötigte VM-Templates in Proxmox.
- Nutze die Terraform Module zum Klonen und Verwalten von VMs (
modules/vm-clone) und LXC-Containern (modules/lxc). - Setze
tofu applyein, um die Infrastruktur anzulegen und aktuell zu halten. - Konfiguriere die Systeme mit Ansible nach Bedarf.
Ein Verzeichnis packer/ kann zur Automatisierung der Template-Erstellung genutzt werden. Dabei wird ein Image automatisiert erstellt, konfiguriert und in Proxmox importiert.
.gitignoreschützt sensible Schlüssel und Terraform-Stände.- SSH-Key für GitHub Push und Terraform SSH-Access zentral verwalten.
Dieses Repository ist privat gepflegt. Für Fragen oder Anregungen gerne Issues oder Kontakt.