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 定价。)
OpenTofu 核心开发人员感谢 Stephan Bartels (Interhyp) 和 Alex Scheel 对此功能做出的大量工作。
移除块
移除块允许您从状态文件中移除资源,但将其保留在基础架构上。我们为此功能准备了 完整文档。您可以先创建一个资源来测试它
resource "local_file" "test" {
content = "Hello world!"
filename = "test.txt"
}
应用后,您可以将资源替换为移除块
removed {
from = local_file.test
}
在下一次应用后,您将看到 local_file.test 资源不再存在于您的状态文件中,但 test.txt
文件应该仍然存在于您的磁盘上。现在您可以安全地移除 removed
块。
内置函数更改
此版本还包含一些新的函数以及对现有函数的更改
- 新函数:templatestring
- 新函数:base64gunzip
- 新函数:cidrcontains
- 新函数:urldecode
- 新函数:issensitive
- nonsensitive 在应用的值不敏感时不再返回错误。
- templatefile 现在支持深度为 1024 的递归。
CLI 更改
CLI 也有一些更改
tofu plan
现在有一个-concise
标志来缩短计划输出。tofu console
现在可以在 Solaris 和 AIX 上使用。- CLI 现在支持 XDG 目录规范。
state list
→state ls
、state mv
→state move
、state rm
→state remove
的别名。
提供反馈
感谢您抽出时间测试此预览版本。如果您有任何反馈,请使用GitHub 问题或在OpenTofu Slack上与我们聊天。