Provider-Konfiguration
terraform {
required_providers {
libvirt = {
source = "dmacvicar/libvirt"
version = "~> 0.7"
}
}
}
provider "libvirt" {
uri = "qemu:///system"
}
VM-Ressourcen
resource "libvirt_volume" "ubuntu_base" {
name = "ubuntu-24.04-base"
pool = "default"
source = "https://cloud-images.ubuntu.com/noble/current/noble-server-cloudimg-amd64.img"
format = "qcow2"
}
resource "libvirt_volume" "vm_disk" {
count = var.vm_count
name = "vm-${count.index + 1}-disk"
base_volume_id = libvirt_volume.ubuntu_base.id
pool = "default"
size = 42949672960
}
resource "libvirt_domain" "vm" {
count = var.vm_count
name = "vm-${count.index + 1}"
memory = 4096
vcpu = 4
disk {
volume_id = libvirt_volume.vm_disk[count.index].id
scsi = true
}
network_interface {
network_name = "default"
wait_for_lease = true
}
cpu {
mode = "host-passthrough"
}
}
Deployment
terraform init
terraform plan -var="vm_count=3"
terraform apply -auto-approve -var="vm_count=3"
virsh list --all
terraform destroy -auto-approve
FAQ
Kann ich Proxmox mit Terraform steuern?
Ja, mit dem Proxmox Terraform Provider (Telmate oder BPG).
Fazit
Terraform + libvirt ermöglicht deklarative VM-Verwaltung – ideal für GitOps-Workflows.
IaC und KVM für KMU in Heidelberg, Mannheim und der Rhein-Neckar-Region. Beratung anfragen.