跳至主要内容

帮助我们测试 OpenTofu 1.7.0-alpha1

Help us test OpenTofu 1.7.0-alpha1

OpenTofu 社区,大家好!在过去的几个月里,我们一直在努力为您带来新的功能,例如 **状态加密** 和 **移除块**,以及兼容性改进。几天前,我们发布了这些改进的第一个预览版本,作为 OpenTofu 1.7.0-alpha1

我们尽一切努力确保新的 alpha 版本不会破坏任何东西,我们需要您的帮助来测试此版本。如果您有一个 **非生产** 环境,您愿意在其中测试任何新功能,请尝试一下并向我们 使用 GitHub 问题反馈,即使只是告诉我们一切顺利。

这篇博文将介绍如何下载新的预览版本,并详细介绍每个新功能的工作原理。

下载 alpha 版本

alpha 版本仅在 GitHub 发行页面 上提供。请选择适合您平台的文件。以下是一些快速链接

平台/设备下载链接
台式 Windows 计算机
(64 位)
tofu_1.7.0-alpha1_windows_amd64.zip
MacOS
(Macbook M1 或更高版本;ARM64)
tofu_1.7.0-alpha1_darwin_arm64.tar.gz
MacOS
(Macbook M1 之前版本或更低版本;AMD64)
tofu_1.7.0-alpha1_darwin_amd64.tar.gz
Intel/AMD Linux 计算机或服务器
(AMD64)
tofu_1.7.0-alpha1_linux_amd64.tar.gz
基于 ARM 的 Linux 计算机

Raspberry Pi 3 或更高版本

(ARM64)
tofu_1.7.0-alpha1_linux_arm64.tar.gz

对于上面的版本,请解压缩存档,您应该在里面找到 tofu 二进制文件。您也可以使用 独立安装程序 下载带有签名验证的版本。

状态加密

状态加密是此版本的主要功能之一。我们为此功能准备了 完整文档

要测试此功能,请备份您的状态文件,然后添加以下配置

代码块
terraform {
encryption {
key_provider "pbkdf2" "my_passphrase" {
passphrase = "" # Enter a passphrase here
}

method "aes_gcm" "my_method" {
keys = key_provider.pbkdf2.my_passphrase
}

state {
method = method.aes_gcm.my_method
fallback{} # Remove after the migration is complete.
}
}
}

您可以像这样从加密状态文件迁移到未加密状态文件

代码块
terraform {
encryption {
key_provider "pbkdf2" "my_passphrase" {
passphrase = "" # Enter a passphrase here
}

method "aes_gcm" "my_method" {
keys = key_provider.pbkdf2.my_passphrase
}

state {
# Leave this block empty apart from the fallback block.
fallback{
method = method.aes_gcm.my_method
}
}
}
}

如果您有权访问 AWS 帐户,您还可以测试 AWS 密钥管理服务 密钥提供程序。(请注意 AWS KMS 定价。)

移除块

移除块允许您从状态文件中移除资源,但将其保留在基础架构上。我们为此功能准备了 完整文档。您可以先创建一个资源来测试它

代码块
resource "local_file" "test" {
content = "Hello world!"
filename = "test.txt"
}

应用后,您可以将资源替换为移除块

代码块
removed {
from = local_file.test
}

在下一次应用后,您将看到 local_file.test 资源不再存在于您的状态文件中,但 test.txt 文件应该仍然存在于您的磁盘上。现在您可以安全地移除 removed 块。

内置函数更改

此版本还包含一些新的函数以及对现有函数的更改

CLI 更改

CLI 也有一些更改

  • tofu plan 现在有一个 -concise 标志来缩短计划输出。
  • tofu console 现在可以在 Solaris 和 AIX 上使用。
  • CLI 现在支持 XDG 目录规范。
  • state liststate lsstate mvstate movestate rmstate remove 的别名。

提供反馈

感谢您抽出时间测试此预览版本。如果您有任何反馈,请使用GitHub 问题或在OpenTofu Slack上与我们聊天。