Implementa la base con Terraform descargado de la consola

La guía de configuración básica de Cloud en la consola de Google Cloud permite a los administradores empresariales configurar una base de Google Cloud lista para empresas mediante una interfaz guiada y, luego, implementarla directamente desde la consola de Google Cloud o descargarla como Terraform.

Los administradores pueden configurar una entidad de la organización, usuarios y grupos; vincular o configurar una cuenta de facturación y configurar la jerarquía de recursos (carpetas y proyectos), las políticas de IAM, las herramientas de redes iniciales y el registro y la supervisión centralizados.

Cuando los clientes descargan su configuración como Terraform, la consola genera un archivo de Terraform para su implementación posterior. En este instructivo, se proporcionan instrucciones para implementar el archivo de Terraform descargado y se tienen en cuenta los recursos de infraestructura implementados con anterioridad.

Antes de comenzar

Revisa las Prácticas recomendadas para el uso de Terraform, que incluye lineamientos sobre el desarrollo efectivo con Terraform en todos los miembros del equipo y flujos de trabajo.

Si ya implementaste la configuración base mediante un clic en el botón Implementar en la consola y ahora quieres implementar una configuración de Terraform descargada con tu propia canalización, debes hacer lo siguiente:

  • Descarga el archivo de estado de Terraform que generó la consola.
  • Incluye el archivo de estado descargado en tu propio proceso de canalización.

Para obtener más información, consulta Implementa Terraform descargado después de la implementación desde la consola.

Implementa Terraform con Cloud Shell

Cloud Shell viene con Terraform preinstalado y autenticado previamente, de modo que pueda comenzar rápidamente.

  1. Desde la guía de configuración de la consola, haz clic en Descargar como Terraform y guarda la configuración.
  2. Abre Cloud Shell.
  3. En Cloud Shell, crea un directorio y navega hasta él:

    mkdir cloud-foundation-example && cd cloud-foundation-example
    
  4. Sube la configuración de Terraform que descargaste en el paso 1.

    En el menú Mas de Cloud Shell, selecciona Subir y haz clic en Elegir archivos para seleccionar la configuración de Terraform. Configura el directorio de destino en la carpeta que creaste en el paso anterior y, luego, haz clic en Subir.

  5. Asegúrate de estar en el directorio cloud-foundation-example.

  6. Crea un bucket de Cloud Storage para almacenar el estado remoto de Terraform. Un estado remoto permite que Terraform use almacenes de objetos como la CLI de gcloud para almacenar información de estado de la infraestructura administrada por Terraform. Esta configuración proporciona beneficios, como la delegación del equipo y el bloqueo de estado.

    Para crear el bucket de Cloud Storage, ejecuta el siguiente comando:

    gcloud storage buckets create gs://tf-state-PROJECT_ID
    
  7. Define una configuración de backend de Terraform dentro de un archivobackend.tf y reemplaza PROJECT_ID para que coincida con el ID del proyecto que usaste en el paso anterior. Para obtener más detalles, revisa Almacena el estado de Terraform en Cloud Storage.

    # backend.tf
    terraform {
          backend "gcs" {
            bucket  = "tf-state-PROJECT_ID"
            prefix  = "terraform/state"
          }
    }
    
  8. Ejecuta terraform init. Este proceso inicializa tu directorio de trabajo que contiene los archivos de configuración de Terraform y el backend.

  9. Ejecuta terraform plan para ver los recursos que crea Terraform. Resultado de ejemplo:

    ...
    Plan: 6 to add, 0 to change, 0 to destroy.
    Note: You didn't use the -out option to save this plan, so Terraform can't
    guarantee to take exactly these actions if you run "terraform apply" now.
    

  10. Ejecuta terraform apply para implementar los recursos en Google Cloud y aplicar la configuración. Cuando se te solicite, ingresa yes.

  11. Explora la consola de Google Cloud para verificar que los recursos estén implementados en la cuenta o el proyecto.

Vuelve a implementar Terraform con Cloud Shell

