【问题标题】:How can I add a VM into a Load Balancer within Azure using Terraform?如何使用 Terraform 将 VM 添加到 Azure 中的负载均衡器?
【发布时间】:2018-08-16 17:58:55
【问题描述】:

我一直在查看 Terraform.io 文档,但并不是很清楚。

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

我在 azurerm_availability_set 或 azurerm_lb 中没有看到添加 VM 的选项。

如果有人有任何想法,请告诉我。

德文郡

【问题讨论】:

    标签: azure terraform


    【解决方案1】:

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

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

    Terraform load balanced server

    【讨论】:

    • 这对我有用.. 我不得不将其更改为 load_balancer_backend_address_pools_ids .. 谢谢!!!
    【解决方案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

    【讨论】:

    • 这有帮助!!如果我已经构建了 VM,如何将现有 VM 添加到 LB?
    • 不确定这是否可行,因为在创建 VM 时 VM 和 NIC 已关联。您可以将 VM 作为数据导入 terraform,但不确定是否可以对其进行修改。我会做一个销毁然后重新申请。
    【解决方案3】:

    回答这个问题可能会迟到,但这里是。创建 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。

    【讨论】:

      【解决方案4】:

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

      【讨论】:

        【解决方案5】:

        这里的所有答案似乎都已过时。 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
        }
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2021-10-31
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2020-05-08
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多