Terraform on Google Cloud 概览

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

使用 Terraform 的优势

本部分介绍了使用 Terraform 预配和管理 Google Cloud 基础设施的一些优势:

  • Terraform 是预配 Google Cloud 基础设施并实现其自动化的最常用工具。您可以借助 Google Cloud 提供程序使用相同的声明式语法和工具来配置和管理所有 Google Cloud 资源。
  • Terraform 可让您为基础设施指定自己偏好的最终状态。然后,您可以多次部署相同的配置,以创建可重现的开发、测试和生产环境。
  • 借助 Terraform,您可以生成执行计划,以指明 Terraform 在应用配置时将执行的操作。这样可以在通过 Terraform 修改基础设施时避免出现意外情况。
  • Terraform 可让您以模块的形式打包和重复使用通用代码。模块提供用于创建云资源的标准接口。它们通过提高可读性来简化项目,并允许团队以可读块形式组织基础设施。此外,Google Cloud 还发布了许多可部署的针对性模块作为蓝图,并发布了使用入门示例作为快速起步解决方案
  • Terraform 会记录基础架构的当前状态,并让您能够有效地管理状态。Terraform 状态文件会跟踪部署中的所有资源。

使用 Terraform

Terraform 具有面向配置的声明性语法,您可以使用它来编写要预配的基础设施。使用此语法,您可以在 Terraform 配置文件中为基础设施定义自己偏好的最终状态。然后,使用 Terraform CLI 基于配置文件预配基础设施。

以下步骤介绍了 Terraform 的工作原理:

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

Google Cloud 提供程序

有两个提供程序可让您预配和管理 Google Cloud 基础设施:

  • google:使用此提供程序预配和管理 Google Cloud API。
  • google-beta:使用此提供程序预配和管理 Google Cloud Beta 版 API。

如需了解如何使用这些提供程序,请参阅 Google Cloud 提供程序配置参考

googlegoogle-beta 提供程序使用名为“Magic Modules”的工具开发。借助 Magic Modules,贡献者可以对单个代码库进行更改,并同时开发 googlegoogle-beta 提供程序。

您可以按照 Magic Modules 贡献指南中的说明,使用 Magic Modules 为 Google Cloud 提供程序进行贡献。

后续步骤