Nello spazio dell’infrastruttura come codice (IaC), uno degli strumenti più utili emersi negli ultimi anni è HashiCorp’s Terraform Windows. La capacità di versionare l’infrastruttura, automatizzare il provisioning delle risorse e eseguire su diversi fornitori di cloud è enorme per qualsiasi flusso di lavoro DevOps e di automazione.
Un caso d’uso per Terraform è in CI/CD. Terraform ti permette di:
I miei ultimi video
- creare un ambiente di test
- implementare un’applicazione
- eseguire test di integrazione
- distruggere l’ambiente di test
Tutti i passaggi sono eseguiti automaticamente. E non è richiesto alcun data center!
Prerequisiti
Questo articolo è una guida all’installazione e all’avvio di Terraform Windows. Se desideri seguire, assicurati di avere i seguenti prerequisiti.
- A Windows 10 device
- Un account AWS
- Il CLI AWS installato e configurato su quel dispositivo. Puoi imparare come installarlo qui e come configurarlo qui.
- (Opzionale) Visual Studio Code con l’estensione Terraform
Installazione dell’applicazione Terraform Windows
Per sfruttare la potenza di Terraform, devi prima installarlo sul tuo sistema operativo preferito. In questo articolo, mi concentrerò su Windows. Ma sappi che Terraform può essere eseguito su altri sistemi operativi. Se non stai utilizzando Windows, dai un’occhiata alla documentazione di installazione.
La strada difficile
Se non puoi utilizzare un gestore di pacchetti o se vuoi capire come funziona il processo di installazione, puoi installare Terraform manualmente. Puoi installare Terraform scaricando l’eseguibile e aggiungendolo al percorso di sistema variabile di ambiente. Se sembra intimidatorio, ti assicuro che c’è un modo più semplice per farlo che imparerai nella prossima sezione.
- Scarica la versione appropriata di Terraform dalla pagina di download di HashiCorp. Nel mio caso, è la versione a 64 bit per Windows.
- Crea una cartella sul tuo disco C:\ dove puoi inserire l’eseguibile di Terraform. Preferisco mettere gli installer in una sottocartella (ad esempio C:\tools) dove puoi inserire i binari.
- Dopo il completamento del download, trovalo in Esplora file. Estrai il file zip nella cartella creata al passaggio 2.
- Apri il menu Start e digita “environment” e la prima cosa che compare dovrebbe essere Modifica le variabili di ambiente di sistema. Clicca su quella opzione e dovresti vedere questa finestra.

5. Fai clic su Variabili d’ambiente… in basso e vedrai questo:

6. Nella sezione inferiore dove si legge Variabili di sistema, trova quella chiamata Path e fai clic su Modifica. Vedrai quindi un elenco dei percorsi in cui trovare i binari di cui Windows potrebbe aver bisogno per qualsiasi motivo.
7. Fai clic su Nuovo e aggiungi il percorso della cartella in cui si trova terraform.exe in fondo all’elenco. Dovrebbe apparire così quando hai finito.

