azure - Vnet 对等互连在 azure 中未被删除

标签 azure terraform terraform-provider-azure vnet

我正在尝试使用 terraform 在 azure 中创建/删除 vnet 对等连接。为了提供一些上下文,有两个 vnet - A 和 B,在两个不同的订阅下,但在同一 AD 中,我可以访问这两个网络。 Vnet A 是静态的,vnetB 是按需创建的。

我可以通过从 vnet B 启动来创建对等互连。但是当我从 Vnet B 删除对等互连并删除 vNet B 的整个资源组并重新创建资源组和对等互连时,它会显示 -

Error: Cannot create or update peering vnetB. Virtual networks -vnetB and vnetA cannot be peered because address space of the first virtual network overlaps with address space of vnet already peered with the second virtual network. Overlapping address prefixes: 10.2.65.0/25.

我可以看到对等互连未从 vnet A 中删除。有没有办法删除此对等互连?

地形文件:

# It is assumed that A already has a resource group and vnet created
# Access the static A account 
provider "azurerm" {
  alias           = "A"
  subscription_id = "XXXX-XXXX-XXXX"
  features {}
  skip_provider_registration = true
}

data "azurerm_resources" "vnet" {
    resource_group_name = "A-ResourceGroup"
    type = "Microsoft.Network/virtualNetworks"
    provider = azurerm.Aprov
}
resource "azurerm_virtual_network_peering" "A-B" {
  provider = azurerm.Aprov
  name                      = "A-B"
  resource_group_name       = data.azurerm_resources.vnet.resource_group_name
  virtual_network_name      = data.azurerm_resources.vnet.resources[0].name
  remote_virtual_network_id = azurerm_virtual_network.B-vnet.id
}

# Deployment in B Account
provider "azurerm" {
  skip_provider_registration = true
  features {}
}

resource "azurerm_resource_group" "B" {
  name     = "B-peer-1"
  location = "West US"
}

resource "azurerm_virtual_network" "B-vnet" {
  name                = "B-network1"
  resource_group_name = azurerm_resource_group.B.name
  address_space       = ["10.0.1.0/24"]
  location            = "West US"
}

# Add the VNET peering to A account
resource "azurerm_virtual_network_peering" "B-A" {
  name                      = "B-A"
  resource_group_name       = azurerm_resource_group.B.name
  virtual_network_name      = azurerm_virtual_network.B-vnet.name
  remote_virtual_network_id = data.azurerm_resources.vnet.resources[0].id
}

最佳答案

为了重现您的问题,请在同一区域中创建 VNETA 和 VNET B,并对它们进行对等

VNETA 到 VNETB 对等互连 enter image description here

VNETB 到 VNETA 对等互连

enter image description here

现在我删除了 VNETB,但它仍然会与 VNETA 对等,除非我们不删除或删除对等互连。

但是,您正在创建相同的 VNETB 或使用不同的名称但具有相同的地址空间,它会说您无法对等,因为您已经在对等中,并且会抛出像您遇到的错误。

enter image description here

您可以从门户本身删除现有对等互连。

enter image description here

您还可以使用 terraform 命令销毁现有对等互连 terraform destroy -target nameofpeering

关于azure - Vnet 对等互连在 azure 中未被删除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71221243/

相关文章:

apache - 使用 apache 在 Azure 上设置 ubuntu VM

azure - 术语 'Enable-Migrations' 未被识别为 cmdlet、函数、脚本文件或可操作程序的名称

linux - azure walinuxagent : no package available on oracle linux 6. 5

azure - Terraform Azure 函数应用程序 - 未正确启动函数的简单示例

terraform - 使用 terraform 为现有虚拟机启用 Azure Monitor

azure - 不在托管服务或开发结构中运行(生产,而不是调试/本地)

azure - Terraform - 列表到字符串以创建 azure 订阅列表

amazon-web-services - 如何使用 Terraform 使用已 KMS 加密的字符串在 AWS Secrets Manager 中存储新 key ?

terraform - count=0 的 ACM 证书且 aws_acm_certificate_validation 由于 for_each 而失败

azure - Azure 上 'Work pace based Application Insight' 的 Terraform 部署