Terraform
什么是 Terraform?
Terraform 是一种基础设施即代码工具,可让您安全高效地构建、更改和版本控制云和本地资源。
HashiCorp Terraform 是一种基础设施即代码工具,可让您以人类可读的配置文件定义云和本地资源,这些资源可以进行版本控制、重用和共享。然后,您可以使用一致的工作流程来配置和管理整个基础设施生命周期中的所有基础设施。Terraform 可以管理低级组件(如计算、存储和网络资源),以及高级组件(如 DNS 条目和 SaaS 功能)。
动手实践:尝试“入门”教程,开始在流行的云提供商上管理基础设施:Amazon Web Services、Azure、Google Cloud Platform、Oracle Cloud Infrastructure和 Docker。
Terraform 的工作原理?
Terraform 通过其应用程序编程接口 (API) 在云平台和其他服务上创建和管理资源。提供程序使 Terraform 能够使用具有可访问 API 的几乎任何平台或服务。

HashiCorp 和 Terraform 社区已经编写了 数千个提供程序,用于管理许多不同类型的资源和服务。您可以在 Terraform Registry 上找到所有公开可用的提供程序,包括 Amazon Web Services (AWS)、Azure、Google Cloud Platform (GCP)、Kubernetes、Helm、GitHub、Splunk、DataDog 以及更多。
Terraform 的核心工作流程包含三个阶段
- 编写: 您定义资源,这些资源可能分布在多个云提供商和服务中。例如,您可以创建一个配置来在虚拟私有云 (VPC) 网络中的虚拟机上部署应用程序,并配置安全组和负载均衡器。
- 计划: Terraform 创建一个执行计划,描述它将根据现有基础设施和您的配置来创建、更新或销毁的基础设施。
- 应用: 在获得批准后,Terraform 将按正确的顺序执行建议的操作,并尊重任何资源依赖关系。例如,如果您更新 VPC 的属性并更改 VPC 中虚拟机的数量,Terraform 将在扩展虚拟机之前重新创建 VPC。

为什么选择 Terraform?
HashiCorp 联合创始人兼首席技术官 Armon Dadgar 解释了 Terraform 如何解决基础设施挑战。
管理任何基础设施
在 Terraform Registry 中找到许多您已经使用的平台和服务的提供程序。您也可以 编写您自己的。Terraform 采用 不可变基础设施方法,降低了升级或修改服务和基础设施的复杂性。
跟踪您的基础设施
Terraform 生成一个计划并提示您批准后再修改您的基础设施。它还会跟踪您在 状态文件 中跟踪您的实际基础设施,该文件充当您环境的事实来源。Terraform 使用状态文件来确定要对您的基础设施进行哪些更改,以便使其与您的配置匹配。
自动化更改
Terraform 配置文件是声明性的,这意味着它们描述了基础设施的最终状态。您无需编写逐步的说明来创建资源,因为 Terraform 会处理底层的逻辑。Terraform 构建资源图来确定资源依赖关系,并并行创建或修改非依赖资源。这使得 Terraform 能够高效地配置资源。
标准化配置
Terraform 支持可重用的配置组件,称为 模块,这些模块定义了可配置的基础设施集合,从而节省时间并鼓励最佳实践。 您可以使用 Terraform Registry 中提供的公共模块,或编写自己的模块。
协作
由于您的配置是写入文件的,您可以将其提交到版本控制系统 (VCS),并使用 HCP Terraform 来高效管理团队中的 Terraform 工作流程。HCP Terraform 在一致且可靠的环境中运行 Terraform,并提供对共享状态和密钥数据的安全访问、基于角色的访问控制、用于共享模块和提供程序的私有注册表等功能。
提示: 了解更多关于 Terraform 用例 和 Terraform 与替代方案的比较。
社区
我们欢迎社区提出的问题、建议和贡献。
- 在 HashiCorp Discuss 上提问。
- 阅读我们的 贡献指南。
- 提交问题报告错误和功能请求。