【发布时间】:2018-08-16 17:58:55
【问题描述】:
我一直在查看 Terraform.io 文档,但并不是很清楚。
我知道如何通过 Azure 门户将 VM 添加到 LB,只是想弄清楚如何使用 Terraform。
我在 azurerm_availability_set 或 azurerm_lb 中没有看到添加 VM 的选项。
如果有人有任何想法,请告诉我。
德文郡
【问题讨论】:
我一直在查看 Terraform.io 文档,但并不是很清楚。
我知道如何通过 Azure 门户将 VM 添加到 LB,只是想弄清楚如何使用 Terraform。
我在 azurerm_availability_set 或 azurerm_lb 中没有看到添加 VM 的选项。
如果有人有任何想法,请告诉我。
德文郡
【问题讨论】:
我会看一下我创建的这个示例。创建 LB 后,在创建每个 NIC 时,请确保向 LB 添加反向链接。
load_balancer_backend_address_pool_ids = ["${azurerm_lb_backend_address_pool.webservers_lb_backend.id}"]
【讨论】:
load_balancer_backend_address_pools_ids .. 谢谢!!!
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。
【讨论】:
回答这个问题可能会迟到,但这里是。创建 LB 和 VM 后,您可以使用此 sn-p 关联 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。
【讨论】:
我认为this 是您所需要的。然后,您需要通过子网创建网络接口和虚拟机之间的关联。
【讨论】:
这里的所有答案似乎都已过时。 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
}
【讨论】: