رفتن به محتوا
بازگشت به وبلاگ
Proxmox

خودکارسازی Proxmox VE با Terraform

استفاده از Provider Terraform Proxmox برای Provision VM، کانتینر و ذخیره‌سازی به صورت کد با مدیریت زیرساخت اعلانی.

شهریور ۱۴۰۴
۱۳ دقیقه مطالعه

مقدمه

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
}