首页 > 解决方案 > 无法将 VM 分配给 azurerm_lb_backend_address_pool

问题描述

我能够在 azurerm_availability_set 中创建 2 个 Linux VM,现在想将这些 VM 附加到 azurerm_lb_backend_address_pool 但我的代码中列出的选项除外。我没有看到可用性集选项,但是当我转到 Azure 门户时,我通过门户看到了可用性集选项。不确定我是否在这里做错了什么。

请查看下面的代码,让我知道在哪里可以添加可用性集选项。这样我就可以附加 2 个虚拟机。

resource "azurerm_lb_backend_address_pool" "backend_pool" {
  resource_group_name = "${azurerm_resource_group.test.name}"
  loadbalancer_id     = "${azurerm_lb.lb.id}"
  name                = "webBackendPool"
}

标签: azureterraformterraform-provider-azure

解决方案


在负载均衡器后端池中分配虚拟机实际上是将虚拟机的网络接口分配给后端池,因此您可以使用azurerm_network_interface_backend_address_pool_association资源将虚拟机的网卡绑定到后端池。

例如,

...
resource "azurerm_network_interface" "test" {
  name                = "${var.prefix}-nic"
  location            = "${azurerm_resource_group.test.location}"
  resource_group_name = "${azurerm_resource_group.test.name}"

  ip_configuration {
    name                          = "testconfiguration1"
    subnet_id                     = "${azurerm_subnet.internal.id}"
    private_ip_address_allocation = "Dynamic"
    public_ip_address_id = "${azurerm_public_ip.test.id}"
  }
}
...

 resource "azurerm_network_interface_backend_address_pool_association" "test" {
      network_interface_id    = "${azurerm_network_interface.test.id}"
      ip_configuration_name   = "testconfiguration1"
      backend_address_pool_id = "${azurerm_lb_backend_address_pool.backend_pool.id}"
    }

resource "azurerm_lb" "lb" {
  name                = "weblb"
  resource_group_name = "${azurerm_resource_group.test.name}"
  location            = "${azurerm_resource_group.test.location}"  
  sku                 = "${var.lb_sku}"

   frontend_ip_configuration {
    name                          = "${var.frontend_name}"
    subnet_id                     = "${azurerm_subnet.frontend.id}"
    private_ip_address            = "10.0.1.10"
    private_ip_address_allocation = "Static"
  }
}
resource "azurerm_lb_backend_address_pool" "backend_pool" {
  resource_group_name = "${azurerm_resource_group.test.name}"
  loadbalancer_id     = "${azurerm_lb.lb.id}"
  name                = "webBackendPool"
}

推荐阅读