Come automatizzare facilmente le macchine virtuali Proxmox utilizzando Terraform?

Gestire molte macchine virtuali può essere lento e soggetto a errori. Con Terraform e Proxmox, puoi utilizzare il codice per controllare le tue VM. Questo articolo mostra passo dopo passo come configurare l'automazione e ottimizzare il tuo flusso di lavoro.

download-icon
Download gratuito
per VM, sistema operativo, database, file, NAS, ecc.
giovanni

Updated by Giovanni on 2026/01/08

Indice dei contenuti
  • Cos'è Terraform?

  • Che cos'è Proxmox?

  • Perché utilizzare Terraform con Proxmox?

  • Metodo 1: Come configurare Terraform per Proxmox

  • Metodo 2: Provisioning di macchine virtuali con il provider Terraform Proxmox

  • Eseguire il backup delle VM Proxmox con Vinchin Backup & Recovery

  • Utilizzo di Terraform con Proxmox - Domande frequenti

  • Conclusione

Gestire macchine virtuali può risultare noioso quando è necessario distribuire o aggiornare molte contemporaneamente. Non sarebbe più semplice se potessi automatizzare questi compiti? È qui che entrano in gioco Terraform e Proxmox. Con essi, gestisci la tua infrastruttura come codice, risparmiando tempo e riducendo gli errori. Esploriamo come "terraform proxmox" può trasformare le tue operazioni quotidiane.

Cos'è Terraform?

Terraform è uno strumento open source che consente di creare, modificare e gestire l'infrastruttura in modo sicuro utilizzando il codice. Scrivi semplici file di configurazione per descrivere le risorse desiderate—server, reti, archiviazione—and Terraform le crea per te. Funziona su molte piattaforme. HashiCorp mantiene Terraform, rendendolo una scelta affidabile nel campo DevOps.

Che cos'è Proxmox?

Proxmox Virtual Environment (VE) è una piattaforma open source robusta per la virtualizzazione. Consente di eseguire sia macchine virtuali (VM) che container sul proprio hardware. Proxmox offre un'interfaccia basata sul web con funzionalità di clustering e supporta la migrazione in tempo reale delle VM tra host. È molto utilizzato sia nei laboratori domestici che nei data center aziendali.

Perché utilizzare Terraform con Proxmox?

Combinare Terraform con Proxmox ti fornisce potenti strumenti di automazione. Definisci l'infrastruttura delle tue macchine virtuali come codice, in modo che ogni distribuzione sia sempre coerente. Se hai bisogno di dieci VM identiche, perché cliccare attraverso i menu dieci volte? Con "terraform proxmox", scrivi la configurazione una volta sola, quindi applicala ogni volta che è necessario.

Ottieni anche il controllo delle versioni per le modifiche alla tua infrastruttura. Questo significa meno errori manuali e un recupero più rapido in caso di problemi.

Metodo 1: Come configurare Terraform per Proxmox

Automatizzare Proxmox con Terraform inizia con la corretta configurazione di entrambi gli strumenti sul tuo sistema di gestione.

Installa Terraform

Prima di tutto, installa Terraform stesso sul tuo sistema locale o dove gestirai l'infrastruttura. Scarica l'ultima versione dal sito ufficiale. Segui le istruzioni specifiche per Windows, Linux o macOS; l'installazione richiede solitamente solo pochi minuti.

Dopo l'installazione, verifica che funzioni eseguendo terraform --version nel tuo terminale o prompt dei comandi.

Configura il provider Proxmox

Successivamente, collega Terraform al tuo server Proxmox utilizzando un plugin del provider: il provider Telmate è ampiamente utilizzato a tale scopo.

Crea una nuova directory per i file del tuo progetto (ad esempio: mkdir terraform-proxmox). All'interno di questa cartella, crea un file chiamato main.tf:

terraform {
  required_providers {
    proxmox = {
      source  = "Telmate/proxmox"
      version = ">=2.9.9.11"
    }
  }
}

provider "proxmox" {
  pm_api_url      = "https://your-proxmox-server:8006/api2/json"
  pm_user         = "root@pam"
  pm_password     = "yourpassword" # Usa il token API o la variabile d'ambiente invece di inserire la password nel codice
  pm_tls_insecure = true           # Usa 'true' solo per i test; vedi più avanti
}

Sostituisci your-proxmox-server con l'effettivo indirizzo del server; sostituisci yourpassword con le credenziali appropriate—ma non inserire mai le password direttamente nel codice in produzione! Per una maggiore sicurezza, utilizza token API o variabili d'ambiente (vedi sezione successiva).

Se stai effettuando solo test in locale o hai certificati autofirmati su Proxmox VE, imposta pm_tls_insecure su true; altrimenti utilizza certificati SSL validi negli ambienti di produzione.

