arrow_back

Migración de VM: Planificación

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

Migración de VM: Planificación

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

GSP616

Labs de autoaprendizaje de Google Cloud

Descripción general

La metodología estructurada de la ruta de migración a la nube de cuatro pasos de Google Cloud proporciona una ruta de migración definida y repetible que los usuarios pueden seguir:

Diagrama de la ruta de migración de cuatro pasos

  1. Evalúa el entorno actual para entender mejor los recursos existentes y definir los grupos de migración.

  2. Planifica cómo migrar tus apps y crear la infraestructura de nube básica para tus cargas de trabajo. Esta planificación incluye la administración de identidades, la estructura del proyecto y de la organización, las herramientas de redes, el orden de tus apps y el desarrollo de una estrategia de migración priorizada.

  3. Implementa los servidores locales o basados en la nube existentes en Google Cloud. Para ello, aprovecha una de las herramientas de migración recomendadas de Google Cloud, como Velostrata de Google o la herramienta de migración en vivo de CloudEndure.

  4. Optimiza tus cargas de trabajo migradas recientemente para obtener los beneficios de costo y las eficiencias operativas reales que Google Cloud puede brindarle a tu empresa.

Este lab se enfoca en la fase de Planificación y en cómo implementar tu infraestructura básica en Google Cloud.

Qué aprenderás

Terraform es una herramienta de código abierto para definir y aprovisionar infraestructuras (Infraestructura como código). En este lab, aprovecharás plantillas de Infraestructura como código compiladas previamente para configurar una red en la nube y el acceso, y también implementar tu primera aplicación, todo de manera segura y automatizada.

Específicamente, aprenderás a realizar las siguientes tareas:

  • Crear credenciales de acceso para la automatización en Google Cloud
  • Crear un entorno funcional para usar Terraform
  • Crear una nueva red de nube privada virtual (VPC) en modo personalizado con reglas de firewall relacionadas
  • Preparar una imagen en Compute Engine
  • Implementar una instancia en Compute Engine con Terraform
  • Hacer referencia a recursos en múltiples implementaciones de Terraform

Configuración y requisitos

Antes de hacer clic en el botón Comenzar lab

Lee estas instrucciones. Los labs son cronometrados y no se pueden pausar. El cronómetro, 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 de navegador privada o de Incógnito para ejecutar este 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.
  • Tiempo para completar el lab: Recuerda que, una vez que comienzas un lab, no puedes pausarlo.
Nota: Si ya tienes un proyecto o una cuenta personal de Google Cloud, no los uses en este lab para evitar cargos adicionales en tu cuenta.

Cómo iniciar su lab y acceder a la consola de Google Cloud

  1. Haga clic en el botón Comenzar lab. Si debe pagar por el lab, se abrirá una ventana emergente para que seleccione su 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
    • Tiempo restante
    • Las credenciales temporales que debe usar para el lab
    • Otra información para completar el lab, si es necesaria
  2. Haga clic en Abrir la consola de Google. El lab inicia recursos y abre otra pestaña en la que se muestra la página de acceso.

    Sugerencia: Ordene las pestañas en ventanas separadas, una junto a la otra.

    Nota: Si ve el diálogo Elegir una cuenta, haga clic en Usar otra cuenta.
  3. Si es necesario, copie el nombre de usuario del panel Detalles del lab y péguelo en el cuadro de diálogo Acceder. Haga clic en Siguiente.

  4. Copie la contraseña del panel Detalles del lab y péguela en el cuadro de diálogo de bienvenida. Haga clic en Siguiente.

    Importante: Debe usar las credenciales del panel de la izquierda. No use sus credenciales de Google Cloud Skills Boost. Nota: Usar su propia Cuenta de Google podría generar cargos adicionales.
  5. Haga clic para avanzar por las páginas siguientes:

    • Acepte los términos y condiciones.
    • No agregue opciones de recuperación o autenticación de dos factores (esta es una cuenta temporal).
    • No se registre para obtener pruebas gratuitas.

Después de un momento, se abrirá la consola de Cloud en esta pestaña.

