# https://registry.terraform.io/providers/Telmate/proxmox/latest/docs/guides/cloud-init%2520getting%2520started locals { vms = { vm100 = { vmid = 100 name = "runner-docker" memory = 1024 cores = 1 primary_disk_size = "32G" }, } } provider "proxmox" { pm_api_url = "https://10.5.1.11:8006/api2/json" pm_tls_insecure = true pm_user = "tfuser@pve" pm_api_token_id = "tfuser@pve!tf" pm_api_token_secret = "992b51e6-578d-43ca-bc49-720fd407ef3f" } resource "proxmox_vm_qemu" "cloudinit" { for_each = local.vms vmid = each.value.vmid name = each.value.name target_node = "pve-mac" agent = 1 full_clone = true cpu { cores = each.value.cores } memory = each.value.memory boot = "order=scsi0" clone = "debian13-template" scsihw = "virtio-scsi-single" vm_state = "running" automatic_reboot = true cicustom = "vendor=local:snippets/init-agent.yaml" ciupgrade = true skip_ipv6 = true ciuser = "user" cipassword = "user" sshkeys = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIKxACXG6mkk+CML+NsTyJyteiyszpM7m1Pmq+AW7cQ19 yaprac terraform" ipconfig0 = "ip=dhcp" serial { id = 0 } disks { scsi { scsi0 { disk { storage = "local-lvm" size = each.value.primary_disk_size discard = false iothread = false } } } ide { ide1 { cloudinit { storage = "local-lvm" } } } } network { id = 0 bridge = "vmbr0" model = "virtio" } startup_shutdown { order = -1 startup_delay = -1 shutdown_timeout = -1 } lifecycle { ignore_changes = [ vm_state, cipassword, sshkeys, disks, ] } } terraform { required_providers { proxmox = { source = "Telmate/proxmox" version = "3.0.2-rc07" } } }