GSP156

Panoramica
In questo lab utilizzerai Terraform e Gemini Code Assist, un collaboratore basato sull'AI in Google Cloud, per eseguire il provisioning di un'istanza di macchina virtuale (VM).
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 delle versioni.
Obiettivi
In questo lab imparerai a:
- Svolgere operazioni di base con Terraform in Google Cloud.
- Installare Terraform da programmi binari di installazione.
- Creare una configurazione Terraform per un'istanza VM con Gemini Code Assist.
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 Inizia il 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 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).
Nota: per eseguire questo lab, utilizza una finestra del browser in modalità di navigazione in incognito (consigliata) o privata. Ciò evita conflitti tra il tuo account personale e l'account studente, che potrebbero causare addebiti aggiuntivi sul tuo account personale.
- È ora di completare il lab: ricorda che, una volta iniziato, non puoi metterlo in pausa.
Nota: utilizza solo l'account studente per questo lab. Se utilizzi un altro account Google Cloud, potrebbero essere addebitati costi su quell'account.
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 aprirà una finestra di dialogo per permetterti di selezionare il metodo di pagamento.
A sinistra, trovi il riquadro Dettagli lab con le seguenti informazioni:
- Il pulsante Apri la 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.
Nota: per accedere ai prodotti e ai servizi Google Cloud, fai clic sul menu di navigazione o digita il nome del servizio o del prodotto nel campo Cerca.
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.
-
Fai clic nelle seguenti finestre:
- Continua nella finestra delle informazioni di Cloud Shell.
- Autorizza Cloud Shell a utilizzare le tue credenziali per effettuare chiamate API 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:
Your Cloud Platform project in this session is set to {{{project_0.project_id | "PROJECT_ID"}}}
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:
gcloud auth list
- Fai clic su Autorizza.
Output:
ACTIVE: *
ACCOUNT: {{{user_0.username | "ACCOUNT"}}}
To set the active account, run:
$ gcloud config set account `ACCOUNT`
- (Facoltativo) Puoi elencare l'ID progetto con questo comando:
gcloud config list project
Output:
[core]
project = {{{project_0.project_id | "PROJECT_ID"}}}
Nota: per la documentazione completa di gcloud
, in Google Cloud, fai riferimento alla guida 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 computing, 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 un'installazione di Terraform
Terraform è preinstallato in Cloud Shell.
- Apri una nuova scheda di Cloud Shell ed esegui il comando seguente per verificare che Terraform sia disponibile:
terraform
L'output di supporto risultante dovrebbe essere simile al seguente:
Usage: terraform [--version] [--help] [args]
The available commands for execution are listed below. The most common, useful commands are shown first, followed by less common or more advanced commands. If you're just getting started with Terraform, stick with the common commands. For the other commands, please read the help and docs before usage.
Common commands: apply Builds or changes infrastructure console Interactive console for Terraform interpolations destroy Destroy Terraform-managed infrastructure env Workspace management fmt Rewrites config files to canonical format get Download and install modules for the configuration graph Create a visual graph of Terraform resources import Import existing infrastructure into Terraform init Initialize a Terraform working directory output Read an output from a state file plan Generate and show an execution plan providers Prints a tree of the providers used in the configuration push Upload this Terraform module to Atlas to run refresh Update local state file against real resources show Inspect Terraform state or plan taint Manually mark a resource for recreation untaint Manually unmark a resource as tainted validate Validates the Terraform files version Prints the Terraform version workspace Workspace management
All other commands: debug Debug output management (experimental) force-unlock Manually unlock the terraform state Advanced state management
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, abilita l'API Gemini for Google Cloud con il seguente comando:
gcloud services enable cloudaicompanion.googleapis.com
- Crea un file di configurazione vuoto denominato
instance.tf
con il comando seguente:
touch instance.tf
- 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.
Abilita Gemini Code Assist nell'IDE di Cloud Shell
Puoi utilizzare Gemini Code Assist in un ambiente di sviluppo integrato (IDE) come Cloud Shell per ricevere indicazioni sul codice o risolvere problemi di programmazione. Prima di poter iniziare a utilizzare Gemini Code Assist, devi abilitarlo.
- In Cloud Shell, abilita l'API Gemini for Google Cloud con il seguente comando:
gcloud services enable cloudaicompanion.googleapis.com
- Fai clic su Apri editor nella barra degli strumenti di Cloud Shell.
Nota: per aprire l'editor di Cloud Shell, fai clic su Apri editor nella barra degli strumenti di Cloud Shell. Puoi passare da Cloud Shell all'editor di codice o viceversa facendo clic su Apri editor o Apri terminale, a seconda del caso.
-
Nel riquadro a sinistra, fai clic sull'icona Impostazioni, quindi nella vista Impostazioni, cerca Gemini Code Assist.
-
Trova la casella di controllo per Geminicodeassist: Enable (Geminicodeassist: Abilita) e assicurati che sia selezionata, quindi chiudi le Impostazioni.
-
Fai clic su Cloud Code - No Project(Cloud Code - Nessun progetto) nella barra di stato nella parte inferiore dello schermo.
-
Autorizza il plug-in come indicato. Se non viene selezionato automaticamente un progetto, fai clic su Seleziona un progetto Google Cloud e scegli .
-
Verifica che il tuo progetto Google Cloud () venga visualizzato nel messaggio di stato di Cloud Code nella barra di stato.
-
In Esplora file, fai doppio clic su instance.tf per aprire il file instance.tf
. Questa azione abilita Gemini Code Assist, come indicato dalla presenza dell'icona
nell'angolo in alto a destra dell'editor.
-
Per generare un nuovo codice, fai clic sull'icona Gemini Code Assist: azioni intelligenti
e seleziona /generate.
In alternativa, puoi premere Ctrl+I (per Windows e Linux) o Cmd+I (per macOS) per aprire la finestra Gemini Code Assist e selezionare /generate per generare nuovo codice.
Usa Gemini Code Assist per generare una risorsa Terraform
In questa sezione esplorerai come utilizzare Gemini Code Assist per generare una risorsa Terraform, ad esempio una VM in questa istanza.
- Incolla il seguente prompt nella casella di testo incorporata di Gemini Code Assist.
Generate the Terraform configuration for a Google Compute Engine virtual machine, saving it to instance.tf, based on the following specifications:
* Project ID: {{{project_0.project_id | Project ID}}}
* VM Name: terraform
* Machine Type: e2-medium
* Deployment Zone: {{{ project_0.default_zone|zone}}}
* Boot Disk: Debian 12
* Network: Default network
Il codice nella casella di testo incorporata dovrebbe essere simile al seguente blocco di codice.
/generate Generate the Terraform configuration for a Google Compute Engine virtual machine, saving it to instance.tf, based on the following specifications: * Project ID: {{{project_0.project_id | Project ID}}} * VM Name: terraform * Machine Type: e2-medium * Deployment Zone: {{{ project_0.default_zone|zone}}} * Boot Disk: Debian 12 * Network: Default network
-
Premi Invio per generare il codice utilizzato per avviare un'istanza VM utilizzando Terraform. Quando richiesto nella vista Gemini Diff, fai clic su Accetta.
-
Nel file instance.tf
, visualizza il codice generato.
Questa è una configurazione completa che Terraform è pronto ad applicare. La struttura generale deve essere intuitiva e immediata.
Una volta accettato il suggerimento di Gemini Code Assist, il file instance.tf
risultante dovrebbe essere simile al seguente.
Contenuti del file generato:
resource "google_compute_instance" "default" {
project = "{{{project_0.project_id | Project ID}}}"
zone = "{{{ project_0.default_zone|zone}}}"
name = "terraform"
machine_type = "e2-medium"
boot_disk {
initialize_params {
image = "debian-cloud/debian-12"
}
}
network_interface {
network = "default"
}
}
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
, che indica automaticamente a Terraform che è gestito dal provider Google
.
All'interno del blocco della risorsa è riportata la configurazione di cui la risorsa ha bisogno.
- Nel terminale Cloud Shell, esegui il codice seguente per verificare che sia stato aggiunto il nuovo file e che nella directory non ci siano altri file
*.tf
, perché Terraform carica tutti i file .tf:
ls
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:
terraform init
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.
Installing hashicorp/google v6.47.0...
Nota: il tuo numero di versione potrebbe essere superiore.
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 plan
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.
Nota:
è possibile utilizzare l'argomento facoltativo -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:
terraform apply
L'output risultante 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:
An execution plan has been generated and is shown below.
Resource actions are indicated with the following symbols:
+ create
Terraform will perform the following actions:
# google_compute_instance.default will be created
+ resource "google_compute_instance" "default" {
+ can_ip_forward = false
+ cpu_platform = (known after apply)
+ deletion_protection = false
+ guest_accelerator = (known after apply)
+ id = (known after apply)
+ instance_id = (known after apply)
+ label_fingerprint = (known after apply)
+ machine_type = "e2-medium"
+ metadata_fingerprint = (known after apply)
+ name = "terraform"
+ project = "qwiklabs-gcp-42390cc9da8a4c4b"
+ self_link = (known after apply)
+ tags_fingerprint = (known after apply)
+ zone = "us-west1-c"
+ boot_disk {
+ auto_delete = true
+ device_name = (known after apply)
+ disk_encryption_key_sha256 = (known after apply)
+ kms_key_self_link = (known after apply)
+ source = (known after apply)
+ initialize_params {
+ image = "debian-cloud/debian-12"
+ labels = (known after apply)
+ size = (known after apply)
+ type = (known after apply)
}
}
+ network_interface {
+ address = (known after apply)
+ name = (known after apply)
+ network = "default"
+ network_ip = (known after apply)
+ subnetwork = (known after apply)
+ subnetwork_project = (known after apply)
+ access_config {
+ assigned_nat_ip = (known after apply)
+ nat_ip = (known after apply)
+ network_tier = (known after apply)
}
}
+ scheduling {
+ automatic_restart = (known after apply)
+ on_host_maintenance = (known after apply)
+ preemptible = (known after apply)
+ node_affinities {
+ key = (known after apply)
+ operator = (known after apply)
+ values = (known after apply)
}
}
}
Plan: 1 to add, 0 to change, 0 to destroy.
Do you want to perform these actions? Terraform will perform the actions described above. Only 'yes' will be accepted to approve.
Enter a value:
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, prima di qualsiasi modifica all'infrastruttura.
- In questo caso il piano risulta accettabile, quindi digita yes alla richiesta di conferma per procedere e premi Invio.
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.
Crea un'istanza VM nella zona con Terraform.
- 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, esegui questo comando per ispezionare lo stato attuale:
terraform show
Output di esempio:
# google_compute_instance.default:
resource "google_compute_instance" "default" {
can_ip_forward = false
cpu_platform = "Intel Haswell"
deletion_protection = false
guest_accelerator = []
id = "terraform"
instance_id = "3408292216444307052"
label_fingerprint = "42WmSpB8rSM="
machine_type = "e2-medium"
metadata_fingerprint = "s6I5s2tjfKw="
name = "terraform"
project = "qwiklabs-gcp-42390cc9da8a4c4b"
self_link = "https://www.googleapis.com/compute/v1/projects/qwiklabs-gcp-42390cc9da8a4c4b/zones/{{{project_0.default_zone}}}/instances/terraform"
tags_fingerprint = "42WmSpB8rSM="
zone = "{{{project_0.default_zone}}}"
boot_disk {
auto_delete = true
device_name = "persistent-disk-0"
source = "https://www.googleapis.com/compute/v1/projects/qwiklabs-gcp-42390cc9da8a4c4b/zones/{{{project_0.default_zone}}}/disks/terraform"
....
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 esplorato la sintassi della configurazione, un esempio di piano di esecuzione di base e 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 esplorato come utilizzare Terraform per creare e gestire l'infrastruttura su Google Cloud con Gemini Code Assist.
Passaggi successivi/Scopri di più
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: 25 agosto 2025
Ultimo test del lab: 25 agosto 2025
Copyright 2025 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.