Inizializza il progetto eseguendo:

terraform init

Questo scarica i plugin necessari, quindi sei pronto per procedere quando vedi "Terraform è stato inizializzato correttamente!"

Sicurezza delle credenziali con variabili d'ambiente o token API

Hardcoding di informazioni sensibili come password è rischioso, ancora di più se si condivide il codice tra team! Invece:

1. Utilizza variabili d'ambiente:

Definire variabili come:

  • TF_VAR_pm_api_url

  • TF_VAR_pm_user

  • TF_VAR_pm_password

Negli sistemi di tipo Unix:

   export TF_VAR_pm_api_url="https://your-prox-server:8006/api2/json"
   export TF_VAR_pm_user="root@pam"
   export TF_VAR_pm_password="supersecret"

2. Usa token API:

Genera un token API tramite Datacenter > Autorizzazioni > Token API nell'interfaccia web di Proxmox.

Quindi aggiorna il tuo blocco del provider:

   provider "proxmox" {
     pm_api_url            = var.pm_api_url
     pm_api_token_id       = var.pm_api_token_id
     pm_api_token_secret   = var.pm_api_token_secret
     pm_tls_insecure       = false # Consigliato per produzione!
   }

3. Definire le Variabili nei File:

Crea un file separato (variables.tf) in cui elenchi tutte le variabili utilizzate sopra, in modo da poterle gestire facilmente senza esporre direttamente segreti nei repository di codice.

L'utilizzo di questi metodi mantiene le credenziali fuori dalla vista diretta, una pratica essenziale!

Metodo 2: Provisioning di macchine virtuali con il provider Terraform Proxmox

Una volta completata l'installazione, è il momento di creare effettivamente le VM in modo automatico utilizzando file di configurazione, invece di cliccare sui menu ogni volta!

Preparazione di un modello di VM Proxmox per la clonazione

Il modo più efficiente per distribuire più VM simili è clonando da un modello esistente, ovvero un'immagine base già configurata con le impostazioni del sistema operativo ma a cui non sono ancora stati assegnati identificativi univoci come nome host o indirizzo IP.

Per prepararne uno:

1. Crea una nuova macchina virtuale tramite la procedura guidata Crea VM nell'interfaccia web.

2. Installa un sistema operativo (ad esempio Ubuntu Server).

3. Personalizza le impostazioni secondo necessità (dimensione del disco/rete).

4. Spegnere la VM dopo il completamento dell'installazione.

5. Fare clic con il tasto destro del mouse sul nome sotto Datacenter, quindi selezionare Converti in modello.

6. Ora questo modello può essere clonato ripetutamente!

Senza questo passaggio, la clonazione non riuscirà poiché non esiste alcuna sorgente: preparare sempre prima i template prima di automatizzare distribuzioni di massa!

Definire la configurazione della macchina virtuale utilizzando file HCL

Ora definiamo l'aspetto della nostra nuova macchina virtuale all'interno di un altro file chiamato vm.tf. Ecco un esempio di blocco di risorse:

resource "proxmox_vm_qemu" "ubuntu_vm" {
  name        = "ubuntu-vm"
  target_node = "prox-node1"
  clone       = "ubuntu-template" # Deve corrispondere al nome del template preparato!
  cores       = 2
  memory      = 2048
  
  disk {
    size    = "20G"
    type    = "scsi"
    storage = "local-lvm"
  }

  network {
    model  = "virtio"
    bridge = "vmbr0"
  }

  os_type    = "cloud-init" 
  ciuser     = var.vm_user         # Usa la variabile qui!
  cipassword = var.vm_password     # Non inserire mai le password in chiaro!
  
  ipconfig0 =
    "ip=192.168.1.1"

}

Assicurati che "clone" corrisponda esattamente al nome del modello creato in precedenza! Regola i valori di CPU, memoria, disco e rete in base ai requisiti e utilizza sempre variabili invece di segreti in testo chiaro quando possibile.

1.100/24,gw=192.1681.

Utilizzo di Cloud-Init per la configurazione dinamica

Hai notato che "os_type" è impostato come "cloud-init" sopra? Cloud-Init ti consente di inserire dati utente come nomi utente, password e indirizzi IP al momento dell'avvio, rendendo ogni macchina virtuale clonata unica anche se condivide un'immagine di base!

Per abilitare il supporto Cloud-Init:

1. Caricare immagini ISO ufficiali di Cloud-Init tramite il menu Datacenter > Storage > Contenuto > Carica.

2. Collegare tale ISO come unità CD-ROM durante la creazione iniziale del modello.

3. Quando si definiscono risorse in HCL (os_type, ciuser, ecc.), specificare valori dinamici in base alle esigenze di distribuzione.

4. Utilizzare facoltativamente parametri avanzati come "cicustom" se si forniscono script/configurazioni personalizzati.