Nota: Para ver el menú con una lista de los productos y servicios de Google Cloud, haga clic en el Menú de navegación que se encuentra en la parte superior izquierda de la pantalla. Ícono del menú de navegación

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.

  1. Haz clic en Activar Cloud Shell Ícono de Activar Cloud Shell en la parte superior de la consola 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 YOUR_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.

  1. Puedes solicitar el nombre de la cuenta activa con este comando (opcional):
gcloud auth list
  1. Haz clic en Autorizar.

  2. Ahora, el resultado debería verse de la siguiente manera:

Resultado:

ACTIVE: * ACCOUNT: student-01-xxxxxxxxxxxx@qwiklabs.net To set the active account, run: $ gcloud config set account `ACCOUNT`
  1. Puedes solicitar el ID del proyecto con este comando (opcional):
gcloud config list project

Resultado:

[core] project = <project_ID>

Resultado de ejemplo:

[core] project = qwiklabs-gcp-44776a13dea667a6 Nota: Para obtener toda la documentación de gcloud, consulta la guía con la descripción general de gcloud CLI en Google Cloud.

Tarea 1. Configura tu entorno

  1. Verifica que Terraform esté instalado en el entorno de Cloud Shell:
terraform -v

Resultado del comando:

Terraform v0.15.3 Nota: Puede que tu versión sea un poco diferente. Continúa si se parece al resultado de arriba.
  1. Ejecuta el siguiente comando para clonar el repositorio de Git que contiene el código del lab:
git clone https://github.com/terraform-google-modules/cloud-foundation-training.git
  1. Cambia el directorio actual al directorio de redes:
cd cloud-foundation-training/other/terraform-codelab/lab-networking

Tarea 2. Configura las variables

En esta sección, establecerás variables para la configuración de Terraform. Las variables le permiten parametrizar las configuraciones de Terraform para reutilizarlas.

Si las variables no están configuradas, Terraform te solicitará que lo hagas cuando se ejecute.

Para facilitar su uso, puedes almacenar los valores de las variables en un archivo terraform.tfvars que Terraform carga automáticamente cuando se ejecuta.

  1. Crea un archivo terraform.tfvars en Cloud Shell:
touch terraform.tfvars
  1. Abre el archivo terraform.tfvars en el editor de código:
edit terraform.tfvars Nota: Si te resulta más cómodo, también puedes usar un editor de código de la CLI, como vi y nano.
  1. Pega esto en tu archivo terraform.tfvars:
project_id="<my project id>"
  1. Actualiza la variable del ID del proyecto para que coincida con el ID de tu proyecto de Qwiklabs: P. ej., se debe reemplazar <my project id> por qwiklabs-gcp-xx-xxxxxxxxxxxx.

Tarea 3: Configura las credenciales de acceso de Google Cloud

En esta sección, crearás y descargarás claves de cuentas de servicio para usarlas como credenciales de acceso en Google Cloud. También actualizarás tus archivos de plantilla para usar estas credenciales de acceso.

Terraform requiere derechos de acceso a tus proyectos o entornos en Google Cloud. Aunque el proveedor de Google Cloud de Terraform ofrece varias formas de proporcionar credenciales, en este lab crearás y descargarás un archivo de credenciales asociado con una cuenta de servicio de Google Cloud. Usar la autenticación de cuenta de servicio de Google Cloud es una práctica recomendada.

Crea y descarga credenciales de acceso de cuentas de servicio predeterminadas

  1. En tu sesión de Cloud Shell, ejecuta el siguiente comando para crear una cuenta de servicio que ejecute Terraform:
gcloud iam service-accounts create terraform --display-name terraform

Resultado del comando:

Created service account [terraform].
  1. Crea una lista con tus cuentas de servicio para recibir el correo electrónico para tu nueva cuenta de Terraform:
gcloud iam service-accounts list

Resultado del comando:

DISPLAY NAME: Compute Engine default service account EMAIL: 631585931190-compute@developer.gserviceaccount.com DISABLED: False DISPLAY NAME: Qwiklabs User Service Account EMAIL: qwiklabs-gcp-02-8eb8debc8fd5@qwiklabs-gcp-02-8eb8debc8fd5.iam.gserviceaccount.com DISABLED: False DISPLAY NAME: terraform EMAIL: terraform@qwiklabs-gcp-02-8eb8debc8fd5.iam.gserviceaccount.com DISABLED: False
  1. Crea y descarga una clave para usar la cuenta de servicio de Terraform. Para ello, reemplaza <service account email> por el correo electrónico de Terraform que obtuviste con el comando anterior:
gcloud iam service-accounts keys create ./credentials.json --iam-account <service account email>

Resultado del comando:

created key [...] of type [json] as [./credentials.json] for [terraform@.iam.gserviceaccount.com]

Prueba la tarea completada

Haz clic en Revisar mi progreso para verificar la tarea realizada. Si creaste correctamente una cuenta de servicio y una clave, verás una puntuación de evaluación.

Crear una cuenta de servicio y una clave (Nombre de la cuenta de servicio: terraform)
  1. Otorga a tu cuenta de servicio el rol de propietario en tu proyecto ejecutando el siguiente comando y reemplazando <my project id> por el ID del proyecto de Qwiklabs y <service account email> por el correo electrónico de tu cuenta de servicio de Terraform:
gcloud projects add-iam-policy-binding <my project id> --member=serviceAccount:<service account email> --role=roles/owner

Prueba la tarea completada

Haz clic en Revisar mi progreso para verificar la tarea realizada. Si otorgaste correctamente el rol de propietario a tu cuenta de servicio en el proyecto, verás una puntuación de evaluación.

Otorgar a tu cuenta de servicio el rol de propietario en tu proyecto

Tarea 4: Configura el estado remoto

Terraform almacena un mapeo entre tu configuración y los recursos creados en el estado de Terraform. De forma predeterminada, este estado se almacena en un archivo local, pero la práctica recomendada es almacenarlo de forma remota en Cloud Storage.

En esta sección, crearás un bucket de Cloud Storage para almacenar el estado de Terraform y actualizarás tu configuración de Terraform para que apunte a este bucket.

Crea y configura un bucket de Cloud Storage

  1. Crea un bucket nuevo para almacenar el estado de Terraform. Un bucket de Cloud Storage debe ser único a nivel global, así que asegúrate de anteponer su nombre al ID del proyecto de Google Cloud de Qwiklabs, como se muestra en el siguiente comando:
gsutil mb gs://<my project id>-state-bucket

Resultado del comando:

Creating gs://-state-bucket/...

Prueba la tarea completada

Haz clic en Revisar mi progreso para verificar la tarea realizada. Si creaste correctamente un bucket de Cloud Storage, verás una puntuación de evaluación.

Crear y configurar un bucket de Cloud Storage
  1. Abre la configuración de backend almacenada en backend.tf:
edit backend.tf
  1. Actualiza el nombre del bucket para que coincida con tu elección y guarda el archivo:
