HashiCorp Terraform es una herramienta de infraestructura como código (IaC) que te permite aprovisionar y gestionar la infraestructura en la nube. Terraform proporciona complementos llamados proveedores que te permiten interactuar con proveedores de servicios en la nube y otras APIs. Puedes usar el proveedor de Terraform para Google Cloud con el fin de aprovisionar y gestionar Google Cloud recursos, incluido Cloud Build.
En esta página se explica cómo usar Terraform con Cloud Build, se describe cómo funciona Terraform y se ofrecen algunos recursos para ayudarte a empezar a usar Terraform con Google Cloud. También encontrarás enlaces a la documentación de referencia de Terraform para Cloud Build, ejemplos de código y guías para usar Terraform con el fin de aprovisionar recursos de Cloud Build.
Para obtener instrucciones sobre cómo empezar a usar Terraform para Google Cloud, consulta Instalar y configurar Terraform o la guía de inicio rápido de Terraform para Google Cloud .
Cómo funciona Terraform
Terraform tiene una sintaxis declarativa y orientada a la configuración que puedes usar para describir la infraestructura que quieres aprovisionar en tu Google Cloud proyecto. Después de crear esta configuración en uno o varios archivos de configuración de Terraform, puedes usar la CLI de Terraform para aplicar esta configuración a tus recursos de Cloud Build.
En los siguientes pasos se explica cómo funciona Terraform:
- Describe la infraestructura que quieres aprovisionar en un archivo de configuración de Terraform. No es necesario que escribas código para describir cómo aprovisionar la infraestructura. Terraform aprovisiona la infraestructura por ti.
- Ejecuta el comando
terraform plan
, que evalúa tu configuración y genera un plan de ejecución. Puedes revisar el plan y hacer los cambios que necesites. -
Ejecutas el comando
terraform apply
, que realiza las siguientes acciones:- Aprovisiona tu infraestructura en función de tu plan de ejecución invocando las APIs de Cloud Build correspondientes en segundo plano.
- Crea un archivo de estado de Terraform, que es un archivo JSON que asigna los recursos del archivo de configuración a los recursos de la infraestructura real. Terraform usa este archivo para mantener un registro del estado más reciente de tu infraestructura y para determinar cuándo crear, actualizar y eliminar recursos.
-
Cuando ejecutas
terraform apply
, Terraform usa la asignación del archivo de estado para comparar la infraestructura actual con el código y hacer las actualizaciones necesarias:- Si se define un objeto de recurso en el archivo de configuración, pero no existe en el archivo de estado, Terraform lo crea.
- Si un objeto de recurso existe en el archivo de estado, pero tiene una configuración diferente a la de tu archivo de configuración, Terraform actualiza el recurso para que coincida con tu archivo de configuración.
- Si un objeto de recurso del archivo de estado coincide con el archivo de configuración, Terraform no lo modifica.
Recursos de Terraform para Cloud Build
Los recursos son los elementos fundamentales del lenguaje de Terraform. Cada bloque de recursos describe uno o varios objetos de infraestructura, como redes virtuales o instancias de computación.
En la siguiente tabla se indican los recursos de Terraform disponibles para Cloud Build:
Servicio Cloud Build | Recursos de Terraform | Fuentes de datos |
---|---|---|
Cloud Build v1 | google_cloudbuild_trigger
|
|
Cloud Build v2 | google_cloudbuildv2_connection_iam_policy |
Guías basadas en Terraform para Cloud Build
En la siguiente tabla se incluyen guías prácticas y tutoriales basados en Terraform para Cloud Build:
Guía | Detalles |
---|---|
Conectarse a un repositorio de GitHub | En esta guía se explica cómo conectar un repositorio de GitHub a Cloud Build mediante Terraform. |
Conectarse a un host de GitHub Enterprise | En esta guía se explica cómo conectar un host de GitHub Enterprise a Cloud Build mediante Terraform. |
Conectarse a un repositorio de GitHub Enterprise | En esta guía se explica cómo conectar un repositorio de GitHub Enterprise a Cloud Build mediante Terraform. |
Conectarse a un host de GitLab Enterprise Edition | En esta guía se explica cómo conectar un host de GitLab Enterprise Edition a Cloud Build mediante Terraform. |
Conectarse a un repositorio de GitLab Enterprise Edition | En esta guía se explica cómo conectar un repositorio de GitLab Enterprise Edition a Cloud Build mediante Terraform. |
Conectarse a un host de Bitbucket Data Center | En esta guía se explica cómo conectar un host de Bitbucket Data Center a Cloud Build mediante Terraform. |
Conectarse a un repositorio de Bitbucket Data Center | En esta guía se explica cómo conectar un repositorio de Bitbucket Data Center a Cloud Build mediante Terraform. |
Conectarse a un host de Bitbucket Cloud | En esta guía se explica cómo conectar un host de Bitbucket Cloud a Cloud Build mediante Terraform. |
Conectarse a un repositorio de Bitbucket Cloud | En esta guía se explica cómo conectar un repositorio de Bitbucket Cloud a Cloud Build mediante Terraform. |
Desplegar en Compute Engine | En esta guía se explica cómo realizar implementaciones azul-verde sin tiempo de inactividad en grupos de instancias gestionados (MIGs) de Compute Engine con Cloud Build y Terraform. |
Módulos y planos de Terraform para Cloud Build
Los módulos y los planos te ayudan a automatizar el aprovisionamiento y la gestión de Google Cloud recursos a gran escala. Un módulo es un conjunto reutilizable de archivos de configuración de Terraform que crea una abstracción lógica de los recursos de Terraform. Un blueprint es un paquete de módulos desplegables y reutilizables, así como una política que implementa y documenta una solución específica.
En la siguiente tabla se enumeran los módulos y los planos relacionados con Cloud Build:
Módulo o plano | Detalles |
---|---|
Flujo de procesamiento de CI/CD seguro | Este módulo permite a los clientes desplegar rápidamente un flujo de trabajo de CI/CD seguro, implementando muchas de las funciones descritas en Desplazamiento hacia la izquierda en la seguridad. Google Cloud |
terraform-google-bootstrap |
Este módulo ayuda a inicializar una Google Cloud organización, creando todos los recursos y permisos necesarios para empezar a usar Cloud Foundation Toolkit (CFT). Para los usuarios que quieran usar Cloud Build y Cloud Source Repositories para el código de las bases, este módulo contiene un submódulo que inicia todos los recursos necesarios. |
Siguientes pasos
- Ejemplos de código de Terraform para Cloud Build
- Documentación de Terraform on Google Cloud
- Google Cloud Documentación del proveedor en HashiCorp
- Infraestructura como código para Google Cloud