Хорошо, у меня есть три .tf
-файла: main.tf
, где я указываю лазурь в качестве провайдера, 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» для
"terraform init".
Есть ли способ решить это? Я действительно хочу, чтобы все мои ключи / секреты были в одном файле ... а не один ключ в главном, который я предпочитаю нажимать для git.