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.comystorage.googleapis.com. - Recursos principales:
- Compute Engine instances (
tf-instance-1,tf-instance-2y temporalmentetf-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áficotcp:80.
- Compute Engine instances (
- IAM:
- uso implícito de permisos del usuario/sesión de Cloud Shell para crear/importar y administrar recursos.
- no se define un
service accountcustom 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