跳到主要内容
版本:v0.5

使用 OpenTofu 进行部署

本教程演示如何使用 Walrus 和 OpenTofu 来部署资源。

为什么使用 OpenTofu?

自 v1.6.0 起,Hashicorp 将 Terraform 许可证从 MPL 切换为 BUSL,OpenTofu 于 2023 年 8 月 25 日从 MPL 许可的 Terraform 分叉,并在 Linux 基金会中维护以保持开源。

简而言之,OpenTofu 是 Terraform 的轻松替代品。

切换 OpenTofu

默认情况下,Walrus 使用 MPL 许可的最新 Terraform 版本 v1.5.7 来完成资源部署。 为了减少每次部署时下载Terraform Provider的时间成本,我们采用了在原始Hashicorp/Terraform镜像的基础上修改的容器镜像,其中包含了一些常用且必需的Terraform Provider。 如果您对此感兴趣,可以浏览 seal-io/terraform-deployer 了解更多信息。

让我们回到如何切换 OpenTofu。 假设您已经完成了我们的快速入门,现在您可以导航到 系统设置 并选择 部署 选项卡,如下所示。

list-setting

You can replace the Deployer Image to our OpenTofu Deployer, for example, input sealio/opentofu-deployer:v1.6.0-seal.1.

您可以将 部署器镜像 替换为我们的 OpenTofu Deployer,例如,输入 sealio/opentofu-deployer:v1.6.0-seal.1,第一个官宣的 OpenTofu 版本。

configure-deployer

部署资源

现在,您可以回到默认Project下的本地环境,并享受OpenTofu了。

您可以选择资源并执行(重新)部署,如图所示。

redeploy

我们来看看部署日志。

view-logs

构建特定的 OpenTofu 版本

如果您需要使用特定版本的 OpenTofu,您可以按照此 Dockerfile 构建您自己的特定版本的 OpenTofu Deployer。

如何避免版本管理焦虑?

正如我们上面提到的,默认的 OpenTofu Deployer 和 Terraform Deployer 一样,它嵌入了一些常用且必需的 Terraform Provider。这些电池帮助 Walrus 快速完成部署。

但凡事都有两个方面,隐含的镜像Provider是版本锁定的。 这意味着如果本地版本无法满足某个版本(可能是范围)的要求,我们将从 OpenTofu 收到错误。

因此,Walrus 提供了 部署器加速地址设置,允许您配置通过网络从附近的服务代理下载 Terraform/OpenTofu Provider。

configure-network-mirror

尝试 Hermit Crab

默认情况下,Walrus 会提供一个名为 Hermit Crab 的 Provider 代理下载服务,您只需从此处复制 https://walrus-mirror-hermitcrab.walrus-system/v1/providers/ 并粘贴即可。

使用Hermit Crab,下载新版本包会慢一点,但稍后你会得到与隐含镜像相同的效率,并且无需担心版本变化。

最后,欢迎使用 OpenTofu,这会是一个更积极的社区。