Puntos de control
Create a service account and a key (SA Name: terraform)
/ 10
Grant your Service Account the Owner role on your project
/ 20
Create and configure a GCS bucket
/ 10
Run Terraform for the first time
/ 10
Add a subnet
/ 10
Allow https traffic
/ 10
Create an image from the boot disk
/ 10
Deploy the VM using Terraform
/ 20
Migración de VM: Planificación
- GSP616
- Descripción general
- Configuración y requisitos
- Tarea 1. Configura tu entorno
- Tarea 2. Configura las variables
- Tarea 3: Configura las credenciales de acceso de Google Cloud
- Tarea 4: Configura el estado remoto
- Tarea 5: Ejecuta Terraform
- Tarea 6: Agrega una subred
- Tarea 7: Permite el tráfico HTTPS
- Tarea 8. Agrega un valor output de Terraform
- Tarea 9: Crea la VM inicial
- Tarea 10: Captura la imagen base
- Tarea 11: Actualiza la configuración de Terraform
- Tarea 12: Implementa una VM con Terraform
- Tarea 13: Actualiza la VM de la aplicación
- Tarea 14: Destruye la infraestructura
- ¡Felicitaciones!
GSP616
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:
-
Evalúa el entorno actual para entender mejor los recursos existentes y definir los grupos de migración.
-
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.
-
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.
-
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)
- Tiempo para completar el lab: Recuerda que, una vez que comienzas un lab, no puedes pausarlo.
Cómo iniciar tu lab y acceder a la consola de Google Cloud
-
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 Cloud
- El tiempo restante
- Las credenciales temporales que debe usar para el lab
- Otra información para completar el lab, si es necesaria
-
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: Ordene 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. -
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.
-
Haz clic en Siguiente.
-
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.
-
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 podría generar cargos adicionales. -
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.
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.
- Haz clic en 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:
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.
- Puedes solicitar el nombre de la cuenta activa con este comando (opcional):
-
Haz clic en Autorizar.
-
Ahora, el resultado debería verse de la siguiente manera:
Resultado:
- Puedes solicitar el ID del proyecto con este comando (opcional):
Resultado:
Resultado de ejemplo:
gcloud
, consulta la guía con la descripción general de gcloud CLI en Google Cloud.
Tarea 1. Configura tu entorno
- Verifica que Terraform esté instalado en el entorno de Cloud Shell:
Resultado del comando:
- Ejecuta el siguiente comando para clonar el repositorio de Git que contiene el código del lab:
- Cambia el directorio actual al directorio de redes:
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.
- Crea un archivo
terraform.tfvars
en Cloud Shell:
- Abre el archivo
terraform.tfvars
en el editor de código:
vi
y nano
.- Pega esto en tu archivo
terraform.tfvars
:
- 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>
porqwiklabs-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
- En tu sesión de Cloud Shell, ejecuta el siguiente comando para crear una cuenta de servicio que ejecute Terraform:
Resultado del comando:
- Crea una lista con tus cuentas de servicio para recibir el correo electrónico para tu nueva cuenta de Terraform:
Resultado del comando:
- 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:
Resultado del comando:
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.
- 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:
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.
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
- 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:
Resultado del comando:
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.
- Abre la configuración de backend almacenada en
backend.tf
:
- Actualiza el nombre del bucket para que coincida con tu elección y guarda el archivo:
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.
Ejecuta Terraform por primera vez
- 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:
- 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:
Esto limpiará tu estado local de Terraform y se inicializará correctamente.
- Ejecuta un paso del plan para validar la sintaxis de la configuración y muestra una vista previa de lo que se creará:
El resultado del plan muestra que Terraform creará 8 recursos para tu red.
- Ahora, ejecuta el comando apply de Terraform para aplicar esos cambios:
Verás un resultado como este:
- Ingresa yes como respuesta. Cuando el comando apply haya finalizado, deberías ver un resultado similar al siguiente:
- Una vez que hayas aplicado los cambios, podrás mostrar la lista de recursos en el estado de Terraform con el comando 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.
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
- 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:
- Agrega una subred adicional en el bloque
subnets
del archivo (en la línea 40). Puedes elegir tu propio nombre y rango de CIDR, como10.10.30.0/24
.
- 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:
- Ahora, ejecuta el comando terraform apply para agregar la nueva subred:
Error waiting to create Subnetwork
, vuelve a ejecutar el comando anterior.
Verás un resultado como este:
- Ingresa yes como respuesta. Cuando el comando apply haya finalizado, deberías ver un resultado similar al siguiente.
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.
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.
- Abre la configuración de firewall almacenada en
firewall.tf
:
- Edita la regla
allow-http
para permitir tráfico HTTPS en el puerto 443 (línea 51):
- Ahora, ejecuta el comando apply de Terraform para actualizar la regla de firewall:
Verás un resultado como este:
- Ingresa yes como respuesta. Cuando el comando apply haya finalizado, deberías ver un resultado similar al siguiente.
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.
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.
- Abre la configuración de red almacenada en
outputs.tf
:
- 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:
- Ahora, ejecuta el comando apply de Terraform para actualizar la regla de firewall:
-
Ingresa yes cuando se te solicite que introduzcas un valor.
-
Visualiza los resultados con el comando terraform output.
Resultado del comando:
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
- Usa
gcloud
para iniciar una VM en tu primera subred:
- Conéctate a la VM a través de SSH:
Resultado del comando:
-
Ingresa Y y, luego, cuando se te solicite una frase de contraseña, presiona INTRO dos veces.
-
Instala Apache en la VM:
- Sal de la sesión SSH:
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
- Detén la VM. Una práctica recomendada es detener las VMs antes de capturar imágenes, siempre que sea posible:
- Crea una imagen a partir del disco de arranque:
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.
- Usa gcloud para obtener información sobre la imagen
my-apache-webserver
más reciente:
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.
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
- Visita el directorio de labs de la aplicación en Cloud Shell:
- Copia los archivos de variables y credenciales desde tu configuración de red:
- Edita
backend.tf
para actualizar la configuración del backend del código de Terraform de tu aplicación:
- 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:
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
- La configuración de Terraform para tu VM está almacenada en vm.tf:
- 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:
- 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 salidamy_subnet_name
de la configuración de red que creaste antes:
- Si todo parece estar bien en esta configuración, puedes aplicar el comando de Terraform para implementar la VM:
- Ingresa yes cuando se te solicite que introduzcas un valor.
Esto mostrará la IP externa de tu VM.
- 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.
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.
- Abre el archivo vm.tf:
- Cambia la secuencia de comandos
metadata_startup_script
para ver un nuevo mensaje de bienvenida:
- Ejecuta Terraform para volver a crear la VM con la nueva configuración:
- Ingresa yes cuando se te solicite que introduzcas un valor.
Deberías obtener un resultado similar al siguiente:
- Cuando haya finalizado el proceso, abre la dirección http://<your ip> en tu navegador web para ver el nuevo mensaje de bienvenida.
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
- Destruye la infraestructura de la VM a través de Terraform:
Se te pedirá que confirmes tu decisión de destruir la VM.
- Ingresa yes cuando se te solicite que introduzcas un valor.
Cuando confirmes, Terraform comenzará a destruir tu infraestructura.
- 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.