terraform { backend "gcs" { bucket = "my-state-bucket" # Change this to <my project id>-state-bucket prefix = "terraform/lab/network" } }

Tarea 5: Ejecuta Terraform

Ahora que ya configuraste las credenciales y el estado remoto, está todo listo para ejecutar Terraform. Cuando uses Terraform, generalmente seguirás estos pasos para implementar y limpiar un entorno, tal como se describe en la siguiente imagen.

Primero, establece los archivos de configuración, prepara la implementación o el plan, implementa recursos o aplícalos, verifica la implementación y, luego, limpia los recursos o destrúyelos

Ejecuta Terraform por primera vez

  1. Primero, inicializa Terraform para descargar la versión más reciente de los proveedores aleatorios y de Google. Para eso, ejecuta el siguiente comando en Cloud Shell:
terraform init
  • Si ejecutas este comando y recibes un error que indica que tu bucket de Cloud Storage no existe, asegúrate de que ingresaste el nombre correcto en backend.tf. Luego, ejecuta los comandos a continuación:
rm -rf .terraform/ terraform init

Esto limpiará tu estado local de Terraform y se inicializará correctamente.

  1. Ejecuta un paso del plan para validar la sintaxis de la configuración y muestra una vista previa de lo que se creará:
terraform plan

El resultado del plan muestra que Terraform creará 8 recursos para tu red.

  1. Ahora, ejecuta el comando apply de Terraform para aplicar esos cambios:
terraform apply

Verás un resultado como este:

Plan: 8 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:
  1. Ingresa yes como respuesta. Cuando el comando apply haya finalizado, deberías ver un resultado similar al siguiente:
Apply complete! Resources: 8 added, 0 changed, 0 destroyed.
  1. Una vez que hayas aplicado los cambios, podrás mostrar la lista de recursos en el estado de Terraform con el comando show:
terraform show

Prueba la tarea completada

Haz clic en Revisar mi progreso para verificar la tarea realizada. Si ejecutaste correctamente Terraform por primera vez, verás una puntuación de evaluación.

Ejecutar Terraform por primera vez

Tarea 6: Agrega una subred

El repositorio que descargaste incluye un módulo que define tu red y tus subredes. Agregarás una subred adicional para alojar VM migradas.

Crea una red adicional

  1. Abre la configuración de red almacenada en network.tf. La configuración de red de este archivo se administra con el módulo de redes:
edit network.tf
  1. Agrega una subred adicional en el bloque subnets del archivo (en la línea 40). Puedes elegir tu propio nombre y rango de CIDR, como 10.10.30.0/24.
module "vpc" { ... subnets = [ ... { # Creates your first subnet in {{{project_0.default_region|Region}}} and defines a range for it subnet_name = "my-first-subnet" subnet_ip = "10.10.10.0/24" subnet_region = "{{{project_0.default_region|Region}}}" }, # Add your subnet here { subnet_name = "my-third-subnet" subnet_ip = "10.10.30.0/24" subnet_region = "{{{project_0.default_region|Region}}}" }, ] }
  1. También debes agregar una sección que defina los rangos secundarios de tu subred (línea 49), que puede ser una lista vacía:
secondary_ranges = { my-first-subnet = [] my-gke-subnet = [ { # Define a secondary range for Kubernetes pods to use range_name = "my-gke-pods-range" ip_cidr_range = "192.168.64.0/24" }, ] # Add your subnet's secondary range below this line my-third-subnet = [] }
  1. Ahora, ejecuta el comando terraform apply para agregar la nueva subred:
terraform apply Nota: Si recibes un mensaje de error como Error waiting to create Subnetwork, vuelve a ejecutar el comando anterior.

Verás un resultado como este:

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:
  1. Ingresa yes como respuesta. Cuando el comando apply haya finalizado, deberías ver un resultado similar al siguiente.
Apply complete! Resources: 1 added, 0 changed, 0 destroyed.

Prueba la tarea completada

Haz clic en Revisar mi progreso para verificar la tarea realizada. Si aplicaste cambios correctamente para agregar una subred con la secuencia de comandos de Terraform, verás una puntuación de evaluación.

Agregar una subred

Tarea 7: Permite el tráfico HTTPS

El lab incluye código para administrar reglas de firewall en Terraform. Puedes extenderlo a reglas de firewall adicionales para tráfico entrante o saliente.

  1. Abre la configuración de firewall almacenada en firewall.tf:
edit firewall.tf
  1. Edita la regla allow-http para permitir tráfico HTTPS en el puerto 443 (línea 51):
resource "google_compute_firewall" "allow-http" { name = "allow-http" network = module.vpc.network_name project = google_project_service.compute.project allow { protocol = "tcp" ports = ["80", "443"] # Edit this line } # Allow traffic from everywhere to instances with an http-server tag source_ranges = ["0.0.0.0/0"] target_tags = ["allow-http"] }
  1. Ahora, ejecuta el comando apply de Terraform para actualizar la regla de firewall:
terraform apply

Verás un resultado como este:

Plan: 0 to add, 1 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:
  1. Ingresa yes como respuesta. Cuando el comando apply haya finalizado, deberías ver un resultado similar al siguiente.
Apply complete! Resources: 0 added, 1 changed, 0 destroyed.

Prueba la tarea completada

Haz clic en Revisar mi progreso para verificar la tarea realizada. Si aplicaste cambios correctamente para actualizar una regla de firewall con la secuencia de comandos de Terraform, verás una puntuación de evaluación.

Permitir tráfico HTTPS

Tarea 8. Agrega un valor output de Terraform

Con los valores output de Terraform, puedes capturar la información más importante y útil para tu entorno, tanto para el consumo de humanos como de máquinas. Esto podría incluir direcciones IP, nombres de instancias y otra información clave.

En esta sección, agregarás un resultado para compartir el ID de tu nueva subred.

  1. Abre la configuración de red almacenada en outputs.tf:
edit outputs.tf
  1. Agrega una sección que muestre el nombre de tu nueva subred en función de los valores de resultado existentes. Ten en cuenta que las subredes tienen índice cero:
# Add you new output below this line output "my_subnet_name" { value = module.vpc.subnets_names[2] }
  1. Ahora, ejecuta el comando apply de Terraform para actualizar la regla de firewall:
terraform apply
  1. Ingresa yes cuando se te solicite que introduzcas un valor.

  2. Visualiza los resultados con el comando terraform output.

terraform output

Resultado del comando:

first_subnet_name = "my-first-subnet" my_subnet_name = "my-third-subnet" network_name = "my-custom-network"

Tarea 9: Crea la VM inicial

Extenderás el trabajo que completaste antes y, para eso, crearás una VM y luego la implementarás en tu red. También aprenderás a crear una imagen base y a hacer capas de información de configuración de manera dinámica para las VM.

A fin de compilar una imagen, primero debes iniciar una VM en el lugar donde instalarás el software que deseas incluir en tu imagen.

Ejecuta la VM inicial

  1. Usa gcloud para iniciar una VM en tu primera subred:
gcloud compute instances create build-instance --zone={{{project_0.default_zone|zone}}} --machine-type=e2-standard-2 --subnet=my-first-subnet --network-tier=PREMIUM --maintenance-policy=MIGRATE --image=debian-10-buster-v20221206 --image-project=debian-cloud --boot-disk-size=100GB --boot-disk-type=pd-standard --boot-disk-device-name=build-instance-1 --tags=allow-ssh
  1. Conéctate a la VM a través de SSH:
gcloud compute ssh build-instance --zone={{{project_0.default_zone|zone}}}

Resultado del comando:

WARNING: The public SSH key file for gcloud does not exist. WARNING: The private SSH key file for gcloud does not exist. WARNING: You do not have an SSH key for gcloud. WARNING: SSH keygen will be executed to generate a key. This tool needs to create the directory [/home/user/.ssh] before being able to generate SSH keys. Do you want to continue (Y/n)?
  1. Ingresa Y y, luego, cuando se te solicite una frase de contraseña, presiona INTRO dos veces.

  2. Instala Apache en la VM:

sudo apt-get update && sudo apt-get install apache2 -y
  1. Sal de la sesión SSH:
exit

Tarea 10: Captura la imagen base

Ahora que tienes una máquina que ejecuta el software que necesitas, puedes capturarla como una imagen base para iniciar máquinas virtuales idénticas adicionales.

Crea una imagen

  1. Detén la VM. Una práctica recomendada es detener las VMs antes de capturar imágenes, siempre que sea posible:
gcloud compute instances stop build-instance --zone={{{project_0.default_zone|zone}}}
  1. Crea una imagen a partir del disco de arranque:
gcloud compute images create apache-one \ --source-disk build-instance \ --source-disk-zone {{{project_0.default_zone|zone}}} \ --family my-apache-webserver

Cuando incluimos el parámetro family, vinculamos nuestra imagen a una familia. Esto nos permite obtener información o implementar la imagen más reciente de esa familia con facilidad.

  1. Usa gcloud para obtener información sobre la imagen my-apache-webserver más reciente:
gcloud compute images describe-from-family my-apache-webserver

Prueba la tarea completada

Haz clic en Revisar mi progreso para verificar la tarea realizada. Si creaste correctamente una imagen a partir del disco de arranque, verás una puntuación de evaluación.

Crea una imagen a partir del disco de arranque

Tarea 11: Actualiza la configuración de Terraform

Ahora que tenemos una imagen para comenzar a trabajar, nos gustaría implementarla con Terraform. Sin embargo, una práctica recomendada es separar las configuraciones de Terraform en unidades lógicas y las instancias de VM en problemas de la capa de la aplicación.

Para eso, usaremos una nueva configuración de Terraform específica de la aplicación y haremos actualizaciones allí, lo que significa que dejaremos de lado los procesos de Terraform en las redes.

Establece la configuración de Terraform para la aplicación

  1. Visita el directorio de labs de la aplicación en Cloud Shell:
cd ../lab-app
  1. Copia los archivos de variables y credenciales desde tu configuración de red:
cp ../lab-networking/credentials.json . cp ../lab-networking/terraform.tfvars .
  1. Edita backend.tf para actualizar la configuración del backend del código de Terraform de tu aplicación:
edit backend.tf Nota: Puedes volver a usar el mismo bucket de Cloud Storage y solamente tener un prefijo diferente para el estado de la aplicación. Asegúrate de actualizar la configuración del bucket aquí para que coincida con el mismo bucket que usaste antes. terraform { backend "gcs" { bucket = "<my-project-id>-state-bucket" # Edit this this line to match your lab-networking/backend.tf file prefix = "terraform/lab/vm" } }
  1. También deberías actualizar la fuente de datos de estado remoto de Terraform. El estado remoto de Terraform es muy útil para compartir información o outputs en múltiples proyectos; por ejemplo, para que un equipo central de redes comparta información de la subred con los equipos de aplicaciones. Asegúrate de actualizar la configuración del bucket aquí para que coincida con el mismo bucket que usaste antes:
data "terraform_remote_state" "network" { backend = "gcs" config = { bucket = "<my-project-id>-state-bucket" # Update this too prefix = "terraform/lab/network" } }

Tarea 12: Implementa una VM con Terraform

Ahora podemos apuntar Terraform a nuestra imagen preparada para iniciar una instancia. Antes de iniciar la instancia, investiguemos los detalles de la configuración de Terraform.

Revisa la configuración de la VM

  1. La configuración de Terraform para tu VM está almacenada en vm.tf:
edit vm.tf
  1. Debido a que usamos una etiqueta para vincular nuestra imagen a una familia de imágenes, podemos tomar la imagen más reciente de esa familia con Terraform. Si es necesario, actualiza esta fuente de datos para que coincida con el nombre de la familia de imágenes que elegiste:
data "google_compute_image" "apache" { family = "my-apache-webserver" project = var.project_id }
  1. También podemos usar una referencia para elegir el nombre de la subred donde se implementará. La declaración data.terraform_remote_state.network.my_subnet_name toma automáticamente la salida my_subnet_name de la configuración de red que creaste antes:
resource "google_compute_instance" "app" { ... network_interface { subnetwork = data.terraform_remote_state.network.my_subnet_name subnetwork_project = var.project_id access_config { # Include this section to give the VM an external ip address } } ... } Nota: Recuerda reemplazar la zona con tu zona en el archivo vm.tf.
  1. Si todo parece estar bien en esta configuración, puedes aplicar el comando de Terraform para implementar la VM:
terraform init terraform apply
  1. Ingresa yes cuando se te solicite que introduzcas un valor.

Esto mostrará la IP externa de tu VM.

Apply complete! Resources: 1 added, 0 changed, 0 destroyed. Outputs: ip = "35.185.255.154"
  1. Abre la dirección http://<your ip> en tu navegador web para ver un mensaje de bienvenida.

Prueba la tarea completada

Haz clic en Revisar mi progreso para verificar la tarea realizada. Si implementaste correctamente una instancia de VM con Terraform, verás una puntuación de evaluación.

Implementar la VM

Tarea 13: Actualiza la VM de la aplicación

Gracias a que definiste la configuración de la VM con Terraform, puedes cambiar la configuración de la aplicación de forma declarativa con solo ajustar tu configuración de Terraform.

  1. Abre el archivo vm.tf:
edit vm.tf
  1. Cambia la secuencia de comandos metadata_startup_script para ver un nuevo mensaje de bienvenida:
resource "google_compute_instance" "app" { ... metadata_startup_script = "echo '<!doctype html><html><body><h1>New message!</h1></body></html>' | sudo tee /var/www/html/index.html" # Edit this line tags = ["allow-ping", "allow-http", "allow-ssh"] }
  1. Ejecuta Terraform para volver a crear la VM con la nueva configuración:
terraform apply
  1. Ingresa yes cuando se te solicite que introduzcas un valor.

Deberías obtener un resultado similar al siguiente:

Apply complete! Resources: 1 added, 0 changed, 1 destroyed. Outputs: ip = 34.83.209.192
  1. Cuando haya finalizado el proceso, abre la dirección http://<your ip> en tu navegador web para ver el nuevo mensaje de bienvenida.
Nota: Si aparece el mensaje Apply cancelled., vuelve a ingresar el comando terraform apply.

Tarea 14: Destruye la infraestructura

La configuración de Terraform también te permite destruir fácilmente la infraestructura cuando ya no la necesites. Esto puede ser especialmente útil para infraestructuras temporales de desarrollo o pruebas.

Actualiza la configuración de la VM

  1. Destruye la infraestructura de la VM a través de Terraform:
terraform destroy

Se te pedirá que confirmes tu decisión de destruir la VM.

An execution plan has been generated and is shown below. Resource actions are indicated with the following symbols: - destroy Terraform will perform the following actions: - google_compute_instance.app Plan: 0 to add, 0 to change, 1 to destroy. Do you really want to destroy all resources? Terraform will destroy all your managed infrastructure, as shown above. There is no undo. Only 'yes' will be accepted to confirm. Enter a value: yes
  1. Ingresa yes cuando se te solicite que introduzcas un valor.

Cuando confirmes, Terraform comenzará a destruir tu infraestructura.

google_compute_instance.app: Destroying... (ID: my-app-instance) google_compute_instance.app: Still destroying... (ID: my-app-instance, 10s elapsed) google_compute_instance.app: Still destroying... (ID: my-app-instance, 20s elapsed) google_compute_instance.app: Still destroying... (ID: my-app-instance, 30s elapsed) google_compute_instance.app: Destruction complete after 36s Destroy complete! Resources: 1 destroyed.
  1. Si quieres, puedes destruir también la infraestructura de redes. Se destruirá automáticamente cuando se venza tu lab.

¡Felicitaciones!

Aquí termina el lab de autoaprendizaje Migración de centros de datos: Implementaciones automatizadas y conceptos básicos. En este lab, concluiste el flujo de trabajo completo para automatizar la implementación de tus recursos de redes en Google Cloud. Configuraste credenciales de acceso y Terraform; creaste recursos, incluidos una red de VPC, una subred y reglas de firewall; modificaste los recursos existentes; verificaste cuidadosamente las capacidades de esos recursos y, por último, obtuviste valores output.

También aprendiste a crear una VM inicial, capturar una imagen base, actualizar configuraciones de Terraform e implementar una VM con Terraform.

Finaliza tu Quest

Este lab de autoaprendizaje es parte de la Quest VM Migration. Una Quest es una serie de labs relacionados que forman una ruta de aprendizaje. Si completas esta Quest, obtendrás una insignia como reconocimiento por tu logro. Puedes hacer públicas tus insignias y agregar vínculos a ellas en tu currículum en línea o en tus cuentas de redes sociales. Inscríbete en esta Quest y obtén un crédito inmediato de realización. Consulta el catálogo de Google Cloud Skills Boost para ver todas las Quests disponibles.

Realiza tu próximo lab

Continúa tu Quest con Migrate for Anthos: Qwik Start o consulta otro lab de Google Cloud Skills Boost, como Migración de VM: Introducción a las evaluaciones de StratoZone.

Próximos pasos y más información

Si quieres obtener más información, explora recursos adicionales que se pueden administrar con Terraform:

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: 8 de diciembre de 2023

Prueba más reciente del lab: 8 de diciembre de 2023

Copyright 2024 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.