许可一变现有配置还能不能跑,OpenTofu 入门页怎么介绍自己?

配置已经能进仓库,流水线也围着同一套命令转。发行版的许可或治理规则一变,现有文件还能不能用、工具是不是已经跟某一家绑死,就会被重新拿出来问。还想走基础设施即代码,又不把身家押在单一发行版上时,会去翻 OpenTofu 官方怎么介绍自己。

入门页 What is OpenTofu 的定位很直接:OpenTofu 是基础设施即代码工具,用人类可读的配置文件描述云上和本地的资源,这些文件可以版本管理、复用和分享,再用同一套工作流贯穿整段生命周期。管理范围从计算、存储、网络,到 DNS 记录和各类 SaaS 功能。工作方式是通过各平台的 API,由 provider 对接几乎任何能访问的接口。公开 Registry 上已经有社区写好的大量此类插件。核心工作流分成三截。Write,把资源写进配置。Plan,根据现有基础设施和配置生成将要创建、更新或销毁的执行计划。Apply,得到确认后再按依赖顺序执行。状态文件被写成环境的真实来源,计划在改动前会先征求同意。配置是声明式的,描述目标状态而不是逐步操作。模块用来复用一组可配置的基础设施,既可以引用公开 Registry 里的模块,也可以自己写。入门页还提到,配置写成文件之后可以提交进版本库,并用 cloud backend 在团队里共享状态、权限和私有 Registry。OpenTofu 采取不可变的基础设施思路,用来降低升级和修改时的复杂度。这些是工作流心智,并不等于必须绑某一家托管产品。

命令行入口在 Basic CLI Features 写得很清楚:CLI 就是 tofu 这个命令,常见子命令包括 tofu init、tofu plan、tofu apply。官方还提到,根模块目录里会找 .tf 或 .tofu 文件。安装渠道在 Installing OpenTofu 按操作系统和包管理器分开列出,这里不展开某一条安装命令。

分叉背景要以 OpenTofu Manifesto 为准。宣言回顾:Terraform 曾以 MPL 开源,后来许可改为 BUSL。在社区按宣言去沟通之后,他们把当时仍是开源许可的代码分叉出来,项目交给 Linux Foundation 维护,名字就是 OpenTofu。宣言里把「真正开源、社区驱动、中立、可组合,以及向后兼容」写成自己要守住的几条。FAQ 也明确说这是一次分叉,并写到由 Linux Foundation 托管。官网首页 则把兼容目标收成一句:作为 drop-in replacement,尽量保住已有工作流和配置。各文档对状态文件能接到哪一版的表述并不完全整齐,这里不把数字写死。本文只对齐定位和使用心智,不写去碰官方托管云的旁路做法。

对已经把配置推进仓库的团队来说,要对齐的是这套 Write / Plan / Apply 和状态文件心智,以及 CLI 换成 tofu 之后,命令还落不落在同一套流程上。公开 Registry 与安装页都按官方渠道走即可,不必为了「兼容」去改官方云控制面或绕过厂商鉴权。许可证和治理归属看宣言与 FAQ,具体迁移步骤看官方文档当时怎么写,不要靠口头传闻锁定版本承诺。

仓库里的基础设施配置,现在是跟某一家发行版的命令锁在一起,还是已经按「同一套声明式文件、可替换的 CLI」在组织?