使用tfenv向导terraform版本号的.terraform-version文件生成tf文件的required_version
背景的解释是指一个事物或事件发生的背景或环境条件。
通过使用tfenv和.terraform-version文件的组合,可以使用指定版本的Terraform。
我需要手动创建 .terraform-version 文件,但我希望可以更轻松地创建它。
應對
使用 Terraform 的辅助库 terraform-config-inspect 并编写 Go 代码。
在 terraform-config-inspect 工具的 tfconfig 中,有一个名为 LoadModule 的函数,调用它就可以解析配置文件。
import "github.com/hashicorp/terraform-config-inspect/tfconfig"
module, _ := tfconfig.LoadModule(".")
constraint := module.RequiredCore[0]
模块的结构如下,仅仅包含这些,限制条件将会有类似于“= 1.1.0”的版本约束字符串。
你可以使用正则表达式提取版本部分,然后将其打印到标准输出,最后将其重定向到文件中。
提供多个选项来用中文对以下内容进行泛化 :
tfvergen
将上述内容转化成二进制。
$ cat config.tf
terraform {
required_version = "= 1.0.7"
}
: (omitted)
在当前目录中存在类似 tf 文件的情况下执行二进制文件,可以生成由 required_version 指定的 .terraform-version。
$ tfvergen > .terraform-version
$ cat .terraform-version
1.0.7
执行以下一行命令后,应该可以针对 config.tf 文件位于当前目录及其子目录中的文件夹递归地创建 .terraform-version 文件。
$ find . -type f -name 'config.tf' | xargs -L1 bash -c 'cd $(dirname $1) && tfvergen > .terraform-version' _