我们使用 terraform 在 AWS 中启动我们的基础设施,我们有 3 个独立的环境:Dev、Stage 和 Prod
Dev :需要 - public、private1a、privatedb 和 privatedb2 子网 Stage & Prod :需要 - public、private_1a、private_1b、privatedb 和 privatedb2 子网
我有 main.tf、变量、dev.tfvars、stage.tfvars 和 prod.tfvars。我试图了解如何使用当前用于开发环境的 main.tf 文件,并使用 .tfvars 文件创建阶段和产品所需的资源。
terraform apply -var-file=dev.tfvars
terraform apply -var-file=stage.tfvars (除了其他子网之外,这还应该创建子网 private_1b)
terraform apply -var-file=prod.tfvars (除了其他子网之外,这还应该创建子网 private_1b)
如果您需要进一步说明,请告诉我。
谢谢,
我正在尝试从一个资源块创建多个子网,但出现以下错误
错误:aws_subnet.private:cidr_block必须是单个值,而不是列表
主文件
resource "aws_subnet" "private" {
vpc_id = "${aws_vpc.vpcname.id}"
cidr_block = "${var.private_subnet}"
availability_zone = "${data.aws_availability_zones.available.names[count.index]}"
map_public_ip_on_launch = false
tags {
Name = "${var.private}"
Environment = "${terraform.workspace}"
}
}
Run Code Online (Sandbox Code Playgroud)
变量
variable "private_subnet" {
type = "list"
default = []
}
Run Code Online (Sandbox Code Playgroud)
开发者
private_subnet = ["10.0.2.0/24", "10.0.3.0/24"]
Run Code Online (Sandbox Code Playgroud)