Terraform almacena información sobre los recursos implementados dentro del archivo de estado de Terraform. Si seguiste los pasos anteriores para implementar la configuración, te recomendamos que vuelvas a usar el mismo backend para detectar, reducir y actualizar de forma automática los recursos definidos por la configuración nueva exportada.

  1. Desde la guía de configuración de la consola, haz clic en Descargar como Terraform y guarda la configuración.
  2. Abre Cloud Shell.
  3. En Cloud Shell, crea un directorio y navega hasta él:
    mkdir cloud-foundation-example-redeploy && cd cloud-foundation-example-redeploy
    
  4. Sube la configuración de Terraform que descargaste en el paso 1.

    En el menú Mas de Cloud Shell, selecciona Subir y haz clic en Elegir archivos para seleccionar la configuración de Terraform. Configura el directorio de destino en la carpeta que creaste en el paso anterior y, luego, haz clic en Subir.

  5. Asegúrate de estar en el directorio cloud-foundation-example-redeploy.

  6. Asegúrate de que existan el archivo de estado y el bucket de backend de Cloud Storage creados anteriormente.

    gcloud storage ls gs://tf-state-PROJECT_ID/terraform/state/
    
    Resultado de ejemplo:
    gs://tf-state-PROJECT_ID/terraform/state/default.tfstate
    

  7. Define una configuración de backend de Terraform dentro de un archivo backend.tf mediante la reutilización del mismo bucket y prefijo.

    # backend.tf
    terraform {
          backend "gcs" {
            bucket  = "tf-state-PROJECT_ID"
            prefix  = "terraform/state"
          }
    }
    
  8. Ejecuta terraform init. Este proceso inicializa tu directorio de trabajo que contiene los archivos de configuración de Terraform y el backend.

  9. Ejecuta terraform plan para ver los recursos que Terraform crea, cambia o destruye. Resultado de ejemplo:

    ...
    Plan: 2 to add, 3 to change, 4 to destroy.
    Note: You didn't use the -out option to save this plan, so Terraform can't
    guarantee to take exactly these actions if you run "terraform apply" now.
    

  10. Ejecuta terraform apply para implementar los recursos en Google Cloud y aplicar la configuración. Cuando se te solicite, ingresa yes.

  11. Explora la consola de Google Cloud para verificar que los recursos estén implementados en la cuenta o el proyecto.

Implementa Terraform descargado después de la implementación desde la consola

Si ya implementaste la configuración base mediante el botón Implementar en la consola, se generó un archivo de estado de Terraform. Si ahora quieres descargar la configuración de Terraform para implementarla con tu propia canalización, debes incluir el archivo de estado de Terraform que se generó durante la implementación de la consola.

Para descargar y usar el archivo de estado, sigue estos pasos:

  1. Para descargar el archivo de estado de Terraform, completa los siguientes procedimientos en Administra el archivo de estado de Terraform:

    1. Bloquea la implementación.
    2. Descarga el archivo de estado.
    3. Desbloquea la implementación.
  2. Para mover el archivo de estado que descargaste a un bucket de Cloud Storage, consulta Almacena el estado de Terraform en un bucket de Cloud Storage.

  3. Para volver a implementar la configuración de Terraform, consulta Vuelve a implementar Terraform con Cloud Shell.

Soluciona problemas de implementaciones de Terraform

Implementa Terraform con recursos existentes

Si la configuración de Terraform descargada intenta crear recursos que ya existen, Terraform sale con un código de error 409. Para resolver estos errores, puedes borrar el recurso mediante la consola de Google Cloud o la CLI de gcloud y, luego, vuelve a aplicar la configuración de Terraform. De manera alternativa, si estos recursos son críticos y no se pueden borrar, puedes importar recursos a tu estado de Terraform.

Administra la infraestructura como código con Terraform, Cloud Build y GitOps

Te recomendamos seguir este instructivo para obtener instrucciones completas. Esta opción es para los administradores y operadores de plataforma que buscan una estrategia para realizar cambios en la infraestructura de forma predecible y repetitiva. En la guía, se supone que estás familiarizado con Google Cloud, Linux y GitHub. Los pasos de alto nivel de esta opción son los siguientes:

  1. Configurar el repositorio de GitHub
  2. Configurar Terraform para almacenar el estado en un bucket de Cloud Storage.
  3. Otorgar permisos a tu cuenta de servicio de Cloud Build.
  4. Conectar Cloud Build a tu repositorio de GitHub.
  5. Cambiar la configuración de tu entorno en una rama de características.
  6. Promover los cambios en el entorno de desarrollo.
  7. Promover los cambios en el entorno de producción.