Checkpoint
Create a VM instance in dynamic zone with Terraform
/ 100
Concetti fondamentali di Terraform
GSP156
Panoramica
Terraform consente di creare, modificare e migliorare l'infrastruttura in modo sicuro e prevedibile. È uno strumento open source che codifica le API in file di configurazione dichiarativi che possono essere condivisi tra colleghi, trattati come codice, modificati, rivisti e sottoposti al controllo del versioni.
Obiettivi
In questo lab imparerai a:
- Svolgere operazioni di base con Terraform in Google Cloud.
- Installare Terraform da programmi binari di installazione.
- Creare un'infrastruttura con un'istanza VM mediante Terraform.
Configurazione e requisiti
Prima di fare clic sul pulsante Avvia lab
Leggi le seguenti istruzioni. I lab sono a tempo e non possono essere messi in pausa. Il timer si avvia quando fai clic su Avvia lab e ti mostra per quanto tempo avrai a disposizione le risorse Google Cloud.
Con questo lab pratico avrai la possibilità di completare le attività in prima persona, in un ambiente cloud reale e non di simulazione o demo. Riceverai delle nuove credenziali temporanee che potrai utilizzare per accedere a Google Cloud per la durata del lab.
Per completare il lab, avrai bisogno di:
- Accesso a un browser internet standard (Chrome è il browser consigliato).
- È ora di completare il lab: ricorda che, una volta iniziato, non puoi metterlo in pausa.
Come avviare il lab e accedere alla console Google Cloud
-
Fai clic sul pulsante Avvia lab. Se devi effettuare il pagamento per il lab, si apre una finestra popup per permetterti di selezionare il metodo di pagamento. A sinistra, trovi il riquadro Dettagli lab con le seguenti informazioni:
- Il pulsante Apri console Google Cloud
- Tempo rimanente
- Credenziali temporanee da utilizzare per il lab
- Altre informazioni per seguire questo lab, se necessario
-
Fai clic su Apri console Google Cloud (o fai clic con il tasto destro del mouse e seleziona Apri link in finestra di navigazione in incognito se utilizzi il browser Chrome).
Il lab avvia le risorse e apre un'altra scheda con la pagina di accesso.
Suggerimento: disponi le schede in finestre separate posizionate fianco a fianco.
Nota: se visualizzi la finestra di dialogo Scegli un account, fai clic su Usa un altro account. -
Se necessario, copia il Nome utente di seguito e incollalo nella finestra di dialogo di accesso.
{{{user_0.username | "Username"}}} Puoi trovare il Nome utente anche nel riquadro Dettagli lab.
-
Fai clic su Avanti.
-
Copia la Password di seguito e incollala nella finestra di dialogo di benvenuto.
{{{user_0.password | "Password"}}} Puoi trovare la Password anche nel riquadro Dettagli lab.
-
Fai clic su Avanti.
Importante: devi utilizzare le credenziali fornite dal lab. Non utilizzare le credenziali del tuo account Google Cloud. Nota: utilizzare il tuo account Google Cloud per questo lab potrebbe comportare addebiti aggiuntivi. -
Fai clic nelle pagine successive:
- Accetta i termini e le condizioni.
- Non inserire opzioni di recupero o l'autenticazione a due fattori, perché si tratta di un account temporaneo.
- Non registrarti per le prove gratuite.
Dopo qualche istante, la console Google Cloud si apre in questa scheda.
Attiva Cloud Shell
Cloud Shell è una macchina virtuale in cui sono caricati strumenti per sviluppatori. Offre una home directory permanente da 5 GB e viene eseguita su Google Cloud. Cloud Shell fornisce l'accesso da riga di comando alle risorse Google Cloud.
- Fai clic su Attiva Cloud Shell
nella parte superiore della console Google Cloud.
Quando la connessione è attiva, l'autenticazione è già avvenuta e il progetto è impostato sul tuo PROJECT_ID. L'output contiene una riga che dichiara il PROJECT_ID per questa sessione:
gcloud
è lo strumento a riga di comando di Google Cloud. È preinstallato su Cloud Shell e supporta il completamento tramite tasto Tab.
- (Facoltativo) Puoi visualizzare il nome dell'account attivo con questo comando:
-
Fai clic su Autorizza.
-
L'output dovrebbe avere ora il seguente aspetto:
Output:
- (Facoltativo) Puoi elencare l'ID progetto con questo comando:
Output:
Output di esempio:
gcloud
, in Google Cloud, fai riferimento alla Panoramica dell'interfaccia a riga di comando gcloud.
Che cos'è Terraform?
Terraform è uno strumento che consente di creare un'infrastruttura, modificarla e sottoporla al controllo delle versioni in modo sicuro ed efficiente. Terraform è in grado di gestire i più diffusi provider di servizi esistenti, nonché soluzioni personalizzate sviluppate internamente.
I file di configurazione descrivono a Terraform i componenti necessari per eseguire una singola applicazione o un intero data center. Terraform genera un piano di esecuzione che descrive le operazioni che effettuerà per raggiungere lo stato desiderato, quindi lo esegue per creare l'infrastruttura descritta. Al variare della configurazione, Terraform è in grado di stabilire che cosa è cambiato e di creare piani di esecuzione incrementali che possono essere applicati.
L'infrastruttura che Terraform può gestire include sia componenti di basso livello, come istanze di calcolo, spazio di archiviazione e networking, sia componenti di alto livello, come voci DNS e funzionalità SaaS.
Funzionalità principali
Infrastructure as Code (IaC)
L'infrastruttura viene descritta con una sintassi di configurazione di alto livello. In questo modo, un progetto di data center può essere sottoposto al controllo delle versioni e trattato come qualsiasi altro codice. Inoltre, l'infrastruttura può essere condivisa e riutilizzata.
Piani di esecuzione
Terraform prevede una fase di pianificazione in cui genera un piano di esecuzione. Il piano di esecuzione mostra che cosa farà Terraform quando eseguirai il comando apply
. Questo consente di evitare sorprese quando Terraform manipolerà l'infrastruttura.
Grafico delle risorse
Terraform crea un grafico di tutte le risorse e mette in parallelo la creazione e la modifica delle risorse non dipendenti. Di conseguenza, Terraform crea l'infrastruttura nel modo più efficiente possibile e gli operatori ottengono visibilità sulle dipendenze nella propria infrastruttura.
Automazione delle modifiche
È possibile applicare complessi set di modifiche all'infrastruttura riducendo al minimo l'interazione umana. Grazie al piano di esecuzione e al grafico delle risorse citati prima, saprai esattamente quali modifiche apporterà Terraform e in quale ordine, evitando così molti possibili errori umani.
Attività 1: verifica l'installazione di Terraform
Terraform è preinstallato in Cloud Shell.
- Apri una nuova scheda di Cloud Shell e verifica che Terraform sia disponibile:
L'output di supporto risultante dovrebbe essere simile al seguente:
Attività 2: crea l'infrastruttura
Se Terraform è installato, puoi iniziare immediatamente a creare un'infrastruttura.
Configurazione
Il set di file utilizzato per descrivere l'infrastruttura in Terraform è noto semplicemente come Terraform configuration
. In questa sezione scriverai la tua prima configurazione per avviare una singola istanza VM. Il formato dei file di configurazione si trova nella Documentazione del linguaggio Terraform. Per creare i file di configurazione è consigliabile utilizzare JSON.
- In Cloud Shell, crea un file di configurazione vuoto denominato
instance.tf
con il comando seguente:
-
Fai clic su Apri editor nella barra degli strumenti di Cloud Shell.
Per passare da Cloud Shell all'editor di codice o viceversa, fai clic su Apri editor o Apri terminale, a seconda del caso, oppure fai clic su Apri in una nuova finestra per lasciare aperto l'editor in una scheda separata. -
Fai clic sul file
instance.tf
e aggiungi il contenuto seguente al suo interno, sostituendo<PROJECT_ID>
con l'ID progetto di Google Cloud:
Questa è una configurazione completa che Terraform è pronto ad applicare. La struttura generale deve essere intuitiva e immediata.
Il blocco "resource" nel file instance.tf
definisce una risorsa esistente nell'infrastruttura. Una risorsa può essere un componente fisico, ad esempio un'istanza VM.
L'inizio vero e proprio del blocco della risorsa è preceduto da due stringhe che indicano il tipo di risorsa e il nome della risorsa. Per questo lab, il tipo di risorsa è google_compute_instance
e il nome è terraform
. Il prefisso del tipo si riferisce al provider: google_compute_instance
indica automaticamente a Terraform che è gestito dal provider Google
.
All'interno del blocco della risorsa è riportata la configurazione di cui la risorsa ha bisogno.
- In Cloud Shell, verifica che sia stato aggiunto il nuovo file e che nella directory non ci siano altri file
*.tf
, perché Terraform li carica tutti:
Inizializzazione
Il primo comando da eseguire per una nuova configurazione, o dopo avere eseguito il check-out di una configurazione esistente dal controllo della versione, è terraform init
. Questo comando inizializza varie impostazioni locali e i dati che verranno utilizzati dai comandi successivi.
Terraform utilizza un'architettura basata su plug-in per supportare i numerosi provider di infrastrutture e servizi disponibili. Ogni "provider" corrisponde a uno specifico programma binario incapsulato che viene distribuito separatamente da Terraform. Il comando terraform init
scaricherà e installerà automaticamente tutti i programmi binari dei provider che questi potranno utilizzare all'interno della configurazione. In questo caso, l'unico provider è Google.
- Scarica e installa il programma binario del provider:
Il plug-in del provider Google viene scaricato e installato in una sottodirectory della directory di lavoro corrente, insieme a diversi altri file di gestione. Verrà visualizzato un messaggio che indica che è in corso l'inizializzazione dei plug-in del provider. Sapendo che l'esecuzione si basa su un progetto Google, Terraform scarica le risorse Google.
L'output riporta la versione del plug-in che viene installata e suggerisce di specificare questa versione nei futuri file di configurazione, per garantire che terraform init
installi una versione compatibile.
- Crea un piano di esecuzione:
Terraform esegue un aggiornamento, a meno che non venga disabilitato esplicitamente, quindi stabilisce quali azioni sono necessarie per raggiungere lo stato specificato nei file di configurazione. Questo comando consente di verificare facilmente se il piano di esecuzione per un set di modifiche è in linea con le aspettative, senza modificare risorse effettive o lo stato. Ad esempio, può essere utile eseguire questo comando prima di eseguire il commit di una modifica nel controllo della versione, per assicurarsi che si comporti nel modo previsto.
-out
per salvare il piano generato in un file da eseguire successivamente con terraform apply
.
Applica le modifiche
- Nella stessa directory in cui si trova il file
instance.tf
che hai creato, esegui questo comando:
Questo output mostra il piano di esecuzione, che descrive le azioni che Terraform eseguirà per modificare l'infrastruttura reale in base alla configurazione. Il formato dell'output è analogo al formato diff generato da strumenti come Git.
Il segno +
accanto a google_compute_instance.terraform
indica che Terraform creerà questa risorsa. Di seguito sono indicati gli attributi che verranno impostati. Quando il valore visualizzato è <computed>
, significa che il valore sarà noto solo dopo la creazione della risorsa.
Output di esempio:
Se il piano è stato creato correttamente, ora Terraform interrompe le operazioni e attende l'approvazione prima di procedere. In un ambiente di produzione, se il piano di esecuzione presenta elementi che appaiono non corretti o pericolosi, è preferibile annullare l'operazione a questo punto. Non è stata apportata alcuna modifica all'infrastruttura.
- In questo caso il piano risulta accettabile, quindi digita
yes
alla richiesta di conferma per procedere.
L'esecuzione del piano richiede qualche minuto perché Terraform attende che l'istanza VM diventi disponibile.
Alla fine di questa operazione, Terraform ha terminato.
Verifica l'attività completata
Fai clic su Controlla i miei progressi per verificare l'attività eseguita. Se hai completato correttamente l'attività, riceverai un punteggio di valutazione.
- Nella console Google Cloud, nel menu di navigazione, fai clic su Compute Engine > Istanze VM. La pagina Istanze VM si apre e vedrai l'istanza VM che hai creato nell'elenco delle Istanze VM.
Terraform ha scritto alcuni dati nel file terraform.tfstate
. Questo file di stato è estremamente importante: tiene traccia degli ID delle risorse create per consentire a Terraform di sapere che cosa sta gestendo.
- In Cloud Shell, controlla lo stato corrente:
Output di esempio:
Come puoi notare, con la creazione della risorsa hai raccolto anche molte informazioni che la riguardano. Questi valori possono essere utilizzati come riferimento per configurare ulteriori risorse o output.
Complimenti! Hai creato la tua prima infrastruttura con Terraform. Hai visto la sintassi della configurazione e un esempio di piano di esecuzione di base e comprendi il file di stato.
Attività 3: verifica le tue conoscenze
Le seguenti domande a scelta multipla servono a consolidare le tue conoscenze relative ai concetti trattati in questo lab. Rispondi alle domande al meglio delle tue capacità.
Complimenti
Complimenti per aver completato questo lab! Hai imparato a usare Terraform per creare e gestire l'infrastruttura su Google Cloud.
Completa la Quest
Questo self-paced lab fa parte delle Quest Managing Cloud Infrastructure with Terraform e Automating Infrastructure on Google Cloud with Terraform. Una Quest è una serie di lab collegati tra loro che formano un percorso di apprendimento. Il completamento di una Quest ti permette di ottenere un badge come riconoscimento dell'obiettivo raggiunto. Puoi rendere pubblici i tuoi badge inserendone i link nel tuo CV online o sui social media. Iscriviti a una delle Quest contenenti il lab e ricevi un riconoscimento subito dopo averlo completato. Per vedere tutte le Quest disponibili, consulta il catalogo di Google Cloud Skills Boost.
Segui il prossimo lab
Continua la Quest con Infrastruttura sotto forma di codice con Terraform. Puoi anche controllare questi lab Google Cloud Skills Boost:
- Provider personalizzati con Terraform
- Bilanciatore del carico basato sui contenuti HTTPS con Terraform
Passaggi successivi/Scopri di più
- Hashicorp su Google Cloud Marketplace!
- Community Terraform
- Esempi Terraform Google
Formazione e certificazione Google Cloud
… per utilizzare al meglio le tecnologie Google Cloud. I nostri corsi ti consentono di sviluppare competenze tecniche e best practice per aiutarti a metterti subito al passo e avanzare nel tuo percorso di apprendimento. Offriamo vari livelli di formazione, dal livello base a quello avanzato, con opzioni di corsi on demand, dal vivo e virtuali, in modo da poter scegliere il più adatto in base ai tuoi impegni. Le certificazioni ti permettono di confermare e dimostrare le tue abilità e competenze relative alle tecnologie Google Cloud.
Ultimo aggiornamento del manuale: 26 gennaio 2024
Ultimo test del lab: 10 agosto 2023
Copyright 2024 Google LLC Tutti i diritti riservati. Google e il logo Google sono marchi di Google LLC. Tutti gli altri nomi di società e prodotti sono marchi delle rispettive società a cui sono associati.