Как выполнить скрипт с разными параметрами для каждого экземпляра ресурса виртуальной машины azurerm_virtual_machine_scale_set? - PullRequest
0 голосов
/ 14 января 2019

После применения terraform он создает ресурс azurerm_virtual_machine_scale_set с N экземплярами, но затем мне нужно выполнить некоторый сценарий с разными параметрами для каждого экземпляра виртуальной машины. Не могли бы вы помочь мне с этим вопросом? Большое спасибо!

Ответы [ 2 ]

0 голосов
/ 15 января 2019

Вы можете просто использовать цикл для создания нескольких копий чего-либо в terraform:

resource "azurerm_virtual_machine" "vm" {
  name                             = "${var.reference["name"]}-${var.vmName}-vm-${count.index}"
  location                         = "${var.reference["location"]}"
  resource_group_name              = "${var.reference["name"]}"
  network_interface_ids            = ["${element(azurerm_network_interface.nic.*.id, count.index)}"]
  vm_size                          = "Standard_B1ms"
  availability_set_id              = "${azurerm_availability_set.av.id}"
  delete_os_disk_on_termination    = true
  delete_data_disks_on_termination = true
  count                            = "${var.reference["${var.vmName}Count"]}"

  storage_image_reference {
    publisher = "Canonical"
    offer     = "UbuntuServer"
    sku       = "16.04-LTS"
    version   = "latest"
  }

  storage_os_disk {
    name              = "${var.reference["name"]}-${var.vmName}-vm-${count.index}-osDisk"
    caching           = "ReadWrite"
    create_option     = "FromImage"
    managed_disk_type = "Standard_LRS"
  }

  os_profile {
    computer_name  = "${var.reference["name"]}-${var.vmName}-vm-${count.index}"
    admin_username = "${var.reference["name"]}"
    admin_password = "!Q2w3e4r5t6y"
  }

  os_profile_linux_config {
    disable_password_authentication = false
  }
}
0 голосов
/ 15 января 2019

В связи с вашей проблемой вам лучше ознакомиться с набором масштабов виртуальной машины Azure. Как правило, наборы масштабов полезны для развертывания высокодоступной инфраструктуры, где набор машин имеет аналогичную конфигурацию.

Некоторые функции доступны только в наборах масштабов, тогда как другие функции доступны только в виртуальных машинах. См. Когда использовать наборы масштаба вместо виртуальных машин? Так что вам следует подумать о том, какой сервис вам действительно нужен.

Также взгляните на Аргумент шкалы ВМ, установленный , который вы можете установить в Terraform. Вы можете просто установить расширение для выполнения скрипта в наборе масштабов, но кажется, что расширение будет применяться ко всему набору масштабов, а не к отдельному экземпляру с другими параметрами. Надеюсь, это поможет.

...