我想从外部YAML文件或Hiera这样的数据库中将变量读入Terraform配置文件中,我如何做到这一点?例如:
provider "aws" {
region = hiera('virginia') # this should look up for virginia=us-east-1
}
resource "aws_instance" {
ami = hiera('production')
....
....
}基本上,它类似于我们如何使用hiera或YAML文件来查找木偶清单/信任。
发布于 2019-08-28 03:13:02
yamldecode函数可以用来读取Yaml文件作为terraform的输入并解析它以供使用。
假设test.yml文件如下所示
a: 1
b: 2
c: 3然后,下面的代码可以用来读取yaml文件
output "log" {
value = "${yamldecode(file("test.yml"))}"
}以解析从yaml文件中读取的特定值
output "log" {
value = "${yamldecode(file("test.yml"))["a"]}"
}重要:这可以在0.12或更高版本的terraform中获得,如果使用旧版本的terraform,并且仍然希望使用yaml文件,则使用terraform-提供者-yaml
发布于 2022-10-15 07:54:44
可以将yaml文件作为本地包括在内。
locals {
config = yamldecode(file("${path.module}/configfile.yml"))
}现在您可以从local.config调用所有变量,例如,变量project_name
local.config.project_name 发布于 2017-10-18 03:55:40
您必须将变量移动到terraform.tfvars或*.auto.tfvars文件中。
https://www.terraform.io/language/values/variables#variable-definitions-tfvars-files
若要持久化变量值,请在此文件中创建一个文件并分配变量。创建一个名为terraform.tfvars的文件,其内容如下: access_key = "foo“ secret_key = "bar“ 对于当前目录中所有与terraform.tfvars或*.auto.tfvars匹配的文件,Terraform会自动加载它们以填充变量。如果该文件名为其他文件,则可以直接使用-var-file标志来指定文件。这些文件的语法与Terraform配置文件相同。和Terraform配置文件一样,这些文件也可以是JSON。
https://stackoverflow.com/questions/46653464
复制相似问题