首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >阿祖勒姆-地形不像预期的那样

阿祖勒姆-地形不像预期的那样
EN

Stack Overflow用户
提问于 2022-07-04 10:15:04
回答 1查看 115关注 0票数 0

我正在尝试创建一个Terraform项目,以创建Azure订阅中所需的一切,因此资源组、vnet、子网和VM。

但是,当我运行这一次并再次尝试时,它声明它不能删除正在使用的子网。我没有更改任何关于子网或连接到它的VM的任何内容。

错误:创建/更新虚拟网络:(名称为“/ resources”):network.VirtualNetworksClient#CreateOrUpdate:失败发送请求: StatusCode=400 --原始错误: Code="InUseSubnetCannotBeDeleted“Message=子网构建代理正在被StatusCode=400使用,不能被删除。为了删除子网,删除子网中的所有资源。参见aka.ms/deletesubnet。Details=[]

代码语言:javascript
复制
terraform {
  required_version = ">= 1.1.0"
  backend "azurerm" {
  }
  required_providers {
    azurerm = {
    version = "=3.5.0"
      source = "hashicorp/azurerm" # https://registry.terraform.io/providers/hashicorp/azurerm/latest
    }
  }
}

# Configure the Microsoft Azure Provider
provider "azurerm" {
  features {}
}

locals {
    name_suffix = "<mysuffix>"
}

resource "azurerm_resource_group" "rg-infra" {
  name     = "rg-${local.name_suffix}"
  location = "UK South"
}

resource "azurerm_virtual_network" "vnet-mgmt" {
  name                = "vnet-${local.name_suffix}"
  location            = azurerm_resource_group.rg-infra.location
  resource_group_name = azurerm_resource_group.rg-infra.name
  address_space       = ["<myiprange>"]

  subnet {
    name           = "virtual-machines"
    address_prefix = "<myiprange>"
  }

  subnet {
    name           = "databases"
    address_prefix = "<myiprange>"
  }
}

data "azurerm_virtual_network" "network" {
  name                = "vnet-${local.name_suffix}"
  resource_group_name = azurerm_resource_group.rg-infra.name
}

resource "azurerm_subnet" "sb-ansible" {
  name                 = "build-agent"
  resource_group_name  = azurerm_resource_group.rg-infra.name
  virtual_network_name = data.azurerm_virtual_network.network.name
  address_prefixes     = ["<myiprange>"]
  depends_on           = [azurerm_virtual_network.vnet-mgmt]

}

data "azurerm_subnet" "prd-subnet" {
    name = "build-agent"
    virtual_network_name = data.azurerm_virtual_network.network.name
    resource_group_name = azurerm_resource_group.rg-infra.name
    depends_on          = [azurerm_subnet.sb-ansible]
}


resource "azurerm_network_interface" "ni-ansible" {
  name                = "nic-ansible-${local.name_suffix}"
  location            = azurerm_resource_group.rg-infra.location
  resource_group_name = azurerm_resource_group.rg-infra.name

  ip_configuration {
    name                          = "internal"
    subnet_id                     = data.azurerm_subnet.prd-subnet.id
    private_ip_address_allocation = "Dynamic"
  }

  lifecycle {
    ignore_changes = ["ip_configuration"]
  }

  depends_on           = [azurerm_subnet.sb-ansible]
}

resource "azurerm_linux_virtual_machine" "ansible-vm" {
  name                = "ansible-build-agent"
  resource_group_name = azurerm_resource_group.rg-infra.name
  location            = azurerm_resource_group.rg-infra.location
  size                = "Standard_D2as_v4"
  admin_username      = "myadminuser"
  network_interface_ids = [
    azurerm_network_interface.ni-ansible.id,
  ]

  admin_ssh_key {
    username   = "myadminuser"
    public_key = ""
  }

  os_disk {
    caching              = "ReadWrite"
    storage_account_type = "Standard_LRS"
  }

  source_image_reference {
    publisher = "Canonical"
    offer     = "UbuntuServer"
    sku       = "18.04-LTS"
    version   = "latest"
  }

  lifecycle {
    ignore_changes = ["source_image_reference"]
  }

  depends_on           = [azurerm_network_interface.ni-ansible]
}

任何帮助,为什么它是这样的行为,或一个解决办法,将不胜感激!

非常感谢

EN

回答 1

Stack Overflow用户

发布于 2022-07-04 12:46:41

结果发现,不能将vnet块中的嵌套子网与显式定义的azurerm_subnet混合在一起。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72855116

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档