azure - 无法通过 -var-file 传递 azurerm_subnet 资源组
问题描述
我想运行 terraform plan -var-file -out 然后应用该计划,但出现以下错误。
下面是我的main.tf、variable.tf和 networking.tfvars 文件:
###### Resource Group ##############
resource "azurerm_resource_group" "resourcegroupname" {
name = "${var.resourcegrouprefix}-RG"
location = "${var.location}"
}
###### VNET ##############
resource "azurerm_virtual_network" "vnet" {
name = "${var.vnet-prefix}-vnet"
resource_group_name = "${azurerm_resource_group.resourcegroupname.name}"
location = "${azurerm_resource_group.resourcegroupname.location}"
address_space = "${var.vnetcidr}"
}
# address_space = ["10.0.0.0/20"]
###### Subnets ##############
resource "azurerm_subnet" "subnet1" {
name = "${var.subnet1-prefix}"
virtual_network_name = "${azurerm_virtual_network.vnet.name}"
resource_group_name = "${azurerm_resource_group.resourcegroupname.name}"
address_space = "${var.subnet1cidr}"
}
resource "azurerm_subnet" "subnet2" {
name = "${var.subnet2-prefix}"
virtual_network_name = "${azurerm_virtual_network.vnet.name}"
resource_group_name = "${azurerm_resource_group.resourcegroupname.name}"
address_space = "${var.subnet2cidr}"
}
resource "azurerm_subnet" "subnet3" {
name = "${var.subnet3-prefix}"
virtual_network_name = "${azurerm_virtual_network.vnet.name}"
resource_group_name = "${azurerm_resource_group.resourcegroupname.name}"
address_space = "${var.subnet3cidr}"
变量文件
variable "resourcegrouprefix" {
description = "The prefix used for all resources in VNET RG"
default = ""
}
variable "vnet-prefix" {
description = "The prefix used for VNET resource"
default = ""
}
variable "vnetcidr" {
default = ""
}
variable "subnet1cidr" {
default = ""
}
variable "subnet2cidr" {
default = ""
}
variable "subnet3cidr" {
default = ""
}
网络.tfvars
resourcegrouprefix = "networking"
vnet-prefix = "networking"
vnetcidr = "10.0.0.0/20"
subnet1-prefix = "untrust"
subnet2-prefix = "trust"
subnet3-prefix = "mgmt"
subnet1cidr = "10.0.0.0/24"
subnet2cidr = "10.0.1.0/24"
subnet3cidr = "10.0.2.0/24"
我试图执行的命令:
terraform plan -var-file="networking.tfvars" -out="networkingplan.out"
错误信息:
azurerm_subnet.subnet1:“address_prefix”:未设置必填字段 azurerm_subnet.subnet1::无效或未知键:address_space azurerm_subnet.subnet2:“address_prefix”:未设置必填字段 azurerm_subnet.subnet2::无效或未知键:address_space azurerm_subnet。 subnet3:“address_prefix”:未设置必填字段 azurerm_subnet.subnet3::无效或未知键:address_space azurerm_subnet.subnet4:“address_prefix”:未设置必填字段 azurerm_subnet.subnet4::无效或未知键:address_space azurerm_subnet.subnet5: “address_prefix”:未设置必填字段 azurerm_subnet.subnet5::无效或未知键:address_space azurerm_subnet.subnet6:“address_prefix”:未设置必填字段 azurerm_subnet.subnet6::无效或未知键:address_space azurerm_virtual_network.vnet: address_space: 应该是一个列表
解决方案
修复了错误信息
###### Resource Group ##############
resource "azurerm_resource_group" "resourcegroupname" {
name = "${var.resourcegrouprefix}-RG"
location = "${var.location}"
}
###### VNET ##############
resource "azurerm_virtual_network" "vnet" {
name = "${var.vnet-prefix}-vnet"
resource_group_name = "${azurerm_resource_group.resourcegroupname.name}"
location = "${azurerm_resource_group.resourcegroupname.location}"
address_space = ["${var.vnetcidr}"]
}
# address_space = ["10.0.0.0/20"]
###### Subnets ##############
resource "azurerm_subnet" "subnet1" {
name = "${var.subnet1-prefix}"
virtual_network_name = "${azurerm_virtual_network.vnet.name}"
resource_group_name = "${azurerm_resource_group.resourcegroupname.name}"
address_prefix = "${var.subnet1cidr}"
}
resource "azurerm_subnet" "subnet2" {
name = "${var.subnet2-prefix}"
virtual_network_name = "${azurerm_virtual_network.vnet.name}"
resource_group_name = "${azurerm_resource_group.resourcegroupname.name}"
address_prefix = "${var.subnet2cidr}"
}
resource "azurerm_subnet" "subnet3" {
name = "${var.subnet3-prefix}"
virtual_network_name = "${azurerm_virtual_network.vnet.name}"
resource_group_name = "${azurerm_resource_group.resourcegroupname.name}"
address_prefix = "${var.subnet3cidr}"
}
推荐阅读
- typescript - eslinting 问题和我的打字稿反应应用程序正在崩溃
- azure-devops - 在 Azure DevOps 中捕获每个拉取请求的提交计数
- php - 单击href时如何在php中保留变量的值?
- google-maps - Jasper 报告 - 将 Google 地图导出为 PDF 时的标记限制
- ios - iOS 13.5.1 和 UIButton 渐变
- windows - Bash 脚本无法运行 - Word 意外和意外标记
- java - 在 JAVA 中使用 Regex 进行子序列匹配
- three.js - 当前如何在three.js场景中获取相机的旋转?
- linux - 用于在 Web 应用程序上显示状态的 Docker 状态 API
- swiftui - SWIFTUI - 选择器视图触摸/可滚动区域即使在使用 clipped() 后仍然超出框架