Private/VirtualNetwork.ps1
function New-VirtualNetwork{ [CmdletBinding()] param( [Parameter(ValueFromPipeline)][pscustomobject]$Payload ) #Create Vnet $RGName = $Payload.RGName $Location = $Payload.Location $NameSuffix = $Payload.NameSuffix $VnetName=$RG+"Vnet" $FirewallSubnetName="AzureFirewallSubnet" $JumboxSubnetName="snet-$NameSuffix" $VirtualNetworkAddressPrefix="192.168.0.0/16" $FirewallAddressPrefix ="192.168.1.0/24" $JumboxAddressPrefix ="192.168.0.0/24" $VnetName="vnet-" + $NameSuffix New-AzVirtualNetwork -ResourceGroupName $RGName -Name $VnetName -AddressPrefix $VirtualNetworkAddressPrefix -Location $Location #Configure subnets $vnet = Get-AzVirtualNetwork -ResourceGroupName $RGName -Name $VnetName Add-AzVirtualNetworkSubnetConfig -Name AzureFirewallSubnet -VirtualNetwork $vnet -AddressPrefix $FirewallAddressPrefix Add-AzVirtualNetworkSubnetConfig -Name $JumboxSubnetName -VirtualNetwork $vnet -AddressPrefix $JumboxAddressPrefix Set-AzVirtualNetwork -VirtualNetwork $vnet $Payload | Add-Member -MemberType NoteProperty -Name 'VnetName' -Value $VnetName $Payload | Add-Member -MemberType NoteProperty -Name 'FirewallSubnetName' -Value $FirewallSubnetName $Payload | Add-Member -MemberType NoteProperty -Name 'JumboxSubnetName' -Value $JumboxSubnetName $Payload | Add-Member -MemberType NoteProperty -Name 'VirtualNetworkAddressPrefix' -Value $VirtualNetworkAddressPrefix $Payload | Add-Member -MemberType NoteProperty -Name 'FirewallAddressPrefix' -Value $FirewallAddressPrefix $Payload | Add-Member -MemberType NoteProperty -Name 'JumboxAddressPrefix' -Value $JumboxAddressPrefix [pscustomobject]$Payload } |