Link al lab

La URL del lab requiere login. Para extraer comandos se usó como fuente pública equivalente este walkthrough: GSP345 | Automating Infrastructure on Google Cloud with Terraform: Challenge Lab (Gist).

Recursos identificados

  • APIs habilitadas en el flujo: compute.googleapis.com y storage.googleapis.com.
  • Recursos principales:
    • Compute Engine instances (tf-instance-1, tf-instance-2 y temporalmente tf-instance-3).
    • Cloud Storage bucket para backend "gcs" de Terraform state.
    • VPC y subnets creadas con módulo del Terraform Registry (terraform-google-modules/network/google).
    • Firewall rule (google_compute_firewall) para tráfico tcp:80.
  • IAM:
    • uso implícito de permisos del usuario/sesión de Cloud Shell para crear/importar y administrar recursos.
    • no se define un service account custom en la guía base.
  • Integraciones:
    • Terraform import para adoptar instancias ya existentes.
    • Terraform backend remoto en GCS (prefix = "terraform/state").
    • Integración con módulo público del Terraform Registry para networking.

Comandos ejecutados

Estructura inicial de archivos

touch main.tf
touch variables.tf
mkdir modules
cd modules
mkdir instances
cd instances
touch instances.tf
touch outputs.tf
touch variables.tf
cd ..
mkdir storage
cd storage
touch storage.tf
touch outputs.tf
touch variables.tf
cd

Inicialización de Terraform

terraform init

Import de infraestructura existente

terraform import module.instances.google_compute_instance.tf-instance-1 <Instance ID - 1>
terraform import module.instances.google_compute_instance.tf-instance-2 <Instance ID - 2>

Revisar y aplicar cambios de estado

terraform plan
terraform apply

Crear bucket para backend remoto

terraform init
terraform apply

Migrar state a backend GCS

terraform init

Actualizar infraestructura de instancias

terraform init
terraform apply

Taint y recreación de recurso

terraform taint module.instances.google_compute_instance.tf-instance-3
terraform init
terraform apply

Eliminar tercer recurso y reconciliar

terraform apply

Crear VPC con módulo del Registry

terraform init
terraform apply

Reconfigurar instancias sobre nuevas subnets

terraform init
terraform apply

Configurar firewall final

terraform init
terraform apply