Guía de inicio rápido: Crea una instancia de VM con Terraform
En esta guía de inicio rápido, aprenderás a usar Terraform para crear una instancia de máquina virtual (VM) de Compute Engine y conectarte a esa instancia de VM.
Hashicorp Terraform es una herramienta de infraestructura como código (IaC) que te permite aprovisionar y administrar la infraestructura de nube. El proveedor de Terraform para Google Cloud (proveedor de Google Cloud) te permite aprovisionar y administrar la infraestructura de Google Cloud.
Antes de comenzar
Para usar una terminal en línea con gcloud CLI y Terraform ya configurados, activa Cloud Shell.
En la parte inferior de esta página, se inicia una sesión de Cloud Shell y se muestra una instrucción de línea de comandos. La sesión puede tardar unos segundos en inicializarse.
-
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_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
Prepare el entorno
Clona el repositorio de GitHub que contiene las muestras de Terraform:
git clone https://github.com/terraform-google-modules/terraform-docs-samples.git --single-branch
Ve al directorio que contiene la guía de inicio rápido de muestra:
cd terraform-docs-samples/compute/quickstart/create_vm
Revisa los archivos de Terraform
Revisa el archivo main.tf
. Este archivo define los recursos de
Google Cloud que deseas crear.
cat main.tf
El resultado es similar al que se muestra a continuación:
En este archivo, se describe el
recurso google_compute_instance
, que es el recurso de Terraform para la
instancia de VM de Compute Engine. google_compute_instance
está configurado para
tener las siguientes propiedades:
name
se configura comomy-vm
.machine_type
se configura comon1-standard-1
.zone
se configura comous-central1-a
.boot_disk
configura el disco de arranque de la instancia.network_interface
está configurado para usar la red predeterminada en tu proyecto de Google Cloud.
Crea la instancia de VM de Compute Engine
En Cloud Shell, ejecuta el siguiente comando para verificar que Terraform esté disponible:
terraform
El resultado debería ser similar al siguiente ejemplo:
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
Inicializa Terraform ejecutando el siguiente comando. Este comando prepara tu lugar de trabajo para que Terraform pueda aplicar tu configuración.
terraform init
El resultado debería ser similar al siguiente ejemplo:
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!
Para validar la configuración de Terraform, ejecuta el siguiente comando. Este comando realiza las siguientes acciones:
- Verifica que la sintaxis de
main.tf
sea correcta. - Muestra una vista previa de los recursos que se crearán.
terraform plan
El resultado debería ser similar al siguiente ejemplo:
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 que la sintaxis de
Aplica la configuración para aprovisionar los recursos descritos en el archivo
main.tf
:terraform apply
Cuando se te solicite, ingresa
yes
.Terraform llama a las API de Google Cloud para crear la instancia de VM definida en el archivo
main.tf
.El resultado debería ser similar al siguiente ejemplo:
Apply complete! Resources: 1 added, 0 changed, 0 destroyed
Conéctate a la instancia de VM
Conéctate a la instancia de VM que acabas de crear ejecutando el siguiente comando:
gcloud compute ssh --zone=us-central1-a my-vm
Realiza una limpieza
Para evitar que se apliquen cargos a tu cuenta de Google Cloud por los recursos que se usaron en esta página, borra el proyecto de Cloud que tiene los recursos.
En Cloud Shell, ejecuta el siguiente comando para borrar los recursos de Terraform:
terraform destroy
Cuando se te solicite, ingresa yes
.
El resultado debería ser similar al siguiente ejemplo:
Destroy complete! Resources: 1 destroyed.
¿Qué sigue?
- Aprende a implementar un servidor web de Flask básico con Terraform.
- Obtén más información para almacenar el estado de Terraform en un bucket de Cloud Storage.