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

blpfk2vs  于 2023-03-24  发布在  其他
关注(0)|答案(5)|浏览(128)

我一直在看www.example.com的Terraform.io文档,它不是很清楚。
我知道如何通过Azure门户向LB添加VM,只是想弄清楚如何使用Terraform。
我在azurerm_availability_set或azurerm_lb中未看到用于添加VM的选项。
请让我知道如果有人有任何想法。
德文郡

dpiehjr4

dpiehjr41#

我想看看我创建的这个例子。在你创建了LB之后,当创建每个NIC时,确保你添加了一个到LB的反向链接。

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

Terraform load balanced server

mnemlml8

mnemlml82#

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

jtjikinw

jtjikinw3#

现在回答这个问题可能有点晚了,但是这里有。一旦你创建了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}"
}

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

hrirmatl

hrirmatl4#

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

u0njafvf

u0njafvf5#

这里的所有答案似乎都已经过时了。azurerm_network_interface_nat_rule_association应该在2021-08-22之前使用:

resource "azurerm_lb_nat_rule" "example" {
  resource_group_name            = azurerm_resource_group.example.name
  loadbalancer_id                = azurerm_lb.example.id
  name                           = "RDPAccess"
  protocol                       = "Tcp"
  frontend_port                  = 3389
  backend_port                   = 3389
  frontend_ip_configuration_name = "primary"
}

resource "azurerm_network_interface" "example" {
  name                = "example-nic"
  location            = azurerm_resource_group.example.location
  resource_group_name = azurerm_resource_group.example.name

  ip_configuration {
    name                          = "testconfiguration1"
    subnet_id                     = azurerm_subnet.example.id
    private_ip_address_allocation = "Dynamic"
  }
}

resource "azurerm_network_interface_nat_rule_association" "example" {
  network_interface_id  = azurerm_network_interface.example.id
  ip_configuration_name = "testconfiguration1"
  nat_rule_id           = azurerm_lb_nat_rule.example.id
}

相关问题