Ваш вопрос мне не совсем понятен, но я собираюсь предположить, что вы хотите создать общую группу безопасности сети, которую вы хотите назначить нескольким экземплярам вашего модуля VM.
Если вы хотите передать идентификатор группы безопасности из main.tf at root
, вы должны сделать следующее: Создать ресурс группы безопасности сети вне вашего модуля, например, внутри main.tf at root
, так же, как вы создали нескольковнутри вашего модуля VM (для Apache и Nginx), так что main.tf at root
выглядит следующим образом:
resource "azurerm_network_security_group" "some_generic_vm_nsg" {
....
}
module "vm1" {
source = "/modules/vm/"
NSG = "${azurerm_network_security_group.some_generic_vm_nsg.id}"
}
Обратите внимание, что теперь мы передаем идентификатор nsg вашему экземпляру модуля VM.Однако ваш модуль VM еще не объявил переменную NSG
.Поэтому создайте файл modules/vm/variables.tf
и вставьте в него следующее:
variable "NSG" {
type = "string"
}
А внутри вашего модуля network_security_group_id = { WHAT DO I PUT HERE? }
становится:
network_security_group_id = "${var.NSG}"
Таким образом, вы можете назначить ту же сетьгруппа безопасности для нескольких экземпляров модуля VM.
Вы можете изучить эту документацию для получения более подробной информации.