Как установить статический частный IP-адрес для NIC в Azure с помощью terraform?

Я создаю сетевой адаптер в Azure, используя скрипт terraform. по умолчанию он назначает сетевой карте динамический частный IP-адрес. Если я выберу private_ip_address_allocation = "Static" , то мне придется передать статический IP-адрес, и будет очень сложно управлять всей информацией IP.

Я пробовал использовать, как показано ниже - Terraform - предоставление статических IP-адресов в Azure

resource "azurerm_network_interface" "myterraformnic1" {
  count               = "${var.my_count}"
   name                      = "myNIC1"
    location                  = "eastus"
    resource_group_name       = "${azurerm_resource_group.myterraformgroup.name}"
    network_security_group_id = "${azurerm_network_security_group.myterraformnsg.id}"

    ip_configuration {
        name                          = "myNicConfiguration1"
        subnet_id                     = "${azurerm_subnet.myterraformsubnet.id}"
        private_ip_address_allocation = "static"
        private_ip_address            = "${cidrhost("10.0.1.0/24",  4+count.index)}"

    }

    tags = {
        environment = "Terraform Demo1"
    }
}

Он будет работать для 1 NIC, но у меня уже есть 20 NIC, назначенных со статическими IP-адресами, а затем я не могу получить IP-адреса и установить доступные статический IP.

Как я могу автоматизировать установку частного IP на Статический в самом коде терраформирования?

0
задан 16 August 2019 в 11:00
1 ответ

К сожалению, нет простого решения. Если вам нужна сетевая карта со статическим внутренним IP, то Azure ожидает, что вы скажете ему, какой IP вы хотите использовать, он не будет придираться к вам. Если вы посмотрите на пример для этого с шаблоном ARM, то сначала они обманывают и устанавливают IP в динамический режим, поэтому Azure генерирует IP, а затем меняет режим на динамический.

Итак, в Terraform, вам нужно будет сделать что-то подобное, сначала создать сетевую карту с динамическим IP, затем создать ту же самую сетевую карту во второй раз, но на этот раз сделать ее статической.

Альтернативой является использование нотации cidrsubnet в Terraform для генерации действительного IP-адреса в вашей подсети. Это сработает, но проблема здесь в том, что у вас нет гарантии, что этот IP не используется другими ресурсами вашей подсети, если только вы не создали их все с помощью Terraform и не удостоверились, что IP-адреса увеличиваются каждый раз.

.
0
ответ дан 5 December 2019 в 01:26

Теги

Похожие вопросы