Questo approccio risparmia ore rispetto alla personalizzazione manuale dopo il clonaggio!

Applica la configurazione e gestisci il ciclo di vita

Pronto a partire? Esegui questi comandi dalla directory del tuo progetto:

terraform plan

Questo mostra in anteprima quali modifiche verranno apportate: esaminare sempre l'output prima di applicare aggiornamenti importanti!

Se soddisfatti, eseguire:

terraform apply

Terraform ora istruisce i server Proxmox VE tramite la sua API a creare nuove macchine virtuali che corrispondono a tutti i parametri specificati! L'avanzamento viene visualizzato sia sullo schermo che all'interno della dashboard dell'interfaccia web.

Distruggere le risorse in modo sicuro

Hai bisogno di pulizia successiva?

terraform destroy

rimuove tutto ciò che è definito dalle configurazioni correnti, inclusa l'eliminazione permanente delle VM! Prestare molta attenzione; si consiglia di aggiungere regole di ciclo di vita come:

lifecycle {
 prevent_destroy = true 
}

a risorse critiche in modo che non avvengano cancellazioni accidentali.

Eseguire il backup delle VM Proxmox con Vinchin Backup & Recovery

Dopo aver automatizzato la distribuzione delle macchine virtuali utilizzando i flussi di lavoro di terraform Proxmox, garantire un backup affidabile diventa essenziale per la continuità aziendale e la protezione dei dati negli ambienti come Proxmox VE e oltre (inclusi VMware, Hyper-V, oVirt, OLVM, RHV, XCP-ng, XenServer, OpenStack, ZStack e più di 15 piattaforme di virtualizzazione mainstream). Vinchin Backup & Recovery si distingue come una soluzione enterprise progettata specificamente per il backup delle macchine virtuali su infrastrutture diverse.

Con un'ampia compatibilità, inclusa la piena assistenza per modalità di backup incrementale come i backup basati su CBT sugli hypervisor supportati, Vinchin Backup & Recovery offre funzionalità solide pensate per le esigenze IT moderne: strategie di backup forever-incremental che minimizzano l'utilizzo dello spazio di archiviazione; deduplicazione/compressione accelerano i processi risparmiando spazio; il ripristino granulare consente scenari di recupero precisi; backup pianificati garantiscono protezione regolare senza intervento manuale; la migrazione V2V cross-platform semplifica lo spostamento dei carichi di lavoro tra diversi hypervisor, il tutto gestito attraverso un'unica interfaccia intuitiva che trasforma operazioni complesse in flussi di lavoro chiari.

Il backup di una macchina virtuale appena configurata con Vinchin Backup & Recovery prevede soltanto quattro passaggi tramite la sua intuitiva console web:

✅ Passaggio 1: Esegui il backup della macchina virtuale Proxmox

Seleziona la macchina virtuale Proxmox da cui eseguire il backup

✅ Passaggio 2: Ripristina sulla piattaforma di destinazione (ad esempio, Azure o VMware)

Scegli l'archiviazione di backup

✅ Passaggio 3:  Configurare le strategie di backup;

Configurare le strategie di backup

✅ Passaggio 4:  Invia il lavoro.

Invia il lavoro

Riconosciuto a livello globale da migliaia di aziende, con valutazioni eccellenti e una forte fiducia dei clienti, Vinchin Backup & Recovery offre una prova gratuita completa valida per 60 giorni; clicca qui sotto per sperimentare in prima persona una protezione dati completa!

Utilizzo di Terraform con Proxmox - Domande frequenti

Domanda 1: Posso automatizzare la creazione di container insieme alle macchine virtuali utilizzando terraform proxmox?

Sì, puoi gestire sia macchine virtuali basate su QEMU che contenitori LXC attraverso tipi di risorse supportati all'interno delle stesse configurazioni.

Q2: In che modo posso ruotare in modo sicuro le credenziali utilizzate dagli script di automazione?

Memorizza i segreti al di fuori del codice, nelle variabili d'ambiente, oppure integra gestori esterni di segreti e fai riferimento a questi in modo dinamico durante l'esecuzione.

Q3: Cosa devo fare se la mia personalizzazione cloud-init non viene applicata dopo il cloning?

Verifica che il cloud-init ISO sia stato collegato correttamente durante la creazione del template, quindi controlla che la sintassi e i valori siano stati passati correttamente nelle definizioni delle risorse.

Conclusione

L'automazione della gestione delle macchine virtuali attraverso terraform proxmox aumenta l'efficienza riducendo il rischio di errori umani in tutti i team operativi IT! Per backup affidabili integrati perfettamente in questi flussi di lavoro, prendete in considerazione Vinchin, una soluzione consolidata e fidata a livello globale da professionisti come voi.

Condividi su:

Categories: VM Backup