Я создаю сетевой адаптер в 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 на Статический в самом коде терраформирования?
К сожалению, нет простого решения. Если вам нужна сетевая карта со статическим внутренним IP, то Azure ожидает, что вы скажете ему, какой IP вы хотите использовать, он не будет придираться к вам. Если вы посмотрите на пример для этого с шаблоном ARM, то сначала они обманывают и устанавливают IP в динамический режим, поэтому Azure генерирует IP, а затем меняет режим на динамический.
Итак, в Terraform, вам нужно будет сделать что-то подобное, сначала создать сетевую карту с динамическим IP, затем создать ту же самую сетевую карту во второй раз, но на этот раз сделать ее статической.
Альтернативой является использование нотации cidrsubnet в Terraform для генерации действительного IP-адреса в вашей подсети. Это сработает, но проблема здесь в том, что у вас нет гарантии, что этот IP не используется другими ресурсами вашей подсети, если только вы не создали их все с помощью Terraform и не удостоверились, что IP-адреса увеличиваются каждый раз.
.