Я пытаюсь воспроизвести модель, описанную в главе 6 «Terraform Up and Running», где репозиторий содержит модули (файлы .tf), а другой содержит только файлы .tfvars, которые ссылаются на модули с аргументом источника..
Этот код, помещенный в terraform.tfvars, не работает, модуль не загружен, terrafrom сообщает об изменениях (ничего не нужно применять).
source = "github.com/terraform-aws-modules/terraform-aws-vpc.git?ref=v1.64.0"
name = "simple-example"
cidr = "10.0.0.0/16"
azs = ["eu-west-1a", "eu-west-1b", "eu-west-1c"]
private_subnets = ["10.0.1.0/24", "10.0.2.0/24", "10.0.3.0/24"]
public_subnets = ["10.0.101.0/24", "10.0.102.0/24", "10.0.103.0/24"]
assign_generated_ipv6_cidr_block = true
enable_nat_gateway = true
single_nat_gateway = true
public_subnet_tags = {
Name = "overridden-name-public"
}
tags = {
Owner = "user"
Environment = "dev"
}
vpc_tags = {
Name = "vpc-name"
}
Когда я вставляю то же самое в a.TF-файл внутри оператора «module», он работает, terraform init извлечет модуль, а apply создаст ресурсы.Но когда я просто помещаю его в файл .tfvars, как предложено в книге, он не извлекает модуль и не создает никаких ресурсов.
Интересно, если я неправильно понимаю пример из книги.Я нахожу идею иметь модули в одном месте, а переменные в другом, очень элегантно, но я изо всех сил пытаюсь заставить это работать.