Невозможно установить динамический IP-адрес для виртуальных машин Azure с помощью terraform - PullRequest
0 голосов
/ 23 февраля 2019

Не знаю, где что-то идет не так, но я не могу заставить работать следующий код.

Цель : Создать две (или более) виртуальные машины с публичным IP-адресом.

Проблема : застрял с ошибками в сообщении плана Terraform, как указано в блоке кода ошибки.

Блок кода Terraform находится ниже :

resource "azurerm_public_ip" "tf-pubip-cluster-aos" {
    count                        = 2
    name                         = "${var.ax_base_hostname}-${count.index+1}-PUBIP"
    location                     = "${azurerm_resource_group.tf-rg-cluster-aos.location}"
    resource_group_name          = "${azurerm_resource_group.tf-rg-cluster-aos.name}"
    allocation_method            = "Dynamic"
}

resource "azurerm_network_interface" "tf-ni-cluster-aos" {
 count               = 2
 name                = "${var.ax_base_hostname}-${count.index+1}-NI"
 location            = "${azurerm_resource_group.tf-rg-cluster-aos.location}"
 resource_group_name = "${azurerm_resource_group.tf-rg-cluster-aos.name}"

ip_configuration {
    name                          = "${var.ax_base_hostname}-${count.index+1}-IP"
    subnet_id                     = "${data.azurerm_subnet.tf-sn-cluster-aos.id}"
    private_ip_address_allocation = "Dynamic"
    public_ip_address_id          = "${azurerm_public_ip.tf-pubip-cluster-aos.id}"
}
}
resource "azurerm_virtual_machine" "tf-vm-cluster-aos" {
  count                 = 2
  name                  = "${var.ax_base_hostname}-${count.index+1}"
  location            = "${azurerm_resource_group.tf-rg-cluster-aos.location}"
  resource_group_name = "${azurerm_resource_group.tf-rg-cluster-aos.name}"
  availability_set_id   = "${azurerm_availability_set.tf-as-cluster-aos.id}"
  network_interface_ids = ["${element(azurerm_network_interface.tf-ni-cluster-aos.*.id, count.index)}"]
  vm_size               = "${var.ax_vm_size}"

}

Сообщение об ошибке ниже :

Error running plan: 1 error(s) occurred:

    azurerm_network_interface.tf-ni-cluster-aos: 2 error(s) occurred:
    azurerm_network_interface.tf-ni-cluster-aos[0]: Resource 'azurerm_public_ip.tf-pubip-cluster-aos' not found for variable 'azurerm_public_ip.tf-pubip-cluster-aos.id'
    azurerm_network_interface.tf-ni-cluster-aos[1]: Resource 'azurerm_public_ip.tf-pubip-cluster-aos' not found for variable 'azurerm_public_ip.tf-pubip-cluster-aos.id'

Не могу понять ... Любая помощь будет отличной.

1 Ответ

0 голосов
/ 23 февраля 2019

вы создаете 2 публичных ips, а не один, но вы пытаетесь сослаться на него так, как если бы это был один ip, но это не так.это список.вам нужно получить индивидуальный публичный ip-идентификатор, примерно такой:

"${element(azurerm_public_ip.tf-pubip-cluster-aos.*.id, count.index)}"
...