HashiCorp Terraform es una herramienta de infraestructura como código (IaC) que te permite aprovisionar y administrar la infraestructura de nube. Terraform proporciona complementos llamados proveedores que te permiten interactuar con proveedores de servicios en la nube y otras APIs. Puedes usa el proveedor de Terraform para Google Cloud para aprovisionar y administrar Recursos de Google Cloud, incluido Cloud Build.
Cómo funciona Terraform
Terraform tiene una sintaxis declarativa y orientada a la configuración que puedes usar para describir la infraestructura que deseas aprovisionar en tu proyecto de Google Cloud. Después de crear esta configuración en uno o más archivos de configuración de Terraform, puedes usar la CLI de Terraform para aplicarla a tus recursos de Cloud Build.
En los siguientes pasos, se explica cómo funciona Terraform:
- Describes la infraestructura que deseas aprovisionar en un archivo de configuración de Terraform. No es necesario que escribas código que describa 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 realizar cambios según sea necesario. -
Luego, ejecuta el comando
terraform apply
, que realiza las siguientes acciones:- Aprovisiona tu infraestructura según tu plan de ejecución mediante la invocación de 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 del mundo 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 destruir recursos.
-
Luego, cuando ejecutes
terraform apply
, Terraform usa la asignación en el archivo de estado para comparar la infraestructura existente con el código y realizar actualizaciones según sea necesario:- Si un objeto de recurso se define en el archivo de configuración, pero no existe en el archivo de estado, Terraform lo crea.
- Si existe un objeto de recurso en el archivo de estado, pero tiene una configuración diferente de tu archivo de configuración, Terraform actualiza el recurso para que coincida con tu archivo de configuración.
- Si un objeto de recurso en el archivo de estado coincide con tu archivo de configuración, Terraform deja el recurso sin cambios.
Guías basadas en Terraform para Cloud Build
En la siguiente tabla, se enumeran todas las guías prácticas y los instructivos basados en Terraform para Cloud Build:
Guía | Detalles |
---|---|
Conéctate a un repositorio de GitHub | En esta guía, se explica cómo conectar un repositorio de GitHub a Cloud Build con Terraform. |
Conéctate a un host de GitHub Enterprise | En esta guía, se explica cómo conectar un host de GitHub Enterprise a Cloud Build con Terraform. |
Conéctate a un repositorio de GitHub Enterprise | En esta guía, se explica cómo conectar un repositorio de GitHub Enterprise a Cloud Build con Terraform. |
Cómo 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 con Terraform. |
Conéctate 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 con Terraform. |
Conéctate 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 con Terraform. |
Conéctate 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 con Terraform. |
Conéctate a un host de Bitbucket Cloud. | En esta guía, se explica cómo conectar un host de Bitbucket Cloud a Cloud Build con Terraform. |
Conéctate a un repositorio de Bitbucket Cloud. | En esta guía, se explica cómo conectar un repositorio de Bitbucket Cloud a Cloud Build con Terraform. |
Implementa en Compute Engine | En esta guía, se explica cómo realizar un tiempo de inactividad azul-verde sin tiempo de inactividad implementaciones en grupos de instancias administrados de Compute Engine (MIG) con Cloud Build y Terraform. |
Módulos y planos de Terraform para Cloud Build
Los módulos y planos ayudan a automatizar el aprovisionamiento y la administración de recursos de Google Cloud 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 plano es un paquete de elementos implementables y reutilizables módulos y una política que implementa y documenta una solución específica.
En la siguiente tabla, se enumeran todos los módulos y planos relacionados con Cloud Build:
Módulo o plano | Detalles |
---|---|
Canalización de CI/CD segura | Este módulo permite a los clientes de Google Cloud implementar rápidamente una canalización de CI/CD segura, con la implementación de muchas de las funciones que se describen en Desplazarse hacia la izquierda en seguridad. |
terraform-google-bootstrap |
Este módulo ayuda a iniciar una organización de Google Cloud y a crear todos los recursos y permisos necesarios para comenzar a usar Cloud Foundation Toolkit (CFT). Para los usuarios que desean usar Cloud Build y Cloud Source Repositories para el código de Foundation, este módulo contiene un submódulo que inicia todos los recursos necesarios. |
Recursos de Terraform para Cloud Build
Los recursos son los elementos fundamentales del lenguaje de Terraform. Cada bloque de recursos describe uno o más objetos de infraestructura, como redes virtuales o instancias de procesamiento.
En la siguiente tabla, se enumeran los recursos de Terraform disponibles para Cloud Build:
Servicio de Cloud Build | Recursos de Terraform | Fuentes de datos |
---|---|---|
Cloud Build v1 | google_cloudbuild_trigger
|
|
Cloud Build v2 | google_cloudbuildv2_connection_iam_policy |
¿Qué sigue?
- Muestras de código de Terraform para Cloud Build
- Documentación de Terraform en Google Cloud
- Documentación del proveedor de Google Cloud en HashiCorp
- Infraestructura como código para Google Cloud