使用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' _
广告
将在 10 秒后关闭
bannerAds