arrow_back

Infraestructura como código con Terraform

Acceder Unirse
Test and share your knowledge with our community!
done
Get access to over 700 hands-on labs, skill badges, and courses

Infraestructura como código con Terraform

Lab 1 hora universal_currency_alt 1 crédito show_chart Introductorio
Test and share your knowledge with our community!
done
Get access to over 700 hands-on labs, skill badges, and courses

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á un proyecto de Google Cloud y un conjunto de recursos nuevos por tiempo limitado y sin costo adicional.

  1. Accede a Qwiklabs desde una ventana de incógnito.

  2. Ten en cuenta el tiempo de acceso del lab (por ejemplo, 1:15:00) y asegúrate de finalizarlo en el plazo asignado.
    No existe una función de pausa. Si lo necesita, puede reiniciar el lab, pero deberá hacerlo desde el comienzo.

  3. Cuando esté listo, haga clic en Comenzar lab.

  4. Anote las credenciales del lab (el nombre de usuario y la contraseña). Las usarás para acceder a la consola de Google Cloud.

  5. Haga clic en Abrir Google Console.

  6. Haga clic en Usar otra cuenta, copie las credenciales para este lab y péguelas en el mensaje emergente que aparece.
    Si usa otras credenciales, se generarán errores o incurrirá en cargos.

  7. Acepta las condiciones y omite la página de recursos de recuperació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.2.2

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 un directorio y llámalo compute:
mkdir compute
  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, main.tf, en el archivo.

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: Construye 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.

Construir la infraestructura

Realiza la verifícación en la consola de Cloud

En la consola de Cloud, verifica que se hayan creado los recursos.

  1. En la consola de Cloud, en Menú de navegación (Menú de navegación), 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.