Masdika Loading..
Masdika.ID

DevOps Engineer

Cloud Engineer

System Administrator

  • Home
  • Portfolio
  • Services
  • Resume
  • Skills
  • Blog
  • Contact
Masdika.ID

DevOps Engineer

Cloud Engineer

System Administrator

Download CV

Recent Posts

  • Dari Laptop Bekas Jadi Server Pribadi: Cara Membangun Home Server Murah Menggunakan ISP MyRepublic dengan Public IP
  • Pembuatan Subnet dan Alokasi IP Address pada Amazon Web Service VPC
  • Instalasi dan Konfigurasi AWS CLI pada EC2 (Lab Guide)
  • Membangun Arsitektur Web + Database Highly Available di AWS (RDS Multi-AZ)
  • Cara Reset Password OpenBSD di Proxmox via VNC

Recent Comments

  1. Alif on Jangan Gunakan latest Tag pada Docker Images! Ini Alasannya
  2. Sahrull on Panduan Lengkap Anti-DDoS: Installasi Iptables, Hardening, dan Cloudflare Proxy
  3. VSTRA on Cara Cerdas Menguasai Kubernetes (K8s): Panduan Lengkap Orkestrasi Kontainer untuk Developer Modern
  4. Rikiy on Cara Mudah Deploy Website Node.js Menggunakan Docker
  5. Masdika.BIZ.ID on Disaster Recovery Cluster (DRC) WordPress dengan MariaDB Galera dan Load Balancer Caddy

Categories

  • Tutorial

Masdika.ID

  • About
  • Terms & Conditions
  • Privacy Policy
BLOG POST

Automasi Proxmox VE 9 Pakai Terraform: Panduan Lengkap + Full Script Siap Pakai

January 3, 2026 Tutorial by Masdika.ID
Automasi Proxmox VE 9 Pakai Terraform: Panduan Lengkap + Full Script Siap Pakai

Kalau kamu pakai Proxmox VE 9 dan mau automasi bikin VM tanpa klik-klik GUI, Terraform adalah jawabannya.

Artikel ini FULL PRAKTIK, bukan teori:

  • βœ”οΈ dari install Terraform
  • βœ”οΈ setup user & security Proxmox
  • βœ”οΈ pilih provider yang BENAR untuk Proxmox VE 9
  • βœ”οΈ sampai VM benar-benar jadi

Semua file Terraform ditulis LENGKAP, tinggal copy–paste & apply πŸš€

πŸ“¦ 1. Install Terraform CLI

Sebelum mulai, pastikan Terraform CLI sudah terinstall.

πŸ‘‰ WAJIB ikuti dokumentasi resmi HashiCorp:
https://developer.hashicorp.com/terraform/install

πŸ’‘ Pilih sesuai OS kamu (Linux / Windows / macOS).

Cek setelah install:

terraform version

Kalau versi muncul, berarti siap lanjut βœ…

🧱 2. Arsitektur yang Dipakai

Terraform Server
   |
   |-- API Token
   
Proxmox VE 9
   |
   |-- Ubuntu Cloud-Init Template
   |-- vmbr1 (SDN)
   |-- DHCP

πŸ“Œ Terraform tidak SSH ke Proxmox, semua lewat API.

πŸ” 3. User & Role Khusus Terraform (Proxmox VE 9)

❌ Jangan pakai root@pam

Yang benar:

  • πŸ‘€ user: terraform@pve
  • 🎭 role: TerraformRole
  • πŸ”‘ API Token khusus

Buat user

pveum user add terraform@pve --comment "Terraform automation"

Buat role (VALID Proxmox VE 9)

pveum role add TerraformRole -privs "
VM.Audit
VM.Allocate
VM.Clone
VM.Migrate
VM.PowerMgmt

VM.Config.CPU
VM.Config.Memory
VM.Config.Disk
VM.Config.Network
VM.Config.Cloudinit
VM.Config.Options
VM.Config.CDROM
VM.Config.HWType

