Terraform 输出多个子网 ID
Terraform Output multiple subnet ids
我是 terraform 的新手,我正在尝试学习和编写 TF 代码来自动化 Azure VM 部署。我试图将每个部分都作为模块(rg 除外)进行覆盖,而不是将其保存在单个 main.tf 文件中。
我正在创建一个内部有 3 个子网的 Vnet。
请找到我的子网模块代码。请帮我解决以下两点。
Subnet.tf
resource "azurerm_subnet" "SUBNETS" {
for_each=var.Subnetlist
name=each.value.name
address_prefixes=[each.value.address]
resource_group_name = var.resource_group_name
virtual_network_name = var.virtual_network_name
}
NIC.tf
resource "azurerm_network_interface" "NETWORKINTERFACE" {
for_each=var.niclist
name = each.value.name
location = var.location
resource_group_name = var.resource_group_name
ip_configuration {
name = "ipconfig1"
subnet_id =
private_ip_address_allocation = "Dynamic"
}
}
- 如何输出 subnet_ids(三个创建的子网)。
- 如何将这些 subnet_ids 传递给另一个模块(比如创建网络接口)
- 因为你的
azurerm_subnet.SUBNETS
是一张地图,因为使用了for_each
:
output "subnet_ids" {
value = values(azurerm_subnet.SUBNETS)[*].id
}
- 您将其作为任何其他变量传递:
module "myothermodule" {
source = "./modulepath"
subnets_ids = module.mysubnetmodule.subnet_ids
}
我是 terraform 的新手,我正在尝试学习和编写 TF 代码来自动化 Azure VM 部署。我试图将每个部分都作为模块(rg 除外)进行覆盖,而不是将其保存在单个 main.tf 文件中。
我正在创建一个内部有 3 个子网的 Vnet。 请找到我的子网模块代码。请帮我解决以下两点。
Subnet.tf
resource "azurerm_subnet" "SUBNETS" {
for_each=var.Subnetlist
name=each.value.name
address_prefixes=[each.value.address]
resource_group_name = var.resource_group_name
virtual_network_name = var.virtual_network_name
}
NIC.tf
resource "azurerm_network_interface" "NETWORKINTERFACE" {
for_each=var.niclist
name = each.value.name
location = var.location
resource_group_name = var.resource_group_name
ip_configuration {
name = "ipconfig1"
subnet_id =
private_ip_address_allocation = "Dynamic"
}
}
- 如何输出 subnet_ids(三个创建的子网)。
- 如何将这些 subnet_ids 传递给另一个模块(比如创建网络接口)
- 因为你的
azurerm_subnet.SUBNETS
是一张地图,因为使用了for_each
:
output "subnet_ids" {
value = values(azurerm_subnet.SUBNETS)[*].id
}
- 您将其作为任何其他变量传递:
module "myothermodule" {
source = "./modulepath"
subnets_ids = module.mysubnetmodule.subnet_ids
}