Nevar pievienot vairāk kā 25 tēmas Tēmai ir jāsākas ar burtu vai ciparu, tā var saturēt domu zīmes ('-') un var būt līdz 35 simboliem gara.

52 rindas
1.5 KiB

  1. terraform {
  2. required_version = "~> 0.12.21"
  3. required_providers {
  4. azurerm = "~> 1.44"
  5. }
  6. }
  7. resource "azurerm_virtual_network" "azvnet" {
  8. count = length(var.vnets)
  9. name = var.vnets[count.index].name
  10. resource_group_name = var.vnets[count.index].resource_group_name
  11. address_space = var.vnets[count.index].address_space
  12. location = var.vnets[count.index].location
  13. dns_servers = var.vnets[count.index].dns_servers
  14. tags = var.vnets[count.index].tags
  15. dynamic "subnet" {
  16. for_each = var.vnets[count.index].subnets
  17. content {
  18. name = subnet.key
  19. address_prefix = subnet.value.address_prefix
  20. security_group = try(data.azurerm_network_security_group.nsg[subnet.value.nsg.name].id, null)
  21. }
  22. }
  23. /* ddos_protection_plan {
  24. id = azurerm_ddos_protection_plan.example.id
  25. enable = true
  26. }*/
  27. depends_on = [var.azvnet_depends_on]
  28. }
  29. locals {
  30. nsgs = distinct(flatten([
  31. for vnet in var.vnets : [
  32. for subkey, subnet in vnet.subnets : {
  33. name = subnet.nsg.name
  34. resource_group_name = try(subnet.nsg.resource_group_name, vnet.resource_group_name)
  35. }
  36. ]
  37. ]))
  38. }
  39. data "azurerm_network_security_group" "nsg" {
  40. for_each = {for nsg in local.nsgs: nsg.name => nsg}
  41. name = each.value.name
  42. resource_group_name = each.value.resource_group_name
  43. depends_on = [var.azvnet_depends_on]
  44. }