Skip to content

Commit f6203e3

Browse files
committed
finished powershell addition
1 parent 77cb183 commit f6203e3

File tree

1 file changed

+170
-1
lines changed

1 file changed

+170
-1
lines changed

articles/nat-gateway/tutorial-hub-spoke-route-nat.md

Lines changed: 170 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1596,6 +1596,42 @@ Create a two-way virtual network peer between the hub and spoke two.
15961596
15971597
# [**Powershell**](#tab/powershell)
15981598
1599+
Use [New-AzVirtualNetworkPeering](/powershell/module/az.network/new-azvirtualnetworkpeering) to create the peering from the hub to spoke two.
1600+
1601+
```powershell
1602+
# Create peering from hub to spoke two
1603+
$hubVnetParams = @{
1604+
ResourceGroupName = "test-rg"
1605+
Name = "vnet-hub"
1606+
}
1607+
$hubVnet = Get-AzVirtualNetwork @hubVnetParams
1608+
1609+
$spokeVnetParams = @{
1610+
ResourceGroupName = "test-rg"
1611+
Name = "vnet-spoke-2"
1612+
}
1613+
$spokeVnet = Get-AzVirtualNetwork @spokeVnetParams
1614+
1615+
$hubToSpokeParams = @{
1616+
Name = "vnet-hub-to-vnet-spoke-2"
1617+
VirtualNetwork = $hubVnet
1618+
RemoteVirtualNetworkId = $spokeVnet.Id
1619+
AllowForwardedTraffic = $true
1620+
AllowVirtualNetworkAccess = $true
1621+
}
1622+
Add-AzVirtualNetworkPeering @hubToSpokeParams
1623+
1624+
# Create peering from spoke two to hub
1625+
$spokeToHubParams = @{
1626+
Name = "vnet-spoke-2-to-vnet-hub"
1627+
VirtualNetwork = $spokeVnet
1628+
RemoteVirtualNetworkId = $hubVnet.Id
1629+
AllowForwardedTraffic = $true
1630+
AllowVirtualNetworkAccess = $true
1631+
}
1632+
Add-AzVirtualNetworkPeering @spokeToHubParams
1633+
```
1634+
15991635
# [**CLI**](#tab/cli)
16001636
16011637
Use [az network vnet peering create](/cli/azure/network/vnet/peering#az_network_vnet_peering_create) to create the peering from the hub to spoke two.
@@ -1683,6 +1719,58 @@ Create a route table to force all outbound internet and inter-spoke traffic thro
16831719
16841720
# [**Powershell**](#tab/powershell)
16851721
1722+
Use [New-AzRouteTable](/powershell/module/az.network/new-azroutetable) to create the route table.
1723+
1724+
```powershell
1725+
$routeTableParams = @{
1726+
ResourceGroupName = "test-rg"
1727+
Name = "route-table-nat-spoke-2"
1728+
Location = "westus2"
1729+
}
1730+
New-AzRouteTable @routeTableParams
1731+
```
1732+
1733+
Use [Add-AzRouteConfig](/powershell/module/az.network/add-azrouteconfig) to create the route in the route table.
1734+
1735+
```powershell
1736+
$routeParams = @{
1737+
Name = "default-via-nat-spoke-2"
1738+
AddressPrefix = "0.0.0.0/0"
1739+
NextHopType = "VirtualAppliance"
1740+
NextHopIpAddress = "10.0.0.10"
1741+
}
1742+
1743+
$routeTableParams = @{
1744+
ResourceGroupName = "test-rg"
1745+
Name = "route-table-nat-spoke-2"
1746+
}
1747+
$routeTable = Get-AzRouteTable @routeTableParams
1748+
1749+
Add-AzRouteConfig -RouteTable $routeTable -Route $routeParams
1750+
1751+
Set-AzRouteTable -RouteTable $routeTable
1752+
```
1753+
1754+
Use [Set-AzVirtualNetworkSubnetConfig](/powershell/module/az.network/set-azvirtualnetworksubnetconfig) to associate the route table with the subnet.
1755+
1756+
```powershell
1757+
$vnetParams = @{
1758+
ResourceGroupName = "test-rg"
1759+
Name = "vnet-spoke-2"
1760+
}
1761+
$vnet = Get-AzVirtualNetwork @vnetParams
1762+
1763+
$subnetParams = @{
1764+
VirtualNetwork = $vnet
1765+
Name = "subnet-private"
1766+
}
1767+
$subnet = Get-AzVirtualNetworkSubnetConfig @subnetParams
1768+
1769+
$subnet.RouteTable = $routeTable
1770+
1771+
Set-AzVirtualNetwork -VirtualNetwork $vnet
1772+
```
1773+
16861774
# [**CLI**](#tab/cli)
16871775
16881776
Use [az network route-table create](/cli/azure/network/route-table#az_network_route_table_create) to create the route table.
@@ -1771,8 +1859,62 @@ Create a Windows Server 2022 virtual machine for the test virtual machine in spo
17711859
17721860
# [**Powershell**](#tab/powershell)
17731861
1774-
# [**CLI**](#tab/cli)
1862+
Use [New-AzNetworkSecurityGroup](/powershell/module/az.network/new-aznetworksecuritygroup) to create the network security group.
1863+
1864+
```powershell
1865+
$nsgParams = @{
1866+
ResourceGroupName = "test-rg"
1867+
Name = "nsg-spoke-2"
1868+
Location = "eastus2"
1869+
}
1870+
New-AzNetworkSecurityGroup @nsgParams
1871+
```
17751872
1873+
Use [New-AzNetworkSecurityRuleConfig](/powershell/module/az.network/new-aznetworksecurityruleconfig) to create an inbound NSG rule for HTTP.
1874+
1875+
```powershell
1876+
$ruleParams = @{
1877+
Name = "allow-http"
1878+
Priority = 1000
1879+
Direction = "Inbound"
1880+
Access = "Allow"
1881+
Protocol = "Tcp"
1882+
DestinationPortRange = "80"
1883+
}
1884+
$nsg = Get-AzNetworkSecurityGroup -ResourceGroupName "test-rg" -Name "nsg-spoke-2"
1885+
1886+
$nsg | Add-AzNetworkSecurityRuleConfig @ruleParams
1887+
1888+
Set-AzNetworkSecurityGroup -NetworkSecurityGroup $nsg
1889+
```
1890+
1891+
Use [New-AzNetworkInterface](/powershell/module/az.network/new-aznetworkinterface) to create the network interface.
1892+
1893+
```powershell
1894+
$nicParams = @{
1895+
ResourceGroupName = "test-rg"
1896+
Name = "nic-2"
1897+
SubnetId = (Get-AzVirtualNetwork -ResourceGroupName "test-rg" -Name "vnet-spoke-2").Subnets[0].Id
1898+
NetworkSecurityGroupId = (Get-AzNetworkSecurityGroup -ResourceGroupName "test-rg" -Name "nsg-spoke-2").Id
1899+
}
1900+
New-AzNetworkInterface @nicParams
1901+
```
1902+
1903+
Use [New-AzVM](/powershell/module/az.compute/new-azvm) to create the Windows Server 2022 virtual machine.
1904+
1905+
```powershell
1906+
$vmParams = @{
1907+
ResourceGroupName = "test-rg"
1908+
Name = "vm-spoke-2"
1909+
Image = "Win2022Datacenter"
1910+
Size = "Standard_DS2_v2"
1911+
AdminUsername = "azureuser"
1912+
NetworkInterfaceIds = (Get-AzNetworkInterface -ResourceGroupName "test-rg" -Name "nic-2").Id
1913+
}
1914+
New-AzVM @vmParams
1915+
```
1916+
1917+
# [**CLI**](#tab/cli)
17761918
17771919
Use [az network nsg create](/cli/azure/network/nsg#az_network_nsg_create) to create the network security group.
17781920
@@ -1865,6 +2007,23 @@ IIS is installed on the Windows Server 2022 virtual machine to test outbound int
18652007
18662008
# [**Powershell**](#tab/powershell)
18672009
2010+
Use [Set-AzVMExtension](/powershell/module/az.compute/set-azvmextension) to install IIS on the virtual machine.
2011+
2012+
```powershell
2013+
$vmExtensionParams = @{
2014+
ResourceGroupName = "test-rg"
2015+
VMName = "vm-spoke-2"
2016+
Name = "CustomScriptExtension"
2017+
Publisher = "Microsoft.Compute"
2018+
Type = "CustomScriptExtension"
2019+
TypeHandlerVersion = "1.10"
2020+
Settings = @{
2021+
"commandToExecute" = "powershell Add-WindowsFeature Web-Server; powershell Add-Content -Path 'C:\inetpub\wwwroot\default.htm' -Value $($env:computername)"
2022+
}
2023+
}
2024+
Set-AzVMExtension @vmExtensionParams
2025+
```
2026+
18682027
# [**CLI**](#tab/cli)
18692028
18702029
Use [az vm extension set](/cli/azure/vm/extension#az_vm_extension_set) to install IIS on the virtual machine.
@@ -1987,6 +2146,16 @@ Use Microsoft Edge to connect to the web server on **vm-spoke-1** you installed
19872146
19882147
# [**Powershell**](#tab/powershell)
19892148
2149+
Use [Remove-AzResourceGroup](/powershell/module/az.resources/remove-azresourcegroup) to delete the resource group.
2150+
2151+
```powershell
2152+
$rgParams = @{
2153+
Name = "test-rg"
2154+
Force = $true
2155+
}
2156+
Remove-AzResourceGroup @rgParams
2157+
```
2158+
19902159
# [**CLI**](#tab/cli)
19912160
19922161
Use [az group delete](/cli/azure/group#az_group_delete) to delete the resource group.

0 commit comments

Comments
 (0)