terraform init
初始化成功,下面是我的main.tf
############################################################################
# VARIABLES
#############################################################################
variable "resource_group_name" {
type = string
}
variable "location" {
type = string
default = "eastus"
}
variable "vnet_cidr_range" {
type = string
default = "10.0.0.0/16"
}
variable "subnet_prefixes" {
type = list(string)
default = ["10.0.0.0/24", "10.0.1.0/24"]
}
variable "subnet_names" {
type = list(string)
default = ["web", "database"]
}
#############################################################################
# PROVIDERS
#############################################################################
provider "azurerm" {
}
#############################################################################
# RESOURCES
#############################################################################
module "vnet-main" {
source = "Azure/vnet/azurerm"
resource_group_name = var.resource_group_name
location = var.location
vnet_name = var.resource_group_name
address_space = var.vnet_cidr_range
subnet_prefixes = var.subnet_prefixes
subnet_names = var.subnet_names
nsg_ids = {}
tags = {
environment = "dev"
costcenter = "it"
}
}
#############################################################################
# OUTPUTS
#############################################################################
output "vnet_id" {
value = module.vnet-main.vnet_id
}
当我运行terraform plan -var resource_group_name=vnet-main -out vnet.tfplan
得到以下警告时:
警告:仅插值表达式已弃用
在 .terraform/modules/vnet-main/Azure-terraform-azurerm-vnet-e0b9155/main.tf 第 3 行,在资源“azurerm_resource_group”“vnet”中:3:name
=“${var.resource_group_name}”警告:引用类型约束已弃用
在 .terraform/modules/vnet-main/Azure-terraform-azurerm-vnet-e0b9155/variables.tf 第 39 行,在变量“nsg_ids”中:39:type = “map”
终于得到以下错误:
错误:“功能”:未设置必填字段
根据下面 stackoverflow 文章中提到的建议,如果我运行升级命令 ( terraform 0.12upgrade
) 升级到 0.12,则出现以下错误:
错误:配置文件中的语法错误
在 main.tf 第 6 行,在变量“resource_group_name”中:6:type = string
解析时出错:在 6:11:未知令牌:6:11 IDENT 字符串