Descripción general
En este lab, usarás Terraform para crear, actualizar y destruir recursos de Google Cloud. Empezarás definiendo a Google Cloud como el proveedor.
Luego, crearás una instancia de VM sin mencionar la red para ver cómo Terraform analiza el código de configuración. Después, editarás el código para agregar la red y crearás una instancia de VM en Google Cloud.
Verás cómo actualizar la instancia de VM. Editarás la configuración existente para agregar etiquetas y editarás también el tipo de máquina. Ejecutarás comandos de Terraform para destruir los recursos que creaste.
Objetivos
En este lab, aprenderás a realizar las siguientes tareas:
- Verificar la instalación de Terraform
- Definir Google Cloud como proveedor
- Crear, cambiar y destruir recursos de Google Cloud con Terraform
Tarea 1: Accede a la consola de Cloud
En cada lab, recibirás un proyecto de Google Cloud y un conjunto de recursos nuevos por tiempo limitado y sin costo adicional.
-
Haz clic en el botón Comenzar lab. Si debes pagar por el lab, se abrirá una ventana emergente para que selecciones tu forma de pago.
A la izquierda, se encuentra el panel Detalles del lab, que tiene estos elementos:
- El botón Abrir la consola de Google Cloud
- El tiempo restante
- Las credenciales temporales que debes usar para el lab
- Otra información para completar el lab, si es necesaria
-
Haz clic en Abrir la consola de Google Cloud (o haz clic con el botón derecho y selecciona Abrir el vínculo en una ventana de incógnito si ejecutas el navegador Chrome).
El lab inicia recursos y abre otra pestaña en la que se muestra la página de acceso.
Sugerencia: Ordena las pestañas en ventanas separadas, una junto a la otra.
Nota: Si ves el diálogo Elegir una cuenta, haz clic en Usar otra cuenta.
-
De ser necesario, copia el nombre de usuario a continuación y pégalo en el diálogo Acceder.
{{{user_0.username | "Username"}}}
También puedes encontrar el nombre de usuario en el panel Detalles del lab.
-
Haz clic en Siguiente.
-
Copia la contraseña que aparece a continuación y pégala en el diálogo Te damos la bienvenida.
{{{user_0.password | "Password"}}}
También puedes encontrar la contraseña en el panel Detalles del lab.
-
Haz clic en Siguiente.
Importante: Debes usar las credenciales que te proporciona el lab. No uses las credenciales de tu cuenta de Google Cloud.
Nota: Usar tu propia cuenta de Google Cloud para este lab podría generar cargos adicionales.
-
Haga clic para avanzar por las páginas siguientes:
- Acepta los Términos y Condiciones.
- No agregues opciones de recuperación o autenticación de dos factores (esta es una cuenta temporal).
- No te registres para obtener pruebas gratuitas.
Después de un momento, se abrirá la consola de Google Cloud en esta pestaña.
Nota: Para ver un menú con una lista de productos y servicios de Google Cloud, haz clic en el menú de navegación que se encuentra en la parte superior izquierda o escribe el nombre del servicio o producto en el campo Búsqueda.
Tarea 2. Revisa la instalación de Terraform
-
En el menú Google Cloud, haz clic en Activar Cloud Shell (
). Si te aparece un cuadro de diálogo, haz clic en Continuar.
-
Si se te solicita, haz clic en Continuar.
-
Para confirmar que Terraform se instaló, ejecuta el siguiente comando:
Nota: No te preocupes si recibes una advertencia de que la versión de Terraform está desactualizada, ya que las instrucciones del lab funcionan con Terraform v1.0.5 y versiones posteriores.
terraform --version
Nota: Las descargas disponibles de la versión más reciente de Terraform están en su sitio web. Terraform se distribuye como un paquete binario para todas las plataformas y arquitecturas compatibles, y Cloud Shell usa Linux de 64 bits.
El resultado debería ser similar a este (no lo copies; es un ejemplo):
Terraform v1.5.7
Terraform ya está preinstalado en Cloud Shell. Es decir, podrás comenzar a crear infraestructura de inmediato.
Tarea 3: Agrega a Google Cloud como proveedor
- Crea el archivo
main.tf
:
touch main.tf
-
Haz clic en Abrir editor en la barra de herramientas de Cloud Shell. Haz clic en Abrir en una nueva ventana para abrir el editor en otra pestaña.
-
Copia en el siguiente código en el archivo main.tf
.
terraform {
required_providers {
google = {
source = "hashicorp/google"
}
}
}
provider "google" {
project = "{{{project_0.project_id | Project ID}}}"
region = "{{{project_0.default_region | Region}}}"
zone = "{{{project_0.default_zone | Zone}}}"
}
- Haz clic en File > Save.
- Ve a Cloud Shell y ejecuta el comando
terraform init
.
terraform init
El resultado debería ser similar a este (no lo copies; es un ejemplo):
Initializing the backend…
Initializing provider plugins…
- Finding hashicorp/google versions matching "4.15.0"…
- Installing hashicorp/google v4.15.0…
- Installed hashicorp/google v4.15.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!
Tarea 4: Crea la infraestructura
Intentemos crear una instancia de procesamiento sin especificar el parámetro de red y veamos cómo Terraform procesa esa configuración.
- Cambia a la ventana del editor. Dentro del archivo
main.tf
, ingresa el siguiente bloque de código.
resource "google_compute_instance" "terraform" {
name = "terraform"
machine_type = "e2-micro"
boot_disk {
initialize_params {
image = "debian-cloud/debian-11"
}
}
}
-
Haz clic en File > Save para guardar el archivo.
-
Ahora ejecuta el siguiente comando para previsualizar si se creará una instancia de Compute Engine.
terraform plan
- La configuración falló por el siguiente error. Esto se debe a que no se puede configurar un motor de procesamiento sin una red.
│ Error: Insufficient network_interface blocks
│
│ on main.tf line 15, in resource "google_compute_instance" "terraform":
│ 15: resource "google_compute_instance" "terraform" {
│
│ At least 1 "network_interface" blocks are required.
- Para agregar la red, incluye el siguiente segmento de código en el bloque
google_compute_instance
.
network_interface {
network = "default"
access_config {
}
}
El código final en el archivo main.tf se muestra de la siguiente manera:
terraform {
required_providers {
google = {
source = "hashicorp/google"
}
}
}
provider "google" {
project = "{{{project_0.project_id | Project ID}}}"
region = "{{{project_0.default_region | Region}}}"
zone = "{{{project_0.default_zone | Zone}}}"
}
resource "google_compute_instance" "terraform" {
name = "terraform"
machine_type = "e2-micro"
boot_disk {
initialize_params {
image = "debian-cloud/debian-11"
}
}
network_interface {
network = "default"
access_config {
}
}
}
- Haz clic en File > Save para guardar el archivo.
- Ejecuta el comando
terraform plan
para previsualizar si se creará una instancia de Compute Engine.
terraform plan
Haz clic en Autorizar cuando se te solicite.
El resultado debería ser similar a este (no lo copies; es un ejemplo):
Terraform used the selected providers to generate the following execution plan. Resource actions are indicated with the following symbols:
+ create
Terraform will perform the following actions:
# google_compute_instance.terraform will be created
+ resource "google_compute_instance" "terraform" {
+ can_ip_forward = false
+ cpu_platform = (known after apply)
+ current_status = (known after apply)
+ deletion_protection = false
…
Plan: 1 to add, 0 to change, 0 to destroy.
- Para aplicar los cambios deseados, ejecuta el siguiente comando.
terraform apply
- Para confirmar las acciones previstas, escribe
yes
.
El resultado debería ser similar a este (no lo copies; es un ejemplo):
…
Apply complete! Resources: 1 added, 0 changed, 0 destroyed.
Nota: Si se produce un error, revisa los pasos anteriores para asegurarte de que ingresaste el código correcto en el archivo main.tf.
Haz clic en Revisar mi progreso para verificar que se creó el motor de procesamiento.
Crear la infraestructura
Verifícalo en la consola de Cloud
En la consola de Google Cloud, verifica que se hayan creado los recursos.
-
En el menú de navegación (
) de la consola de Google Cloud, haz clic en Compute Engine > Instancias de VM.
-
Revisa la instancia de Terraform que se creó.

Tarea 5: Cambia la infraestructura
En esta tarea, realizarás 2 tipos de cambios en la infraestructura:
- Agregar etiquetas de redes
- Editar el tipo de máquina
Agrega las etiquetas al recurso de procesamiento
Además de crear recursos, Terraform también puede realizar cambios en ellos.
- Agrega un argumento
tags
a la instancia que acabamos de crear para que se vea de la siguiente manera:
resource "google_compute_instance" "terraform" {
name = "terraform"
machine_type = "e2-micro"
tags = ["web", "dev"]
# ...
}
- Ejecuta
terraform plan
.
terraform plan
- Ejecuta
terraform apply
nuevamente para actualizar la instancia.
terraform apply
El resultado debería ser similar a este (no lo copies; es un ejemplo):
Terraform used the selected providers to generate the following execution plan. Resource actions are indicated with the following symbols:
~ update in-place
Terraform will perform the following actions:
# google_compute_instance.terraform will be updated in-place
~ resource "google_compute_instance" "terraform" {
id = "projects/qwiklabs-gcp-00-da04aeabe9ab/zones/us-central1-c/instances/terraform"
name = "terraform"
~ tags = [
+ "dev",
+ "web",
]
# (17 unchanged attributes hidden)
# (4 unchanged blocks hidden)
}
Plan: 0 to add, 1 to change, 0 to destroy.
El prefijo ~
indica que Terraform actualizará el recurso implementado.
- Si se te solicita, responde
yes
, y Terraform agregará las etiquetas a tu instancia.
Haz clic en Revisar mi progreso para verificar que se agregaron las etiquetas.
Agregar etiquetas al recurso de procesamiento
Edita el tipo de máquina sin detener la VM
No se puede cambiar el tipo de máquina de una VM cuando está en ejecución. Veamos cómo Terraform procesa el cambio de tipo de máquina en una VM en ejecución.
- Ve a main.tf y edita el argumento machine_type de la instancia terraform desde
e2-micro
hasta e2-medium
para que se vea de la siguiente manera:
resource "google_compute_instance" "terraform" {
name = "terraform"
machine_type = "e2-medium"
tags = ["web", "dev"]
# ...
}
- Ejecuta
terraform plan
.
terraform plan
- Ejecuta
terraform apply
nuevamente para actualizar la instancia.
terraform apply
El comando terraform apply falla con una advertencia, como se muestra abajo (no lo copies; este es un resultado de ejemplo).
╷
│ Error: Changing the machine_type, min_cpu_platform, service_account, enable_display, shielded_instance_config, scheduling.node_affinities or network_interface.[#d].(network/subnetwork/subnetwork_project) or advanced_machine_features on a started instance requires stopping it. To acknowledge this, please set allow_stopping_for_update = true in your config. You can also stop it by setting desired_status = "TERMINATED", but the instance will not be restarted after the update.
│
│ with google_compute_instance.terraform,
│ on main.tf line 31, in resource "google_compute_instance" "terraform":
│ 31: resource "google_compute_instance" "terraform" {
- No se puede cambiar el tipo de máquina de una VM cuando está en ejecución. Para asegurarte de que la VM se detendrá antes de actualizar
machine_type
, establece el argumento allow_stopping_for_update
como true
para que el código se vea de la siguiente manera:
resource "google_compute_instance" "terraform" {
name = "terraform"
machine_type = "e2-medium"
tags = ["web", "dev"]
boot_disk {
initialize_params {
image = "debian-cloud/debian-11"
}
}
network_interface {
network = "default"
access_config {
}
}
allow_stopping_for_update = true
}
- Ejecuta
terraform plan
.
terraform plan
- Ejecuta
terraform apply
nuevamente para actualizar la instancia.
terraform apply
-
Responde yes
cuando veas el aviso de confirmación.
-
Para verificar el cambio en el tipo de máquina y las etiquetas agregadas, navega a las instancias de la VM en la consola de Cloud y haz clic en la instancia de Terraform que creaste.

Haz clic en Revisar mi progreso para verificar que el tipo de máquina de Terraform de Compute Engine sea e2-medium.
Cambiar la infraestructura para los tipos de máquinas
Tarea 6: Destruye la infraestructura
Ya aprendiste cómo crear y cambiar la infraestructura. Antes de crear varios recursos y mostrar sus dependencias, verás cómo destruir completamente tu infraestructura administrada por Terraform.
- Ejecuta el siguiente comando: Responde
yes
para ejecutar este plan y destruir la infraestructura:
terraform destroy
El prefijo -
indica que se destruirán la instancia y la red.
- Para verificar que la instancia de Terraform ya no existe, navega en la consola de Cloud hasta Instancias de VM.
Haz clic en Revisar mi progreso para verificar que se destruyó la infraestructura.
Destruir la infraestructura
Felicitaciones
En este lab, aprendiste a realizar las siguientes tareas:
- Verificar la instalación de Terraform
- Definir Google Cloud como proveedor
- Crear, cambiar y destruir recursos de Google Cloud con Terraform
Finalice su lab
Cuando haya completado el lab, haga clic en Finalizar lab. Google Cloud Skills Boost quitará los recursos que usó y limpiará la cuenta.
Tendrá la oportunidad de calificar su experiencia en el lab. Seleccione la cantidad de estrellas que corresponda, ingrese un comentario y haga clic en Enviar.
La cantidad de estrellas indica lo siguiente:
- 1 estrella = Muy insatisfecho
- 2 estrellas = Insatisfecho
- 3 estrellas = Neutral
- 4 estrellas = Satisfecho
- 5 estrellas = Muy satisfecho
Puede cerrar el cuadro de diálogo si no desea proporcionar comentarios.
Para enviar comentarios, sugerencias o correcciones, use la pestaña Asistencia.
Copyright 2020 Google LLC. All rights reserved. Google y el logotipo de Google son marcas de Google LLC. Los demás nombres de productos y empresas pueden ser marcas de las respectivas empresas a las que estén asociados.