У меня есть куча скриптов terraform для создания одной или нескольких виртуальных машин вместе с соответствующими ресурсами (nic, nfg, rg, диски данных, расширения, роли и т. Д.).У меня есть переменные, определенные в файле variables.tf как для Ubuntu, так и для CentOS;однако я должен раскомментировать те, которые планирую использовать.Вот код:
Определения переменных для образа Ubuntu
variable os_publisher { default = "Canonical"}
variable os_offer { default = "UbuntuServer" }
variable os_sku { default = "18.04-LTS" }
variable os_version { default = "latest" }
Определения переменных для образа CentOS
variable OS_publisher { default = "OpenLogic" }
variable OS_offer { default = "CentOS" }
variable OS_sku { default = "7.4" }
variable OS_version { default = "latest" }
Я хотел бы изменить мои настройки, чтобы призначение отдельной переменной (скажем, os_image) установлено в ubuntu, TF автоматически заполняет правильные значения для следующего блока в ресурсе azurerm_virtual_machine в vm.tf:
storage_image_reference {
publisher = "${var.os_publisher}"
offer = "${var.os_offer}"
sku = "${var.os_sku}"
version = "${var.os_version}"
}
И если значение для os_imageустановлен в centos, он устанавливает CentOS.
Я посмотрел на условное условие if-else, а также на функцию поиска плюс параметры карты / списка, но я не уверен, какой из них использовать и как.Я также открыт для других решений.
Буду признателен за ответ.
Спасибо, Асгар