Я написал скрипт для создания виртуальной машины Azure с помощью terraform.Скрипт является гибким, чтобы принять ОС в качестве входных данных.Теперь в блоке ресурсов azurerm_virtual_machine есть некоторые атрибуты, характерные для ОС.Как использовать условие, например, если в Windows используется os_profile_windows_config{}
или в ОС Linux используется os_profile_linux_config{}
.
Обычные условные операторы не работали, так как эти атрибуты не принимают никаких значений напрямую с помощью =.
resource "azurerm_virtual_machine" "vmdeploy" {
count = "${var.count_of_VMs}"
name = "${var.vm_name}-${count.index}"
resource_group_name = "${azurerm_resource_group.deployrg.name}"
availability_set_id = "${azurerm_availability_set.avset.id}"
location = "${azurerm_resource_group.deployrg.location}"
network_interface_ids = ["${element(azurerm_network_interface.nic.*.id, count.index)}"]
vm_size = "Standard_DS1_v2"
storage_image_reference{
publisher = "${var.OS_Image_Publisher}"
offer = "${var.OS_Image_Offer}"
sku = "${var.OS_Image_Sku}"
version = "latest"
}
storage_os_disk{
name = "${var.vm_name}-${count.index}-osdisk"
caching = "ReadWrite"
managed_disk_type = "Standard_LRS"
create_option = "FromImage"
}
storage_data_disk {
name = "${element(azurerm_managed_disk.mdisk.*.name, count.index)}"
managed_disk_id = "${element(azurerm_managed_disk.mdisk.*.id, count.index)}"
create_option = "Attach"
lun = 1
disk_size_gb = "${element(azurerm_managed_disk.mdisk.*.disk_size_gb, count.index)}"
}
os_profile {
computer_name = "${var.vm_name}-${count.index}"
admin_username = "XXXXXXXXXXXX"
admin_password = "XXXXXXXXXXXX"
}
os_profile_windows_config {
}
}
Я пытаюсь найти способ использовать условие для использования соответствующего атрибута конфигурации в зависимости от версии ОС, которая указана в качестве ввода.