====== module ====== # Module to create Azure network resources variable "resource_group_name" { description = "Name of the resource group where network resources will be created." } variable "location" { description = "Location for the network resources." } variable "vnet_name" { description = "Name of the virtual network." } variable "vnet_address_space" { description = "Address space for the virtual network." type = list(string) } variable "subnet_name" { description = "Name of the subnet." } variable "subnet_address_prefix" { description = "Address prefix for the subnet." } variable "public_ip_name" { description = "Name of the public IP address." } variable "firewall_name" { description = "Name of the firewall." } # Resource group resource "azurerm_resource_group" "example" { name = var.resource_group_name location = var.location } # Virtual network resource "azurerm_virtual_network" "example" { name = var.vnet_name address_space = var.vnet_address_space location = azurerm_resource_group.example.location resource_group_name = azurerm_resource_group.example.name } # Subnet resource "azurerm_subnet" "example" { name = var.subnet_name resource_group_name = azurerm_resource_group.example.name virtual_network_name = azurerm_virtual_network.example.name address_prefix = var.subnet_address_prefix } # Public IP address resource "azurerm_public_ip" "example" { name = var.public_ip_name location = azurerm_resource_group.example.location resource_group_name = azurerm_resource_group.example.name allocation_method = "Static" sku = "Standard" } # Firewall resource "azurerm_firewall" "example" { name = var.firewall_name location = azurerm_resource_group.example.location resource_group_name = azurerm_resource_group.example.name ip_configuration { name = "configuration" subnet_id = azurerm_subnet.example.id public_ip_address_id = azurerm_public_ip.example.id } } ====== use module ====== module "network" { source = "./network" resource_group_name = "example-resources" location = "North Europe" vnet_name = "testvnet" vnet_address_space = ["10.0.0.0/16"] subnet_name = "AzureFirewallSubnet" subnet_address_prefix = "10.0.1.0/24" public_ip_name = "testpip" firewall_name = "testfirewall" }