使用 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 会使该资源保持不变。

适用于 Cloud Build 的基于 Terraform 的指南

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

指南 详细信息
连接到 GitHub 代码库 本指南介绍了如何将 GitHub 代码库连接到 使用 Terraform 创建 Cloud Build。
连接到 GitHub Enterprise 主机 本指南介绍了如何将 GitHub Enterprise 主机连接到 使用 Terraform 创建 Cloud Build。
连接到 GitHub Enterprise 代码库 本指南介绍了如何使用 Terraform 将 GitHub Enterprise 代码库连接到 Cloud Build。
连接到 GitLab 企业版主机 本指南介绍了如何使用 Terraform 将 GitLab Enterprise Edition 主机连接到 Cloud Build。
连接到 GitLab Enterprise Edition 代码库 本指南介绍了如何将 GitLab Enterprise Edition 代码库连接到 使用 Terraform 创建 Cloud Build。
连接到 Bitbucket 数据中心主机 本指南介绍了如何将 Bitbucket Data Center 主机连接到 使用 Terraform 创建 Cloud Build。
连接到 Bitbucket 数据中心代码库 本指南介绍了如何使用 Terraform 将 Bitbucket 数据中心代码库连接到 Cloud Build。
连接到 Bitbucket Cloud 主机 本指南介绍了如何使用 Terraform 将 Bitbucket Cloud 主机连接到 Cloud Build。
连接到 Bitbucket Cloud 代码库 本指南介绍了如何使用 Terraform 将 Bitbucket Cloud 代码库连接到 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

后续步骤