GSP156

Descripción general
En este lab, usarás Terraform y Gemini Code Assist, un colaborador potenciado por IA en Google Cloud, para aprovisionar una instancia de máquina virtual (VM).
Terraform te permite crear, cambiar y mejorar infraestructura de forma segura y predecible. Es una herramienta de código abierto que codifica las APIs en archivos de configuración declarativa que se pueden compartir entre compañeros de trabajo, tratar como código, editar, revisar o cambiar de versión.
Objetivos
En este lab, aprenderás a realizar las siguientes tareas:
- Comenzar a usar Terraform en Google Cloud
- Instalar Terraform desde objetos binarios de instalación
- Con Gemini Code Assist, crea una configuración de Terraform para una instancia de VM.
Configuración y requisitos
Antes de hacer clic en el botón Comenzar lab
Lee estas instrucciones. Los labs cuentan con un temporizador que no se puede pausar. El temporizador, que comienza a funcionar cuando haces clic en Comenzar lab, indica por cuánto tiempo tendrás a tu disposición los recursos de Google Cloud.
Este lab práctico te permitirá realizar las actividades correspondientes en un entorno de nube real, no en uno de simulación o demostración. Para ello, se te proporcionan credenciales temporales nuevas que utilizarás para acceder a Google Cloud durante todo el lab.
Para completar este lab, necesitarás lo siguiente:
- Acceso a un navegador de Internet estándar. Se recomienda el navegador Chrome.
Nota: Usa una ventana del navegador privada o de incógnito (opción recomendada) para ejecutar el lab. Así evitarás conflictos entre tu cuenta personal y la cuenta de estudiante, lo que podría generar cargos adicionales en tu cuenta personal.
- Tiempo para completar el lab (recuerda que, una vez que comienzas un lab, no puedes pausarlo).
Nota: Usa solo la cuenta de estudiante para este lab. Si usas otra cuenta de Google Cloud, es posible que se apliquen cargos a esa cuenta.
Cómo iniciar tu lab y acceder a la consola de Google Cloud
-
Haz clic en el botón Comenzar lab. Si debes pagar por el lab, se abrirá un diálogo para que selecciones la forma de pago.
A la izquierda, se encuentra el panel Detalles del lab, que tiene estos elementos:
- El botón para 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.
-
Haz 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 acceder a los productos y servicios de Google Cloud, haz clic en el menú de navegación o escribe el nombre del servicio o producto en el campo Buscar.
Activa Cloud Shell
Cloud Shell es una máquina virtual que cuenta con herramientas para desarrolladores. Ofrece un directorio principal persistente de 5 GB y se ejecuta en Google Cloud. Cloud Shell proporciona acceso de línea de comandos a tus recursos de Google Cloud.
-
Haz clic en Activar Cloud Shell
en la parte superior de la consola de Google Cloud.
-
Haz clic para avanzar por las siguientes ventanas:
- Continúa en la ventana de información de Cloud Shell.
- Autoriza a Cloud Shell para que use tus credenciales para realizar llamadas a la API de Google Cloud.
Cuando te conectes, habrás completado la autenticación, y el proyecto estará configurado con tu Project_ID, . El resultado contiene una línea que declara el Project_ID para esta sesión:
Your Cloud Platform project in this session is set to {{{project_0.project_id | "PROJECT_ID"}}}
gcloud
es la herramienta de línea de comandos de Google Cloud. Viene preinstalada en Cloud Shell y es compatible con la función de autocompletado con tabulador.
- Puedes solicitar el nombre de la cuenta activa con este comando (opcional):
gcloud auth list
- Haz clic en Autorizar.
Resultado:
ACTIVE: *
ACCOUNT: {{{user_0.username | "ACCOUNT"}}}
To set the active account, run:
$ gcloud config set account `ACCOUNT`
- Puedes solicitar el ID del proyecto con este comando (opcional):
gcloud config list project
Resultado:
[core]
project = {{{project_0.project_id | "PROJECT_ID"}}}
Nota: Para obtener toda la documentación de gcloud
, en Google Cloud, consulta la guía con la descripción general de gcloud CLI.
¿Qué es Terraform?
Terraform es una herramienta para compilar y modificar infraestructuras, así como controlar sus versiones, de forma segura y eficiente. Permite administrar proveedores de servicios existentes y populares, además de soluciones internas personalizadas.
Los archivos de configuración le brindan a Terraform una descripción de los componentes necesarios para ejecutar desde una sola aplicación hasta un centro de datos completo. Terraform genera un plan de ejecución que describe lo que hará para alcanzar el estado deseado y, luego, lo ejecuta para compilar la infraestructura descrita. Cuando se producen cambios en la configuración, Terraform puede determinar qué se modificó y crear planes de ejecución incrementales que se puedan aplicar.
La infraestructura que puede administrar Terraform incluye componentes de niveles bajos (como instancias de procesamiento, almacenamientos y redes) y altos (como entradas de DNS y funciones de SaaS).
Características clave
Infraestructura como código
La infraestructura se describe a través de una sintaxis de configuración de alto nivel. Esto permite que se controlen las versiones de un plano de tu centro de datos y que se lo trate de la misma forma que a cualquier otro fragmento de código. Además, la infraestructura se puede compartir y reutilizar.
Planes de ejecución
Terraform tiene un paso de planificación en el que se genera un plan de ejecución. El plan de ejecución muestra qué hará Terraform cuando se ejecute el comando apply
. De esa forma, no habrá sorpresas cuando Terraform manipule infraestructura.
Gráfico de recursos
Terraform compila un gráfico de todos tus recursos y paraleliza la creación y modificación de todos los recursos no dependientes. Debido a esto, Terraform compila infraestructura de la forma más eficiente posible, y los operadores obtienen una mayor comprensión de las dependencias de sus infraestructuras.
Automatización de cambios
Se requiere muy poca interacción humana para poder aplicar conjuntos complejos de cambios en tu infraestructura. Con el plan de ejecución y el gráfico de recursos mencionados anteriormente, sabrás con exactitud qué cambios realizará Terraform y en qué orden, lo que ayudará a evitar una gran cantidad de posibles errores humanos.
Tarea 1: Verifica una instalación de Terraform
Terraform ya está preinstalado en Cloud Shell.
- Abre una pestaña nueva de Cloud Shell y ejecuta el siguiente comando para verificar que Terraform esté disponible:
terraform
El resultado de ayuda debería ser similar a este:
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 state Advanced state management
Tarea 2: Crea la infraestructura
Una vez que se haya instalado Terraform, podrás comenzar a crear infraestructura inmediatamente.
Configuración
El conjunto de archivos que se usa para describir la infraestructura en Terraform se conoce como Terraform configuration
. En esta sección, escribirás tu primer archivo de configuración para iniciar una única instancia de VM. El formato de los archivos de configuración se puede encontrar en la Documentación del lenguaje de Terraform. Recomendamos usar JSON para crear los archivos de configuración.
- En Cloud Shell, habilita la API de Gemini for Google Cloud con el siguiente comando:
gcloud services enable cloudaicompanion.googleapis.com
- Crea un archivo de configuración vacío denominado
instance.tf
con el siguiente comando:
touch instance.tf
- En la barra de herramientas de Cloud Shell, haz clic en Abrir editor.
Para pasar de Cloud Shell al editor de código, haz clic en Abrir editor o Abrir terminal según sea necesario, o bien haz clic en Abrir en una nueva ventana para dejar el editor abierto en una pestaña distinta.
Habilita Gemini Code Assist en el IDE de Cloud Shell
Puedes usar Gemini Code Assist en un entorno de desarrollo integrado (IDE) como Cloud Shell para recibir orientación sobre el código o resolver problemas con tu código. Antes de comenzar a usar Gemini Code Assist, debes habilitarlo.
- En Cloud Shell, habilita la API de Gemini for Google Cloud con el siguiente comando:
gcloud services enable cloudaicompanion.googleapis.com
- En la barra de herramientas de Cloud Shell, haz clic en Abrir editor.
Nota: Para abrir el editor de Cloud Shell, haz clic en Abrir editor en la barra de herramientas de Cloud Shell. Para cambiar entre Cloud Shell y el editor de código, haz clic en Abrir editor o Abrir terminal, según sea necesario.
-
En el panel izquierdo, haz clic en el ícono de Configuración y, luego, en la vista Configuración, busca Gemini Code Assist.
-
Busca la opción Geminicodeassist: Habilitar y asegúrate de que esté seleccionada. Luego, cierra la Configuración.
-
Haz clic en Cloud Code - Sin proyecto en la barra de estado, en la parte inferior de la pantalla.
-
Autoriza el complemento según las instrucciones. Si no se selecciona un proyecto automáticamente, haz clic en Seleccionar un proyecto de Google Cloud y elige .
-
Verifica que tu proyecto de Google Cloud () se muestre en el mensaje de la barra de estado de Cloud Code.
-
En el Explorador de archivos, haz doble clic en instance.tf para abrir el archivo instance.tf
. Esta acción habilita Gemini Code Assist, como lo indica la presencia del ícono
en la esquina superior derecha del editor.
-
Para generar código nuevo, haz clic en el ícono Gemini Code Assist: Smart Actions
y selecciona /generate.
También puedes presionar CTRL+I (en Windows y Linux) o CMD+I (en macOS) para abrir la ventana Gemini Code Assist y seleccionar /generate para generar código nuevo.
Usa Gemini Code Assist para generar un recurso de Terraform
En esta sección, explorarás cómo usar Gemini Code Assist para generar un recurso de Terraform, como una VM en esta instancia.
- Pega la siguiente instrucción proporcionada en el cuadro de texto intercalado de 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
El código del cuadro de texto intercalado debería parecerse al siguiente bloque de código.
/generate Genera la configuración de Terraform para una máquina virtual de Google Compute Engine y guárdala en instance.tf según las siguientes especificaciones: * ID del proyecto: {{{project_0.project_id | Project ID}}} * Nombre de la VM: terraform * Tipo de máquina: e2-medium * Zona de implementación: {{{ project_0.default_zone|zone}}} * Disco de arranque: Debian 12 * Red: Red predeterminada
-
Presiona Intro para generar el código que se usa para iniciar una instancia de VM con Terraform. Cuando se te solicite en la vista comparativa (diff) en Gemini, haz clic en Aceptar.
-
En el archivo instance.tf
, mira el código generado.
Esta es una configuración completa y Terraform está listo para aplicarla. La estructura general debe ser intuitiva y directa.
Una vez que aceptes la recomendación de Gemini Code Assist, el archivo instance.tf
resultante debería ser similar al siguiente.
Contenido del archivo generado:
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"
}
}
El bloque "resource" en el archivo instance.tf
define un recurso que existe dentro de la infraestructura. Un recurso puede ser un componente físico, como una instancia de VM.
El bloque "resource" tiene dos cadenas antes de la apertura del bloque: tipo de recurso y nombre del recurso. Para este lab, el tipo de recurso es google_compute_instance
y el nombre es terraform.
El prefijo del tipo se asigna al proveedor: google_compute_instance
le indica automáticamente a Terraform que lo administra el proveedor Google
.
En el bloque “resource”, se encuentra la configuración necesaria para el recurso.
- En la terminal de Cloud Shell, ejecuta el siguiente código para verificar que se haya agregado tu archivo nuevo y que no haya otros archivos
*.tf
en tu directorio, ya que Terraform carga todos los archivos .tf:
ls
Inicialización
El primer comando que se debe ejecutar para obtener un archivo de configuración nuevo (o después de verificar uno existente desde el control de versiones) es terraform init
, que inicializará diversos parámetros de configuración y datos locales que se usarán en comandos posteriores.
Terraform usa una arquitectura basada en complementos para admitir la gran cantidad de proveedores de servicios y de infraestructura disponibles. Cada “proveedor” es su propio objeto binario encapsulado distribuido independientemente de Terraform. El comando terraform init
descargará e instalará automáticamente cualquier objeto binario de proveedor para que los proveedores lo usen en la configuración, que en este caso es solo el de Google.
- Descarga el objeto binario y, luego, instálalo con el siguiente comando:
terraform init
Se descargará y se instalará el complemento de proveedor de Google en un subdirectorio del directorio de trabajo actual, junto con varios archivos de contabilidad. Verás el mensaje "Initializing provider plugins". Terraform sabrá que estás realizando la ejecución desde un proyecto de Google y obtendrá los recursos correspondientes.
Installing hashicorp/google v4.77.0...
Nota: El número de tu versión puede ser más alto.
En el resultado, se especifica qué versión del complemento se instalará y se sugiere especificar esa versión en archivos de configuración futuros para asegurarse de que terraform init
instale una versión compatible.
- Crea un plan de ejecución con el siguiente comando:
terraform plan
Terraform realiza una actualización (salvo que esté explícitamente inhabilitada) y, luego, determina las acciones necesarias para lograr el estado deseado que se especifica en los archivos de configuración. Este comando es un modo conveniente de comprobar si un plan de ejecución de un conjunto de cambios coincide con tus expectativas sin que debas modificar el estado o los recursos reales. Por ejemplo, puedes ejecutar el comando antes de confirmar un cambio en el control de versiones para garantizar que se comportará según lo esperado.
Nota: Se puede usar el argumento opcional -out
para guardar el plan generado en un archivo y ejecutarlo más tarde con terraform apply
.
Aplica cambios
- Ejecuta este comando en el mismo directorio que el archivo
instance.tf
que creaste:
terraform apply
En este resultado, se muestra el plan de ejecución, que describe las acciones que Terraform realizará para cambiar la infraestructura real de modo que coincida con la configuración. El formato del resultado es similar al formato diff que generan herramientas como Git.
El signo +
junto a google_compute_instance.terraform
significa que Terraform creará ese recurso. A continuación, se encuentran los atributos que se configurarán. Cuando el valor que se muestra es <computed>
, no se sabrá el valor hasta que se cree el recurso.
Resultado de ejemplo:
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:
Si se creó correctamente el plan, Terraform se pausará y esperará a obtener la aprobación antes de continuar. En un entorno de producción, si alguna parte del plan de ejecución parece incorrecta o peligrosa, lo más seguro es cancelar la operación en esta instancia, ya que aún no se realizaron cambios en su infraestructura.
- En este caso, el plan parece aceptable, así que escribe yes cuando recibas la solicitud de confirmación para continuar y presiona Intro.
Ejecutar el plan tardará algunos minutos porque Terraform espera a que esté disponible la instancia de VM.
Después de eso, Terraform habrá terminado.
Prueba la tarea completada
Haz clic en Revisar mi progreso para verificar la tarea realizada. Si la completaste correctamente, recibirás una puntuación de evaluación.
Crear una instancia de VM en la zona con Terraform.
- En el menú de navegación de la consola de Google Cloud, haz clic en Compute Engine > Instancias de VM. Se abrirá la página Instancias de VM y verás la instancia que acabas de crear en la lista Instancias de VM.
Terraform escribió datos en el archivo terraform.tfstate
. Este archivo de estado es de extrema importancia, ya que lleva un registro de los ID de los recursos creados para que Terraform sepa qué está administrando.
- En Cloud Shell, ejecuta el siguiente comando para inspeccionar el estado actual:
terraform show
Resultado de ejemplo:
# 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"
....
Como puedes ver, con la creación de este recurso también recopilaste mucha información sobre él. Estos valores podrán tomarse como referencia para configurar recursos o resultados adicionales.
¡Felicitaciones! Compilaste tu primera infraestructura con Terraform. Revisaste la sintaxis de configuración, un ejemplo de un plan de ejecución básico y el archivo de estado.
Tarea 3: Pon a prueba tus conocimientos
Las siguientes preguntas de opción múltiple deberían reforzar tus conocimientos de los conceptos de este lab. Trata de responderlas lo mejor posible.
¡Felicitaciones!
¡Felicitaciones por completar este lab! Exploraste cómo usar Terraform para crear y administrar la infraestructura en Google Cloud con Gemini Code Assist.
Próximos pasos y más información
Capacitación y certificación de Google Cloud
Recibe la formación que necesitas para aprovechar al máximo las tecnologías de Google Cloud. Nuestras clases incluyen habilidades técnicas y recomendaciones para ayudarte a avanzar rápidamente y a seguir aprendiendo. Para que puedas realizar nuestros cursos cuando más te convenga, ofrecemos distintos tipos de capacitación de nivel básico a avanzado: a pedido, presenciales y virtuales. Las certificaciones te ayudan a validar y demostrar tus habilidades y tu conocimiento técnico respecto a las tecnologías de Google Cloud.
Última actualización del manual: 25 de agosto de 2025
Prueba más reciente del lab: 25 de agosto de 2025
Copyright 2025 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.