跳至主要内容

什么是 OpenTofu?

OpenTofu 是一种基础设施即代码工具,它允许您在人类可读的配置文件中定义云和本地资源,您可以对这些文件进行版本控制、重用和共享。然后,您可以使用一致的工作流程在整个生命周期中配置和管理所有基础设施。OpenTofu 可以管理低级组件(如计算、存储和网络资源),以及高级组件(如 DNS 条目和 SaaS 功能)。

OpenTofu 如何工作?

OpenTofu 通过其应用程序编程接口 (API) 在云平台和其他服务上创建和管理资源。提供商使 OpenTofu 能够使用具有可访问 API 的任何平台或服务。

OpenTofu creates and manages cloud platforms and services through their APIs

OpenTofu 社区已经编写了 **数千个提供商** 来管理许多不同类型的资源和服务。您可以在 公共 OpenTofu 注册表 中找到所有公开可用的提供商,包括 Amazon Web Services (AWS)、Azure、Google Cloud Platform (GCP)、Kubernetes、Helm、GitHub、Splunk、DataDog 等等。

OpenTofu 的核心工作流程包括三个阶段

  • **编写:** 您定义资源,这些资源可能跨多个云提供商和服务。例如,您可能创建配置以将应用程序部署到虚拟私有云 (VPC) 网络中的虚拟机上,其中包含安全组和负载均衡器。
  • **计划:** OpenTofu 创建一个执行计划,描述它将基于现有基础设施和您的配置创建、更新或销毁的基础设施。
  • **应用:** 经过批准后,OpenTofu 将按正确顺序执行提议的操作,尊重任何资源依赖关系。例如,如果您更新 VPC 的属性并更改该 VPC 中的虚拟机数量,OpenTofu 将在扩展虚拟机之前重新创建 VPC。

The OpenTofu workflow has three steps: Write, Plan, and Apply

为什么选择 OpenTofu?

管理任何基础设施

公共 OpenTofu 注册表 中查找您已经使用的许多平台和服务的提供商。您也可以使用 Terraform 插件 SDK 编写自己的提供商。OpenTofu 采用 不可变的基础设施方法,从而降低了升级或修改服务和基础设施的复杂性。

跟踪您的基础设施

OpenTofu 会生成一个计划,并在修改您的基础设施之前提示您进行批准。它还会在 状态文件 中跟踪您的实际基础设施,该文件充当您环境的真实来源。OpenTofu 使用状态文件来确定对您的基础设施进行的更改,以便它与您的配置相匹配。

自动化更改

OpenTofu 配置文件是声明式的,这意味着它们描述了您基础设施的最终状态。您不需要编写分步说明来创建资源,因为 OpenTofu 会处理底层逻辑。OpenTofu 会构建一个资源图来确定资源依赖关系,并并行创建或修改非依赖资源。这使得 OpenTofu 能够高效地配置资源。

标准化配置

OpenTofu 支持称为 模块 的可重复使用配置组件,这些组件定义了可配置的基础设施集合,从而节省时间并鼓励最佳实践。您可以使用 OpenTofu 注册表中的公开可用模块,或者编写自己的模块。

协作

由于您的配置是写在文件中的,您可以将其提交到版本控制系统 (VCS),并使用云后端在团队之间高效地管理 OpenTofu 工作流程。云后端在一致可靠的环境中运行 OpenTofu,并提供对共享状态和机密数据的安全访问、基于角色的访问控制、用于共享模块和提供商的私有注册表等等。

社区

我们欢迎社区提出问题、建议和贡献。