我正在尝试复制“ Terraform Up and Running”第6章中描述的模型,其中存储库包含模块(.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"
}
当我将其粘贴到“模块”语句中的.tf文件中时,它起作用了,terraform init将获取该模块,并应用将创建资源。但是,当我按照书中的建议将其简单地放在.tfvars文件中时,它不会获取模块,也不会创建任何资源。
想知道我是否误解了本书中的示例。我发现将模块放在一个位置,将变量放在另一个位置的想法非常优雅,但是我很难使它起作用。