【问题标题】:How to get Terraform version name inside TF files?如何在 TF 文件中获取 Terraform 版本名称?
【发布时间】:2022-12-18 07:31:09
【问题描述】:

我想在几个地方记录用于构建系统的 Terraform 版本(例如标签或生成的代码文件)。

怎么可能做这样的事情:

locals {
    tags = {
        terraform_version = # what goes in here?
    }
}

【问题讨论】:

  • 那么,应该在terraform 块中指定版本。此外,它存在于状态文件中。
  • 您必须手动添加它。 TF 中没有任何内置变量可以自动为您提供 TF 版本。

标签: terraform


【解决方案1】:

如果您想在标签中包含 Terraform 的版本,这是完全合法的做法,您可以使用 null_resource 获取版本,将其写入文件,然后将其拉入标签:

locals {
  tags = {
    terraform_version = data.local_file.terraform_version.content
  }
}

resource "null_resource" "get_terraform_version" {
  triggers = { always_run = "${timestamp()}" }
  provisioner "local-exec" {
    command = "echo terraform --version | sed 1q >> ${path.module}/terraform_version.txt"
  }
}

data "local_file" "terraform_version" {
  filename   = "${path.module}/terraform_version.txt"
  depends_on = [null_resource.get_terraform_version]
}

然后你可能想要将 terraform_version.txt 添加到你的 .gitignore 文件中。

【讨论】:

    【解决方案2】:

    锁定文件用于确保 TF 版本保持一致。将其添加到版本控制中,您将始终知道使用了哪个版本。

    https://www.terraform.io/language/files/dependency-lock

    【讨论】:

      猜你喜欢
      • 2019-07-30
      • 2023-03-19
      • 1970-01-01
      • 1970-01-01
      • 2021-06-30
      • 2022-07-23
      • 2012-05-21
      • 1970-01-01
      • 2019-05-16
      相关资源
      最近更新 更多