常见问题
什么是 OpenTofu?
OpenTofu 是一种基础设施即代码工具,允许您在人类可读的配置文件中定义云和本地资源,您可以对这些文件进行版本控制、重用和共享。然后,您可以使用一致的工作流程在整个生命周期内置备和管理所有基础设施。OpenTofu 可以管理计算、存储和网络资源等低级组件,以及 DNS 条目和 SaaS 功能等高级组件。
为什么创建 OpenTofu?
OpenTofu 是 Terraform 的一个分支,由 Gruntwork、Spacelift、Harness、Env0、Scalr 等公司发起,以应对 HashiCorp 将许可证从开源许可证切换到 BUSL 的举措。该项目拥有众多支持者,所有支持者都列在 此处。
HashiCorp 团队提出的 BUSL 和附加使用授权存在歧义,这使得使用 Terraform 的公司、供应商和开发人员难以确定其行为是否会被解释为超出允许的使用范围。
HashiCorp 的常见问题解答目前为最终用户和系统集成商提供了一些安心,但许可条款对未来使用的影响尚不清楚。该公司对“竞争性”或“嵌入”的定义可能会发生变化,或者许可证可能会进一步修改为封闭源代码,这使得 Terraform 用户不确定。
我们坚信 Terraform 应该保持开源,因为它是一个许多公司使用的项目,并且许多贡献者都让 Terraform 成为今天的样子。如果没有社区围绕它构建许多支持项目的努力,Terraform 的成功是不可能的。
OpenTofu 和 Terraform 之间有什么区别?
在技术层面上,OpenTofu 1.6.x 在功能方面与 Terraform 1.6.x 非常相似。将来,这两个项目的特性集将出现分歧。
另一个主要区别是 OpenTofu 是开源的,其目标是以协作的方式驱动,没有一家公司能够决定路线图。
为什么您应该使用 OpenTofu 而不是 Terraform?
个人使用
初步印象表明,您可以将 OpenTofu 或 Terraform 用于个人用途,因为 BUSL 许可证对非商业用途没有限制。随着 Terraform 生态系统变得越来越不稳定,这种情况可能会发生变化,并且可能会切换到其他许可证。熟悉 Terraform 的用户在将 OpenTofu 用于个人用途时不会遇到任何问题,因此至少在开始时不会出现任何知识差距。
顾问
顾问应为其客户提供最符合其预算的最佳解决方案。OpenTofu 将与 Terraform 保持一致,并且该项目的核心目标之一是倾听社区的问题,因此建议使用一个始终保持开源的项目是有意义的。任何在过去八年中使用过 Terraform 的人都可能遇到过一些需要花费时间才能解决的问题。参与 OpenTofu 开发的大型社区意味着这种情况将不再发生。
公司
公司将面临更多困难。切换到新项目存在风险,但与使用未经警告即更改许可证的项目相比,风险要小得多。将 OpenTofu 交付给 Linux 基金会可以最大程度地降低这种风险,并且 OpenTofu 的目标是为将来的版本保持与 Terraform 的功能一致性,从而降低了技术风险。
OpenTofu 是否与未来的 Terraform 版本兼容?
社区将决定 OpenTofu 将具备哪些功能。一些期待已久的 Terraform 功能将很快公开提供。
如果您在 OpenTofu 中缺少 Terraform 中可用的功能,请随时创建问题。
我可以将 OpenTofu 作为 Terraform 的直接替代品吗?OpenTofu 是否适合生产环境?
目前,OpenTofu 是 Terraform 的直接替代品,因为它与 Terraform 1.5.x 版本和 1.6.x 版本的大部分功能兼容。您无需对代码进行任何更改即可确保兼容性。
OpenTofu 适用于任何生产用例,没有例外。
有关更多信息,请参阅 我们的迁移指南。
OpenTofu 是否可以使用我现有的状态文件?
OpenTofu 可以使用使用 Terraform 1.5.x 版本创建的状态文件。
OpenTofu 是否与 Terraform 使用的所有提供程序兼容?
OpenTofu 不会拥有自己的提供程序。Terraform 提供程序没有更改其许可证,并且这种更改的可能性几乎为零。OpenTofu 与当前的 Terraform 提供程序兼容,但它使用单独的注册表。
如何在 OpenTofu 中做出新的功能、错误修复和其他开发决策?
核心团队及其技术负责人确定要处理的最重要的功能和错误修复,而指导委员会则对重大更改做出决策。
所有这些决策都以社区反馈和公开讨论为指导。