arrow_back

Infraestructura como código con Terraform

Acceder Unirse
Obtén acceso a más de 700 labs y cursos

Infraestructura como código con Terraform

Lab 1 hora universal_currency_alt 1 crédito show_chart Introductorio
info Es posible que este lab incorpore herramientas de IA para facilitar tu aprendizaje.
Obtén acceso a más de 700 labs y cursos

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.

  1. 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
  2. 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.
  3. 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.

  4. Haz clic en Siguiente.

  5. 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.

  6. 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.
  7. 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. Ícono del menú de navegación

Tarea 2. Revisa la instalación de Terraform

  1. En el menú Google Cloud, haz clic en Activar Cloud Shell (Activar Cloud Shell). Si te aparece un cuadro de diálogo, haz clic en Continuar.

  2. Si se te solicita, haz clic en Continuar.

  3. 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

  1. Crea el archivo main.tf:
touch main.tf
  1. 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.

  2. 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}}}" }
  1. Haz clic en File > Save.
  2. 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.

  1. 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" } } }
  1. Haz clic en File > Save para guardar el archivo.

  2. Ahora ejecuta el siguiente comando para previsualizar si se creará una instancia de Compute Engine.

terraform plan
  1. 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.
  1. 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 { } } }
  1. Haz clic en File > Save para guardar el archivo.
  2. 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.
  1. Para aplicar los cambios deseados, ejecuta el siguiente comando.
terraform apply
  1. 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.

  1. En el menú de navegación (Menú de navegación) de la consola de Google Cloud, haz clic en Compute Engine > Instancias de VM.

  2. Revisa la instancia de Terraform que se creó. terraform_instance

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.

  1. 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"] # ... }
  1. Ejecuta terraform plan.
terraform plan
  1. 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.

  1. 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.

  1. 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"] # ... }
  1. Ejecuta terraform plan.
terraform plan
  1. 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" {
  1. 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 }
  1. Ejecuta terraform plan.
terraform plan
  1. Ejecuta terraform apply nuevamente para actualizar la instancia.
terraform apply
  1. Responde yes cuando veas el aviso de confirmación.

  2. 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. machine_type network_tags

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.

  1. 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.

  1. 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.

Antes de comenzar

  1. Los labs crean un proyecto de Google Cloud y recursos por un tiempo determinado
  2. .
  3. Los labs tienen un límite de tiempo y no tienen la función de pausa. Si finalizas el lab, deberás reiniciarlo desde el principio.
  4. En la parte superior izquierda de la pantalla, haz clic en Comenzar lab para empezar

Usa la navegación privada

  1. Copia el nombre de usuario y la contraseña proporcionados para el lab
  2. Haz clic en Abrir la consola en modo privado

Accede a la consola

  1. Accede con tus credenciales del lab. Si usas otras credenciales, se generarán errores o se incurrirá en cargos.
  2. Acepta las condiciones y omite la página de recursos de recuperación
  3. No hagas clic en Finalizar lab, a menos que lo hayas terminado o quieras reiniciarlo, ya que se borrará tu trabajo y se quitará el proyecto

Este contenido no está disponible en este momento

Te enviaremos una notificación por correo electrónico cuando esté disponible

¡Genial!

Nos comunicaremos contigo por correo electrónico si está disponible

Un lab a la vez

Confirma para finalizar todos los labs existentes y comenzar este

Usa la navegación privada para ejecutar el lab

Usa una ventana de navegación privada o de Incógnito para ejecutar el lab. Así evitarás cualquier conflicto entre tu cuenta personal y la cuenta de estudiante, lo que podría generar cargos adicionales en tu cuenta personal.