Datastore.Allocate
Datastore.AllocateSpace
Datastore.AllocateTemplate
Datastore.Audit

SDN.Use
Pool.Allocate

Sys.Audit
Sys.Console
Sys.Modify

VM.GuestAgent.Audit
VM.GuestAgent.Unrestricted
"

Assign role ke user

pveum aclmod / -user terraform@pve -role TerraformRole

Buat API Token

pveum user token add terraform@pve tf-token --privsep 0

⚠️ Simpan token secret, cuma muncul sekali.

πŸ“ 4. Struktur Folder Terraform

proxmox-terraform/
β”œβ”€β”€ versions.tf
β”œβ”€β”€ provider.tf
β”œβ”€β”€ vm.tf
β”œβ”€β”€ outputs.tf

🧩 5. versions.tf

terraform {
  required_version = ">= 1.5.0"

  required_providers {
    proxmox = {
      source  = "bpg/proxmox"
      version = "~> 0.55"
    }
  }
}

πŸ”— 6. provider.tf

provider "proxmox" {
  endpoint  = "https://IP_PROXMOX:8006/"
  api_token = "terraform@pve!tf-token=TOKEN_SECRET"
  insecure  = true
}

πŸ“Œ Format token HARUS:

user@realm!tokenid=tokensecret

πŸ–₯️ 7. vm.tf (FULL & FINAL)

resource "proxmox_virtual_environment_vm" "vm" {
  name      = "prod-ubuntu-1"
  node_name = "proxmox"

  clone {
    vm_id = 112
  }

  cpu {
    cores = 2
  }

  memory {
    dedicated = 2048
  }

  disk {
    datastore_id = "local-lvm"
    size         = 20
    interface    = "scsi0"
  }

  network_device {
    bridge = "vmbr1"
  }

  initialization {
    ip_config {
      ipv4 {
        address = "dhcp"
      }
    }

    user_account {
      username = "stackops"
      keys = [
        file("/root/.ssh/id_rsa.pub")
      ]
    }
  }
}

πŸ“Œ Catatan penting:

  • vm_id = ID template cloud-init, bukan nama
  • vmbr1 harus ada & aktif
  • SSH key wajib ada di server terraform

πŸ“€ 8. outputs.tf

output "vm_name" {
  value = proxmox_virtual_environment_vm.vm.name
}

▢️ 9. Jalankan Terraform

terraform init
terraform plan
terraform apply

Kalau sukses:

Apply complete! Resources: 1 added

⚠️ Warning QEMU Guest Agent?

Kalau muncul warning Guest Agent:

  • ❌ bukan error fatal
  • βœ… VM tetap jadi
  • βš™οΈ bisa diabaikan atau dibereskan pakai privilege tambahan

πŸŽ‰ Kesimpulan

βœ… Proxmox VE 9 butuh provider Terraform yang tepat
βœ… bpg/proxmox adalah solusi paling stabil saat ini
βœ… User & role khusus itu wajib
βœ… SDN permission sering jadi jebakan

πŸš€ Dengan setup ini, Proxmox kamu:

  • lebih rapi
  • lebih aman
  • siap automation & scaling

πŸ”₯ Tinggal lanjut bikin multi VM, Docker, atau Kubernetes sesuai dengan kebutuhan kita aja heheheπŸš€

Share:
Tags: linuxproxmoxterraform
Related Posts
Cara Reset Password OpenBSD di Proxmox via VNC

Kalau kamu lupa password OpenBSD di VM Proxmox, kamu tidak perlu reinstall. Cukup masuk lewat VNC console dan reset dari…

Panduan Download ISO dan Aktivasi Red Hat No-Cost

Panduan ini menjelaskan cara mendapatkan Red Hat Enterprise Linux (RHEL) secara gratis (resmi) menggunakan Developer Subscription, mulai dari download ISO…

Post navigation

Prev
Next
Β© 2025 www.masdika.id β€” Semua hak cipta dilindungi