Guida rapida: crea un'istanza VM utilizzando Terraform
In questa guida rapida, scoprirai come utilizzare Terraform per creare un'istanza di macchina virtuale (VM) Compute Engine e connetterti a questa istanza VM.
Hashicorp Terraform è uno strumento Infrastructure as Code (IaC) che consente di eseguire il provisioning e gestire l'infrastruttura cloud. Il provider Terraform per Google Cloud (provider Google Cloud) ti consente di eseguire il provisioning e gestire l'infrastruttura Google Cloud.
Prima di iniziare
Per utilizzare un terminale online con gcloud CLI e Terraform già configurati, attiva Cloud Shell:
Nella parte inferiore di questa pagina viene avviata una sessione Cloud Shell e visualizzato un prompt della riga di comando. L'inizializzazione della sessione può richiedere alcuni secondi.
-
Create or select a Google Cloud project.
-
Create a Google Cloud project:
gcloud projects create PROJECT_ID
Replace
PROJECT_ID
with a name for the Google Cloud project you are creating. -
Select the Google Cloud project that you created:
gcloud config set project PROJECT_ID
Replace
PROJECT_ID
with your Google Cloud project name.
-
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Compute Engine API:
gcloud services enable compute.googleapis.com
-
Grant roles to your user account. Run the following command once for each of the following IAM roles:
roles/compute.instanceAdmin.v1
gcloud projects add-iam-policy-binding PROJECT_ID --member="user:USER_IDENTIFIER" --role=ROLE
- Replace
PROJECT_ID
with your project ID. -
Replace
USER_IDENTIFIER
with the identifier for your user account. For examples, see Represent workforce pool users in IAM policies. - Replace
ROLE
with each individual role.
- Replace
Prepara l'ambiente
Clona il repository GitHub contenente gli esempi di Terraform:
git clone https://github.com/terraform-google-modules/terraform-docs-samples.git --single-branch
Vai alla directory che contiene l'esempio della guida di avvio rapido:
cd terraform-docs-samples/compute/quickstart/create_vm
Esamina i file Terraform
Esamina il file main.tf
. Questo file definisce le risorse Google Cloud che vuoi creare.
cat main.tf
L'output è simile al seguente
Questo file descrive la
risorsa google_compute_instance
, ovvero la risorsa Terraform per l'
istanza VM Compute Engine. google_compute_instance
è configurato per avere le seguenti proprietà:
- L'opzione
name
è impostata sumy-vm
. - L'opzione
machine_type
è impostata sun1-standard-1
. - L'opzione
zone
è impostata suus-central1-a
. boot_disk
imposta il disco di avvio per l'istanza.network_interface
è impostato per utilizzare la rete predefinita nel tuo progetto Google Cloud.
Crea l'istanza VM Compute Engine
In Cloud Shell, esegui il seguente comando per verificare che Terraform sia disponibile:
terraform
L'output dovrebbe essere simile al seguente:
Usage: terraform [global options] <subcommand> [args] The available commands for execution are listed below. The primary workflow commands are given first, followed by less common or more advanced commands. Main commands: init Prepare your working directory for other commands validate Check whether the configuration is valid plan Show changes required by the current configuration apply Create or update infrastructure destroy Destroy previously-created infrastructure
Inizializza Terraform eseguendo il seguente comando. Questo comando prepara la tua area di lavoro in modo che Terraform possa applicare la configurazione.
terraform init
L'output dovrebbe essere simile al seguente:
Initializing the backend... Initializing provider plugins... - Finding latest version of hashicorp/google... - Installing hashicorp/google v5.35.0... - Installed hashicorp/google v5.35.0 (signed by HashiCorp) Terraform has created a lock file .terraform.lock.hcl to record the provider selections it made above. Include this file in your version control repository so that Terraform can guarantee to make the same selections by default when you run "terraform init" in the future. Terraform has been successfully initialized!
Convalida la configurazione di Terraform eseguendo il seguente comando. Questo comando esegue le seguenti azioni:
- Verifica che la sintassi di
main.tf
sia corretta. - Mostra un'anteprima delle risorse che verranno create.
terraform plan
L'output dovrebbe essere simile al seguente:
Plan: 1 to add, 0 to change, 0 to destroy. Note: You didn't use the -out option to save this plan, so Terraform can't guarantee to take exactly these actions if you run "terraform apply" now.
- Verifica che la sintassi di
Applica la configurazione per eseguire il provisioning delle risorse descritte nel file
main.tf
:terraform apply
Quando richiesto, inserisci
yes
.Terraform chiama le API Google Cloud per creare l'istanza VM definita nel file
main.tf
.L'output dovrebbe essere simile al seguente:
Apply complete! Resources: 1 added, 0 changed, 0 destroyed
Connettiti all'istanza VM
Connettiti all'istanza VM appena creata eseguendo il seguente comando:
gcloud compute ssh --zone=us-central1-a my-vm
Esegui la pulizia
Per evitare che al tuo account Google Cloud vengano addebitati costi relativi alle risorse utilizzate su questa pagina, elimina il progetto Google Cloud con le risorse.
In Cloud Shell, esegui il seguente comando per eliminare le risorse Terraform:
terraform destroy
Quando richiesto, inserisci yes
.
L'output dovrebbe essere simile al seguente:
Destroy complete! Resources: 1 destroyed.