Hai mai creato una VM Azure tramite il portale Azure? Se sì, quanti clic sono stati necessari per farlo? Puoi farlo ancora e ancora, fornendo gli stessi valori di input esatti per garantire il rispetto di uno standard specifico? Probabilmente no. È necessario automatizzare il processo. Crea VM Azure con Terraform!
Terraform di Hashicorp è un’utility che crea infrastrutture semplici o complesse on-premises o nel cloud. Terraform è un singolo file binario che legge file di configurazione, crea uno stato e poi garantisce che la tua infrastruttura venga creata e rimanga in quello stato.
In questo articolo, imparerai come iniziare con Terraform creando una VM Azure. Questo tutorial sarà un ottimo esempio di Azure con Terraform.
Prerequisiti
Se desideri seguire questo tutorial, assicurati di avere quanto segue:
In tutti i passaggi, questo tutorial utilizzerà macOS con PowerShell Core, anche se lo stesso processo può essere seguito su Windows 10 utilizzando PowerShell Core, Windows PowerShell o persino il prompt dei comandi di Windows.
Installazione di Terraform
Per iniziare, prima devi scaricare Terraform. Ci sono molti modi per farlo a seconda delle tue preferenze. Questo tutorial utilizza macOS, quindi puoi utilizzare HomeBrew eseguendo brew install terraform
. Puoi anche andare direttamente alla pagina di download di Terraform o, se sei su Windows, puoi usare Chocolatey anche.
Sapevi che Azure Cloud Shell ha Terraform pre-installato?
Una volta scaricato Terraform, copialo in una cartella nel tuo percorso e esegui terraform
. Dovresti vedere alcune istruzioni sull’uso come mostrato di seguito. Se vedi questo, sei pronto per procedere.

Autenticazione su Azure
Terraform utilizza i provider per comunicare con vari fornitori locali e cloud. In questo caso, devi configurare il provider Azure di Terraform. Presumendo che tu abbia installato Azure CLI e ti sia già autenticato su Azure, devi prima creare un service principal. Terraform utilizzerà il service principal per autenticarsi e accedere alla tua sottoscrizione di Azure.
Crea un Service Principal
Nella tua console, crea un service principal utilizzando Azure CLI. Per farlo:
Prima di tutto, trova il tuo ID di sottoscrizione utilizzando il comando az account list
di seguito.
Una volta ottenuto l’ID di sottoscrizione, crea un principal di servizio utilizzando il ruolo Contributor limitato alla tua sottoscrizione.
Azure CLI si collegherà ad Azure e creerà un’applicazione Azure AD con una password come mostrato di seguito. Poiché stai assegnando l’output mostrato di seguito alla variabile $sp
sopra, avrai l’appId
e la password
memorizzate nella variabile per un uso successivo.

Imposta le variabili d’ambiente
Terraform ha bisogno di conoscere quattro elementi di configurazione diversi per connettersi correttamente ad Azure.
- L’ID di sottoscrizione di Azure
- L’ID dell’applicazione Azure AD del principal di servizio
- La password del principal di servizio
- L’Azure AD tenant
Un modo per fornire queste informazioni a Terraform è utilizzare le variabili d’ambiente. Poiché questo tutorial viene eseguito in una console di PowerShell, puoi impostare queste variabili d’ambiente utilizzando $env:
. Di seguito vedrai ciascuna delle variabili d’ambiente che Terraform cercherà quando cercherà di connettersi ad Azure.
Dato che l’output di az ad sp create-for-rbac
è stato salvato nella variabile $sp
in precedenza, puoi semplicemente fare riferimento alle proprietà anziché copiarle e incollarle.
Una volta definiti le variabili d’ambiente, Terraform è pronto per connettersi ad Azure!
Crea un file di configurazione
Tutte le configurazioni di Terraform vengono create in una singola cartella di solito con un nome modulo. In questo tutorial, non stai creando un modulo ma seguirai la stessa pratica.
Nella tua console di PowerShell, crea una cartella chiamata TerraformTesting ovunque tu voglia e poi passa a quella directory.
Successivamente, crea il file di configurazione main.tf. Qui verranno memorizzate le configurazioni per creare la VM Azure con Terraform. Questo è il file di configurazione che la maggior parte chiama “main”. Contiene dichiarazioni di provider e risorse per tutta l’infrastruttura gestita dalla configurazione.
Se desideri saperne di più sulla sintassi (HCL), Michael Levan ed io abbiamo un ottimo capitolo su Terraform nel nostro eBook No BS Azure and DevOps.
Crea un nuovo file main.tf all’interno della cartella Terraformtesting che assomigli al seguente.
Inizializza Terraform
Terraform ha bisogno di sapere quale provider userai quando cercherà di creare risorse. Deve saperlo in anticipo perché scarica questi provider nella stessa cartella in cui stai lavorando.
Scarica il provider di risorse azurerm
come definito nel file di configurazione principale eseguendo il comando terraform init
. Una volta fatto ciò, dovresti vedere un output simile al seguente.

Valida la configurazione
La configurazione che hai creato potrebbe non essere perfetta. Lo so, è difficile da credere, vero? Terraform ha bisogno di convalidare la configurazione per eventuali errori di sintassi. Per farlo, esegui il comando terraform plan
. Questo comando legge i file di configurazione nella directory e segnala eventuali errori.
Assicurati di correggere eventuali errori segnalati da
terraform plan
prima di provare effettivamente a creare l’infrastruttura!
Costruisci la VM di Azure con Terraform
Infine, è arrivato il momento di creare effettivamente la VM di Azure eseguendo terraform apply
. Quando esegui terraform apply
, Terraform legge tutti i file di configurazione presenti nella directory e ti chiede conferma. Una volta digitato “yes”, si connetterà ad Azure e inizierà a creare la VM e tutte le risorse associate.

Se vedi il testo luminoso e brillante verde Apply complete!
in fondo, significa che Terraform ha creato con successo le risorse!
Pulizia
Dato che questa era solo una dimostrazione e probabilmente non hai intenzione di mantenere questa VM, fai un favore a te stesso e rimuovi tutto ciò che hai fatto.
Hai creato un service principal per l’autenticazione di Terraform su Azure. Puoi rimuoverlo con il comando az ad sp delete
qui sotto.
Inoltre, rimuovi la VM di Azure appena creata e tutte le altre risorse nel file di configurazione utilizzando terraform destroy
. Se vuoi convalidare la configurazione e testare cosa accadrebbe se eseguissi terraform destroy
, puoi anche eseguire terraform plan -destroy
.
Conclusion
Terraform è uno strumento fantastico e gratuito per costruire infrastrutture in molte aree diverse. Imparare la sintassi di HCL è la parte più difficile di Terraform, ma onestamente, HCL è un linguaggio intuitivo. Se stai pensando di utilizzare uno strumento come Terraform o modelli ARM, ad esempio, impara Terraform!
Terraform è uno strumento molto popolare nell’industria, con un grande supporto della comunità e molte persone pronte ad aiutare!