如何使用Terraform将VM添加到Azure中的负载均衡器?

时间:2018-08-16 17:58:55

标签: azure terraform

我一直在浏览Terraform.io文档,但不清楚。

我知道如何通过Azure门户将VM添加到LB,只是想弄清楚如何使用Terraform。

我在azurerm_availability_set或azurerm_lb中看不到添加虚拟机的选项。

请让我知道是否有人有任何想法。

德文

4 个答案:

答案 0 :(得分:2)

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

resource "azurerm_lb_nat_rule" "tcp" {
  resource_group_name            = "${azurerm_resource_group.rg.name}"
  loadbalancer_id                = "${azurerm_lb.lb.id}"
  name                           = "RDP-VM-${count.index}"
  protocol                       = "tcp"
  frontend_port                  = "5000${count.index + 1}"
  backend_port                   = 3389
  frontend_ip_configuration_name = "LoadBalancerFrontEnd"
  count                          = 2
}

您可以在此link上获取整个文件。我认为上面的代码是最重要的事情。有关负载均衡器NAT规则的更多详细信息,请参阅azurerm_lb_nat_rule

答案 1 :(得分:1)

我将看一下我创建的这个示例。创建LB后,在创建每个NIC时,请确保将反向链接添加到LB。

  load_balancer_backend_address_pool_ids = ["${azurerm_lb_backend_address_pool.webservers_lb_backend.id}"]

Terraform load balanced server

答案 2 :(得分:0)

回答这个问题可能迟到了,但是到了。创建了LB和VM之后,就可以使用以下代码片段来关联NIC和LB后端池:

resource "azurerm_network_interface_backend_address_pool_association" "vault" {
  network_interface_id    = "${azurerm_network_interface.nic.id}"
  ip_configuration_name   = "nic_ip_config"
  backend_address_pool_id = "${azurerm_lb_backend_address_pool.nic.id}"
}

确保VM位于可用性集之间。否则,您将无法将虚拟机注册到LB。

答案 3 :(得分:0)

我认为 this 正是您所需要的。然后,您需要通过子网在网络接口和虚拟机之间创建关联。