Значения переменных, упомянутых в variables.tf в Terraform через файл переменных среды .tfvars - PullRequest
0 голосов
/ 24 сентября 2018

Как передать значения переменных, упомянутых в variable.tf типа «список» или «карта».Есть ли ошибки в синтаксисе в файле input.tfvars, упомянутом ниже?

Цель состоит не в том, чтобы жестко кодировать какие-либо значения в файле variables.tf или main.tfTerraform.io документах я проверил, что значения могут быть предоставлены в этом формате.

Это с сайта:
Списки определены явно или неявно:

 # implicitly by using brackets [...]
 variable "cidrs" { default = [] }

 # explicitly
 variable "cidrs" { type = "list" }

Вы можете указать списки в файле terraform.tfvars:

 cidrs = [ "10.0.0.0/16", "10.1.0.0/16" ]

Теперь, когда я пытаюсь сделать

terraform plan -var-file=input.tfvars 

, он не может прочитать значения переменных из файла tfvars и выдает следующую ошибку:

Ошибка: корень модуля:
модуль vpc: обязательная переменная "vpccidr" не установлена ​​
модуль vpc: обязательная переменная "vpcname" не установлена ​​

Файл variables.tf выглядит следующим образом:

variable "vpccidr" { type = "list"}
variable "vpcname" { type = "list" }

Файл input.tfvars выглядит следующим образом:

vpccidr=[ "10.1.0.0/16", "10.2.0.0/16", "10.3.0.0/16" ]
vpcname=[ "vpc1", "vpc2", "vpc3" ]

Файл main.tf выглядит следующим образом:

module "vpc"{
  source = "modules/network/vpc"
}

Модуль VPC в modules/network имеет следующий файл конфигурации main.tf и файл переменной, упомянутый выше в variables.tf:

resource "aws_vpc" "customVpc" {
  count = "${length(var.vpccidr)}"
  cidr_block = "${element(var.vpccidr, count.index)}"
  tags {
    count = "${length(var.vpcname)}"
    Name = "${element(var.vpcname, count.index)}"
  }
}          

1 Ответ

0 голосов
/ 25 сентября 2018

Вам необходимо передать переменные в ваш модуль, т.е.

module "vpc"{
  source = "modules/network/vpc"

  vpccidr = "${var.vpccidr}"
  vpcname = "${var.vpcname}"
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...