Terraform Sử dụng terraform để tự động hóa tạo máy ảo tự động trên proxmox và cloud hetzner Tạo VM với Terraform và Proxmox Step 1: Tạo API Token và Lưu lại Token ID , Secret Login vào proxmox ve server  Chọn Datacenter ở cột trái Nhìn qua phải thì section Permissions > chọn API Token Chọn Add để tạo Api Token Add Token theo user root Privilege Seperation: Unchecked (bỏ check) Token Id: Điền tên terraform Nhấn Add Button Lưu lại các thông tin sau vì nó chỉ hiện một lần: Token ID: root@pam!teraform Secret: 8ac5928a-9f2f-49e0-90d4-7542f87b9361 Step 2: Tạo Folder và các files terraform-proxmox Sau khi lưu xong token id và secret thì bạn mở webstorm hay vscode lên, tạo project trống tên là terraform-proxmox ở ổ đĩa nào tùy bạn, mình chọn ổ đĩa F: Install plugin hổ trợ terraform language Tạo 3 file, provider.tf, credentials.auto.tfvars, srv-demo-1.tf file: provider.tf terraform { required_version = ">= 0.13.0" required_providers { proxmox = { source = "telmate/proxmox" version = ">= 2.9.14" } } } variable "proxmox_api_url" { type = string } variable "proxmox_api_token_id" { type = string sensitive = true } variable "proxmox_api_token_secret" { type = string sensitive = true } provider "proxmox" { pm_api_url = var.proxmox_api_url pm_token_id = var.proxmox_api_token_id pm_token_secret = var.proxmox_api_token_secret pm_tls_insecure = true } file: credentials.auto.tfvars proxmox_api_url = "https://gray.kyluat.lan:8006/api2/json" proxmox_api_token_id = "root@pam!teraform2" proxmox_api_token_secret = "8ac5928a-9f2f-49e0-90d4-7542f87b9361" Nhớ chỉnh sửa lại thông tin url, token id và token secret của bạn đã tạo. cái url thay thế bằng ip address server proxmox của bạn cũng đc. ví dụ: https://192.168.1.12:8006/api2/json file: srv-demo-1.tf resource "proxmox_vm_qemu" "srv_demo_1" { name = "srv-demo-1" desc = "Demo Server 1" vmid = "201" target_node = "gray" agent = 0 clone = "ubuntu-cloud" cores = 2 sockets = 1 cpu = "host" memory = 2048 network { model = "virtio" bridge = "vmbr0" } disk { type = "virtio" storage = "local-lvm" size = "2252M" } os_type = "cloud-init" ipconfig0 = "ip=dhcp" nameserver = "192.168.1.11" ciuser = "USERNAMEABC" sshkeys = < type: bình thường là virtio, nếu xài scsi thì phải sửa lại type = "scsi". điền thêm thông tin bên ngoài (trên dòng os_type) với: disk { type = "scsi" storage = "local-lvm" size = "2252M" } scsihw = "virtio-scsi-pci" os_type = "cloud-init" disks > size: phần này phải điền đúng với size của cloud image đã tạo. nếu không terraform tự tạo ra 2nd disk. Cài đặt terraform lên máy và cd tới folder project đó, sau đó đánh command  cd f:/terraform-proxmox/ terraform init sau đó đánh command sau để check xem terraform plan success hết variables hay không: terraform plan Nếu thấy mọi thứ xanh lè hết thì đúng rồi, trừ phi copy and paste mấy cái thông số sai. Kế tiếp nhấn command sau để apply: terraform apply --auto-approve Sau đó vào proxmox sẽ thấy vm srv_demo_1 như hình sau Kết quả: