Вопросы о "Плане" виртуальной машины в Azure (Terraform)

Я новичок в Azure и Terraform, но я унаследовал набор конфигов и модулей Terraform от того, кто покинул мою организацию. Мне было поручено изменить виртуальные машины проекта на версии с усиленной поддержкой CIS, что потребовало от меня добавить блок "план" в один из наших модулей подготовки виртуальных машин:

resource "azurerm_virtual_machine" "vm-windows" {
  count                         = "${(((var.vm_os_id != "" && var.is_windows_image == "true") || contains(list("${var.vm_os_simple}","${var.vm_os_offer}"), "WindowsServer")) && var.data_disk == "false") ? var.nb_instances : 0}"
  name                          = "${var.vm_hostname}${count.index}"
  location                      = "${var.location}"
  resource_group_name           = "${var.resource_group_name}"
  availability_set_id           = "${azurerm_availability_set.vm.id}"
  vm_size                       = "${var.vm_size}"
  network_interface_ids         = ["${element(azurerm_network_interface.vm.*.id, count.index)}"]
  delete_os_disk_on_termination = "${var.delete_os_disk_on_termination}"

  storage_image_reference {
    id        = "${var.vm_os_id}"
    publisher = "${var.vm_os_id == "" ? coalesce(var.vm_os_publisher, module.os.calculated_value_os_publisher) : ""}"
    offer     = "${var.vm_os_id == "" ? coalesce(var.vm_os_offer, module.os.calculated_value_os_offer) : ""}"
    sku       = "${var.vm_os_id == "" ? coalesce(var.vm_os_sku, module.os.calculated_value_os_sku) : ""}"
    version   = "${var.vm_os_id == "" ? var.vm_os_version : ""}"
  }
  # this is what I added
  plan {
    name       = "${var.vm_os_id == "" ? coalesce(var.vm_os_sku, module.os.calculated_value_os_sku) : ""}"
    publisher  = "${var.vm_os_id == "" ? coalesce(var.vm_os_publisher, module.os.calculated_value_os_publisher) : ""}"
    product    = "${var.vm_os_id == "" ? coalesce(var.vm_os_offer, module.os.calculated_value_os_offer) : ""}"
  }

  ...
}

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

  • Что это такое и где я могу узнать больше об этом? (Похоже, Google трудно справиться с задачей; например, "план виртуальной машины Azure" дает информацию о ценах.)
  • Целесообразно ли оставить блок на месте для виртуальных машин, которые не обязательно в этом нуждаются?

Единственная документация, которую я видел до сих пор, это скудная информация Терраформ о блоке. Он не дает много информации (даже имена аргументов), и я не знаю, как перекрестно ссылаться на конструкции Terraform с Azure.

1 ответ

Решение
  1. Этот блок необходим, когда вы создаете пользовательский образ торговой площадки (например, межсетевые экраны Barracuda, серверы TrendMicro и т. Д.). в основном все, что не предоставляется Microsoft (по большей части). ( https://alexandrebrisebois.wordpress.com/2016/06/30/deploying-azure-marketplace-vms-via-arm-templates/ или это: https://azure.microsoft.com/en-us/marketplace/faq/)
  2. нет, это неуместно, вам нужно какое-то условие для включения этого блока. или просто иметь 2 шаблона, один с блоком и один без него.
Другие вопросы по тегам