8. Fai clic su OK su ciascuno dei menu che hai aperto finché non ce ne sono più.
9. Per assicurarti che Windows rilevi il nuovo percorso, apri un nuovo prompt del CMD/PowerShell e digita refreshenv
.
10. Verifica che l’installazione sia riuscita inserendo terraform --version
. Se restituisce una versione, sei pronto per andare avanti.
Il modo facile
Uff, è stato davvero molto lavoro! Sarebbe terribile doverlo fare ogni volta che devi installare un nuovo software sul tuo dispositivo. Utilizziamo invece un gestore di pacchetti. Ci sono alcuni gestori di pacchetti che puoi utilizzare per installare Terraform su Windows. Per Windows, il mio preferito è Chocolatey. Rende l’installazione, la rimozione e l’aggiornamento del software semplici come un comando di una sola riga, e Terraform non fa eccezione a questo.
Per installare Terraform con Chocolatey, segui i seguenti passaggi:
- Apri un prompt del CMD/PowerShell come amministratore e installa Chocolatey utilizzando il comando dalla loro pagina di installazione.
- Una volta completato ciò, esegui
choco install terraform
. Se lo desideri, puoi anche aggiungere-y
alla fine per accettare automaticamente l’installazione sul tuo dispositivo.
Dopo l’esecuzione di quel comando, otterrai qualcosa del genere:
3. Verifica che l’installazione sia stata eseguita correttamente inserendo terraform --version
.
La via Linux
I can almost hear what you’re thinking. Wait a minute Chris, didn’t you say this was going to cover installing Terraform on Windows?
Sì, ed è ancora così. Ma una delle funzionalità di Windows 10 è il Sottosistema Windows per Linux, o WSL. Questo ti permette di eseguire comandi Linux su Windows.
- Installa WSL. Non andrò in dettaglio su come installare e configurare WSL qui, ma se vuoi seguire e non l’hai ancora configurato, puoi trovare un tutorial TechSnips sul tema qui di seguito.
2. Nella tua shell WSL, esegui apt-get install unzip
. Ti servirà per estrarre i binari di Terraform successivamente.
3. Scarica Terraform eseguendo wget https://releases.hashicorp.com/terraform/0.12.6/terraform_0.12.6_linux_amd64.zip
. Ricorda di sostituire la versione e l’architettura con quelle più adatte al tuo dispositivo. Puoi trovare l’elenco completo delle versioni di Terraform qui.
4. Esegui unzip terraform_0.12.6_linux_amd64.zip terraform
per decomprimere i contenuti dello zip in una cartella chiamata terraform.
5. Una volta che il file ZIP è stato decompresso, sarà necessario spostarlo in una posizione accessibile dal percorso di sistema. Fortunatamente, Linux ha una cartella a cui gli utenti possono aggiungere binari di default. Sposta il binario di Terraform lì eseguendo mv terraform /usr/local/bin/
. La cartella /usr/local/bin è già impostata nel tuo percorso di sistema.
6. Verifica che l’installazione sia stata eseguita correttamente eseguendo terraform --version
.
Automazione di un’istanza EC2 di Terraform di AWS
Ora che hai installato Terraform, puoi iniziare a usarlo. In questo post, mostrerò come creare una semplice istanza EC2 di Terraform di AWS. Tieni presente che Terraform può creare centinaia di diversi tipi di infrastrutture.
Per iniziare, avrai bisogno di una directory in cui eseguire gli script di Terraform EC2. È importante avere una directory separata per ogni ambiente. Al momento in cui sto scrivendo, Terraform non ha un modo per filtrare cosa viene eseguito. Eseguirà tutti gli script nella tua directory di lavoro corrente.
Configurazione di uno script TF
- Nella tua console cmd o PowerShell eseguita come amministratore, esegui
mkdir hello-terraform
e poicd ./hello-terraform
- Una volta che hai una directory, avrai bisogno di uno script Terraform. Di seguito è riportato un esempio di quello che puoi utilizzare. Questo è uno script Terraform tipico che utilizza il provider AWS per creare una risorsa istanza AWS .
Se desideri l’intero script, copialo di seguito. Se vuoi capire cosa fa questo script, continua a leggere di seguito.
# Terraform HCL
3. Salva lo script sopra come main.tf
nella tua directory di lavoro.
Comprensione degli script TF
Prima di procedere ulteriormente, guarda il blocco sottostante e ciò che sta dichiarando.
# Terraform HCL
Questo blocco indica a Terraform EC2 quale provider utilizzare. Ci sono provider per tutti i principali fornitori di cloud, nonché alcuni fornitori on-premise. Se sei più esperto e sai come scrivere in Golang, puoi anche scrivere il tuo provider.
Questo blocco indica a Terraform di utilizzare il provider AWS e le chiavi di accesso nel file ~/.aws/credentials
con il nome del profilo default
. Questo file viene creato quando si configura AWS CLI con il comando aws config
come indicato nei prerequisiti.
Vale anche la pena notare che ~/
è una scorciatoia per la directory dell’utente corrente. Se provieni da un ambiente Windows, questo è equivalente a $env:USERPROFILE
o %USERPROFILE%
. Ma Terraform non supporta questa notazione al momento della scrittura.
Il blocco successivo descrive un’istanza EC2 di Terraform e come crearla. Se si consulta la documentazione di Terraform per aws_instance, si possono vedere alcuni parametri obbligatori e alcuni opzionali. In questo caso, i parametri obbligatori sono l’ID AMI (ami-07d0cf3af28718ef8
) per Ubuntu 18.04 LTS e t2.micro
per il tipo di istanza.
Passando un blocco di tag con la chiave Name
e il valore HelloTerraform
, questo tag verrà assegnato anche all’istanza che viene creata. Questo è opzionale.
#Terraform HCL
Ora che lo script è configurato, chiamarlo eseguendo terraform init
dalla directory di lavoro. Questo scaricherà tutte le dipendenze e il provider in una cartella chiamata .terraform
. Se tutto va bene, dovresti ottenere qualcosa del genere:
Prima di apportare modifiche, Terraform EC2 ti consente di vedere cosa verrà creato eseguendo terraform plan
. Ecco cosa verrà visualizzato:
# aws_instance.ubuntu verrà creato
Creazione dell’istanza AWS EC2: Creazione
Ora sei pronto per eseguirlo da solo eseguendo terraform apply
. Di seguito vedrai un output simile a quello di terraform plan
, ma con un prompt aggiuntivo per confermare che desideri effettivamente applicare queste modifiche.
Una volta digitato ‘sì’, Terraform EC2 inizierà la fornitura dell’istanza Terraform EC2 chiamando le API AWS con la chiave di accesso nel tuo file delle credenziali. Questo potrebbe richiedere del tempo. Una volta completato, vedrai qualcosa come segue:
Distruzione dell’istanza AWS EC2
Una volta terminato l’ambiente di test, puoi distruggere l’istanza.
Nella tua console cmd/PowerShell, digita terraform destroy
. Come il comando apply
, vedrai un elenco di risorse che Terraform sta per distruggere, quindi un prompt prima di distruggerle effettivamente.
Una volta digitato ‘sì’, Terraform EC2 inizierà a distruggere l’istanza e confermerà quando avrà finito.