使用 Terraform 预配 Cloud Build 资源

HashiCorp Terraform 是一种基础架构即代码 (IaC) 工具,可让您预配和管理云基础架构。Terraform 提供称为提供程序的插件,可让您与云服务提供商和其他 API 进行交互。您可以使用适用于 Google Cloud 的 Terraform 提供程序来预配和管理 Google Cloud 资源,包括 Cloud Build。

Terraform 的工作原理

Terraform 具有面向声明和配置的语法,可用于描述要在 Google Cloud 项目中预配的基础架构。在一个或多个 Terraform 配置文件中编写此配置后,您可以使用 Terraform CLI 将此配置应用于您的 Cloud Build 资源。

以下步骤介绍了 Terraform 的运作方式:

  1. 您可以在 Terraform 配置文件中描述要预配的基础架构。您无需编写代码来描述如何预配基础架构。Terraform 会为您预配基础架构。
  2. 运行 terraform plan 命令,该命令将评估您的配置并生成执行计划。您可以查看方案并根据需要进行更改。
  3. 运行 terraform apply 命令,该命令将执行以下操作:
    1. 该服务会在后台调用相应的 Cloud Build API,从而根据您的执行计划来预配您的基础架构。
    2. 它会创建一个 Terraform 状态文件,这是一个 JSON 文件,用于将配置文件中的资源映射到实际基础架构中的资源。Terraform 使用此文件来记录基础架构的最新状态,并确定何时创建、更新和销毁资源。
    3. 当您运行 terraform apply 时,Terraform 使用状态文件中的映射来将现有基础架构与代码进行比较,并根据需要进行更新:
      • 如果配置文件中定义了某个资源对象,但状态文件中不存在某个资源对象,则 Terraform 会创建该对象。
      • 如果状态文件中存在资源对象,但其配置与您的配置文件不同,则 Terraform 会更新资源以匹配您的配置文件。
      • 如果状态文件中的某个资源对象与您的配置文件匹配,Terraform 会使该资源保持不变。

    基于 Terraform 的 Cloud Build 指南

    下表列出了适用于 Cloud Build 的所有基于 Terraform 的方法指南和教程:

    指南 详细信息
    连接到 GitHub 代码库 本指南介绍如何使用 Terraform 将 GitHub 代码库连接到 Cloud Build。
    部署到 Compute Engine 本指南介绍如何使用 Cloud Build 和 Terraform 在 Compute Engine 代管式实例组 (MIG) 上执行零停机蓝绿部署。

    适用于 Cloud Build 的 Terraform 模块和蓝图

    模块和蓝图可帮助您大规模自动预配和管理 Google Cloud 资源。模块是一组可重复使用的 Terraform 配置文件,用于创建 Terraform 资源的逻辑抽象。蓝图是可部署和可重复使用的模块的软件包,以及用于实现并记录特定解决方案的政策。

    下表列出了与 Cloud Build 相关的所有模块和蓝图:

    模块或蓝图 详情
    安全的 CI/CD 流水线 此模块可让 Google Cloud 客户快速部署安全的 CI/CD 流水线,实现左移安全性中所述的许多功能。
    terraform-google-bootstrap 此模块可帮助引导 Google Cloud 组织,创建开始使用 Cloud Foundation Toolkit (CFT) 所需的所有资源和权限。对于希望使用 Cloud Build 和 Cloud Source Repositories 进行基础代码的用户,此模块包含一个可引导所有必需资源的子模块。

    用于 Cloud Build 的 Terraform 资源

    资源是 Terraform 语言中的基本元素。每个资源块都描述了一个或多个基础架构对象,例如虚拟网络或计算实例。

    下表列出了可用于 Cloud Build 的 Terraform 资源:

    Cloud Build 服务 Terraform 资源 数据源
    Cloud Build v1 google_cloudbuild_trigger
    Cloud Build v2 google_cloudbuildv2_connection_iam_policy

    后续步骤