Terraform в облаке Azure - имя виртуальной машины и имя диска с данными не совпадают - PullRequest
0 голосов
/ 20 февраля 2019

Я создал виртуальную машину и добавил к ней диск данных, однако существует одна проблема. Имя виртуальной машины и имя диска данных НЕ совпадают.Пожалуйста, обратитесь к скриншоту ниже.

NXTPREPAOS-1 Machine Disks

NXTPREPAOS-1 Machine Disks

NXTPREPAOS-5 Machine Disk

Ниже приведен код terraform:

resource "azurerm_managed_disk" "tf-mdsk-cluster" {
  count                = 5
  name                 = "${var.ax_base_hostname}-${count.index+1}-DATADISK-1"
  location             = "${azurerm_resource_group.tf-rg-cluster-aos.location}"
  resource_group_name  = "${azurerm_resource_group.tf-rg-cluster-aos.name}"
  storage_account_type = "Standard_LRS"
  create_option        = "Empty"
  disk_size_gb         = "1024"
}

resource "azurerm_managed_disk" "tf-mdsk-2-cluster" {
  count                = 5
  name                 = "${var.ax_base_hostname}-${count.index+1}-DATADISK-2"
  location             = "${azurerm_resource_group.tf-rg-cluster-aos.location}"
  resource_group_name  = "${azurerm_resource_group.tf-rg-cluster-aos.name}"
  storage_account_type = "Standard_LRS"
  create_option        = "Empty"
  disk_size_gb         = "1024"
}

resource "azurerm_virtual_machine" "tf-vm-cluster-aos" {
  count                 = 5
  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+1)}"]
  vm_size               = "${var.ax_vm_size}"

  storage_data_disk {
    name            = "${element(azurerm_managed_disk.tf-mdsk-cluster.*.name, count.index+1)}"
    managed_disk_id = "${element(azurerm_managed_disk.tf-mdsk-cluster.*.id, count.index+1)}"
    create_option   = "Attach"
    lun             = 0
    disk_size_gb    = "${element(azurerm_managed_disk.tf-mdsk-cluster.*.disk_size_gb, count.index+1)}"
  }

  storage_data_disk {
    name            = "${element(azurerm_managed_disk.tf-mdsk-2-cluster.*.name, count.index+1)}"
    managed_disk_id = "${element(azurerm_managed_disk.tf-mdsk-2-cluster.*.id, count.index+1)}"
    create_option   = "Attach"
    lun             = 1
    disk_size_gb    = "${element(azurerm_managed_disk.tf-mdsk-2-cluster.*.disk_size_gb, count.index+1)}"
  }
}

У меня изменено блок управляемого диска

ОТ

managed_disk_id = "${element(azurerm_managed_disk.tf-mdsk-cluster.*.id, count.index+1)}"

TO

managed_disk_id = "${element(azurerm_managed_disk.tf-mdsk-cluster.*.id, count.index)}"

Но это не раскрыло тайну,есть идеи, как ее решить?

1 Ответ

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

Я думаю, что вы что-то неправильно поняли и сделали это неправильно.При создании управляемого диска вы устанавливаете индекс с count.index+1.Тогда имя данных будет иметь номер {1,2,3,4,5} с индексом {0,1,2,3,4}.И когда вы создаете виртуальную машину и добавляете в нее управляемый диск.Вы устанавливаете индекс в storage_data_disk также как count.index+1.Поэтому, если индекс равен 1 для виртуальной машины, номер диска будет 2.

Вы можете изменить индекс в storage_data_disk на count.index.И это будет работать, как вы хотите.azurerm_virtual_machine понравится:

resource "azurerm_virtual_machine" "tf-vm-cluster-aos" {
  count                 = 5
  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+1)}"]
  vm_size               = "${var.ax_vm_size}"

  storage_data_disk {
    name            = "${element(azurerm_managed_disk.tf-mdsk-cluster.*.name, count.index)}"
    managed_disk_id = "${element(azurerm_managed_disk.tf-mdsk-cluster.*.id, count.index)}"
    create_option   = "Attach"
    lun             = 0
    disk_size_gb    = "${element(azurerm_managed_disk.tf-mdsk-cluster.*.disk_size_gb, count.index)}"
  }

  storage_data_disk {
    name            = "${element(azurerm_managed_disk.tf-mdsk-2-cluster.*.name, count.index)}"
    managed_disk_id = "${element(azurerm_managed_disk.tf-mdsk-2-cluster.*.id, count.index)}"
    create_option   = "Attach"
    lun             = 1
    disk_size_gb    = "${element(azurerm_managed_disk.tf-mdsk-2-cluster.*.disk_size_gb, count.index)}"
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...