Я пишу сценарий terraform для создания ASG на AWS. Я попытался создать его с помощью terraform module
, чтобы получить более удобный для повторного использования код. Проблема в том, что когда я хочу использовать переменную из common-variable.tfvars
в tf-файлах модуля, он постоянно говорит, что она не определена и должна быть объявлена. Таким образом, модуль будет менее пригоден для повторного использования.
Вот пример
root
|
|___project 1
| |_____ main.tf
| |_____ common-variable.tfvars
|
|___ modules
|
|_____ a-module
|______ main.tf
Итак, внутри проекта 1 common-variable.tfvars, в основном это выглядит так
variable "a" {
description = "a variable"
default = "a"
}
variable "b" {
description = "a variable"
default = "b"
}
Внутри a-module / main.tf выглядит так
variable "name" {}
resource "aws_autoscaling_group" "asg-1" {
name = "${var.a}"
...
}
Когда я выполняю terraform init, он говорит
resource 'aws_autoscaling_group.asg-1' config: unknown variable
referenced: 'a'. define it with 'variable' blocks
Любая идея, как я могу использовать эту общую переменную из основного модуля .tf?
Обновлять
Мне удалось пройти terraform init
, повторно объявив переменную в каждом модуле. Однако, когда я запускаю terraform plan
, появляется такая ошибка invalid value "common-variable.tfvars" for flag -var-file: multiple map declarations not supported for variables