مقدمه
Terraform provider پراکسماکس به شما امکان میدهد منابع Proxmox VE — VMها، کانتینرها، ذخیرهسازی — را با Infrastructure as Code مدیریت کنید.
پیکربندی Provider
HCL
terraform {
required_providers {
proxmox = {
source = "bpg/proxmox"
version = "~> 0.46"
}
}
}
provider "proxmox" {
endpoint = "https://proxmox.company.com:8006"
api_token = "terraform@pve!terraform=UUID-TOKEN"
}ایجاد VM از Template
HCL
resource "proxmox_virtual_environment_vm" "web_server" {
name = "web-server-01"
node_name = "pve-node1"
clone { vm_id = 9000; full = true }
cpu { cores = 4 }
memory { dedicated = 4096 }
disk {
datastore_id = "local-zfs"
interface = "scsi0"
size = 50
}
network_device { bridge = "vmbr0"; vlan_id = 10 }
initialization {
ip_config {
ipv4 { address = "192.168.10.50/24"; gateway = "192.168.10.1" }
}
user_account {
username = "admin"
keys = [file("~/.ssh/id_rsa.pub")]
}
}
}ایجاد چندین VM با count
HCL
resource "proxmox_virtual_environment_vm" "web_cluster" {
count = 3
name = "web-${count.index + 1}"
node_name = "pve-node${(count.index % 3) + 1}"
vm_id = 201 + count.index
}