【发布时间】:2019-02-22 10:05:33
【问题描述】:
好的,所以我有三个.tf-files:main.tf 我将 azure 声明为提供者,resources.tf 我的所有资源都已被声明,variables.tf。
我使用variables.tf 来存储resources.tf 使用的密钥。
但是,我想使用存储在我的变量文件中的变量来填写后端范围内的字段,如下所示:
main.tf:
provider "azurerm" {
version = "=1.5.0"
}
terraform {
backend "azurerm" {
storage_account_name = "${var.sa_name}"
container_name = "${var.c_name}"
key = "${var.key}"
access_key = "${var.access_key}"
}
}
像这样存储在variables.tf 中的变量:
variable "sa_name" {
default = "myStorageAccount"
}
variable "c_name" {
default = "tfstate"
}
variable "key" {
default = "codelab.microsoft.tfstate"
}
variable "access_key" {
default = "weoghwoep489ug40gu ... "
}
我在运行terraform init时得到了这个:
terraform.backend:配置不能包含插值
Terraform 很早就加载了后端配置, 在可以初始化 Terraform 的核心之前。这是必要的 因为后端决定了该核心的行为。核心是 什么处理插值处理。因此,插值 不能用于后端配置。
如果您想参数化后端配置,我们建议 使用带有“-backend-config”标志的部分配置来 “地形初始化”。
有没有办法解决这个问题?我真的希望我的所有密钥/秘密都在同一个文件中......而不是我希望推送到 git 的主密钥。
【问题讨论】:
-
您在这里遇到的问题并不太清楚。您能否编辑您的问题以准确解释您在做什么(显示您运行的步骤/命令以及您编写的任何代码)以及什么对您不起作用(引发的错误或意外行为)?
-
当然,也许我的措辞令人困惑,实际上认为这个问题是众所周知的,并且有一个简单且众所周知的解决方案。马上修复,谢谢!
-
@ydaetskcoR 完成!
标签: terraform terraform-provider-azure