Azure 上的 Terraform 概述 - 什么是 Terraform?

Hashicorp Terraform 是一种开源 IaC(基础结构即代码)工具,用于配置和部署云基础结构。 它在描述拓扑所需状态的配置文件中编写基础结构。 Terraform 允许使用 Terraform 提供程序管理任何基础结构,例如公有云、私有云和 SaaS 服务。

用于Azure基础结构的 Terraform 提供程序

有多个 Terraform 提供程序可用于管理 Azure 基础设施:

  • AzureRM:管理稳定的Azure资源和功能,例如虚拟机、存储帐户和网络接口。
  • AzAPI:直接使用 Azure 资源管理器 API 管理Azure资源和功能。 该提供程序使您无需更新提供程序即可与 Azure 的最新功能保持一致。 有关 AzAPI 提供程序的详细信息,请参阅 Terraform AzAPI 提供程序
  • AzureAD:管理Microsoft Entra资源,例如组、用户、服务主体和应用程序。
  • AzureDevops:管理Azure DevOps资源,例如代理、存储库、项目、管道和查询。
  • AzureStack:管理Azure Stack Hub资源,例如虚拟机、DNS、虚拟网络和存储。

使用 AzAPI 与 AzureRM

若要了解何时使用 AzAPI 与 AzureRM,请阅读 HashiCorp 的联合声明

Terraform 与 Azure 结合使用的优势

本部分介绍使用 Terraform 管理Azure基础结构的好处。

常见 IaC 工具

Terraform Azure 提供程序使你能够使用相同的声明性语法和工具管理所有Azure基础结构。 使用这些提供程序,您可以:

  1. 配置核心平台功能,例如管理组、策略、用户、组和策略。 有关详细信息,请参阅 云采用框架 Enterprise-scale 的 Terraform 实现
  2. 配置Azure DevOps项目和管道以自动执行常规基础结构和应用程序部署。
  3. 部署应用程序所需的Azure资源。

自动化基础结构管理

使用基于 Terraform 模板的配置文件语法以可重复且可预测的方式配置Azure资源。 自动化基础结构管理具有以下优势:

  • 减少部署和管理基础结构时人为错误的可能性。
  • 多次部署同一模板,以创建相同的开发、测试和生产环境。
  • 通过按需创建开发和测试环境来削减开发和测试环境的成本。

在应用基础架构更改之前,先了解这些更改

随着资源拓扑变得更加复杂,很难理解基础结构更改的含义和影响。

使用 Terraform CLI,可以在应用计划之前验证和预览基础结构更改。 以安全方式预览基础结构更改提供了以下几个好处:

  • 团队成员可以通过了解建议的更改及其影响,更有效地进行协作。
  • 你可以在开发过程中及早发现意外更改。

后续步骤

根据环境安装和配置 Terraform:

注释

Azure 存储帐户转换可能会引入受支持的带外更改,从而导致 Terraform 计划替换存储帐户。 有关在这些转换期间防止意外重新创建的指导,请参阅防止有状态 Azure 资源的 Terraform 漂移