[Azure]ARM中使用Azure Powershell批量規劃虛擬網絡

ARM模式中爲虛擬網絡和子網的創建提供了相關的命令,因此可以很方便地根據具體的拓撲來使用命令創建,節約人力時間。

涉及到的兩條命令:

New-AzureRmVirtualNetwork

Add-AzureRmVirtualNetworkSubnetConfig


刨去網絡安全組的配置,我們單純利用上面兩條命令做了一個簡單的腳本用於批量創建虛擬網絡:

Function CreateVnetFromConfiguration($vnetConfiguration)
{
    $parsedConfiguration = $vnetConfiguration.Split('#');
    $vnetCfg = $parsedConfiguration[0].Split(':');
    $subnetCount = $parsedConfiguration.Count;
    Write-Host ("Creating vnet {0}..." -f $vnetCfg[0]) -ForegroundColor Yellow;
    $vnet = New-AzureRmVirtualNetwork -Name $vnetCfg[0] -Location $vnetCfg[2] -ResourceGroupName $vnetCfg[3] -AddressPrefix $vnetCfg[1] -WarningAction Ignore;
    for ($i = 1; $i -lt $subnetCount; $i++)
    {
        $subnetCfg = $parsedConfiguration[$i].Split(':');
        [void](Add-AzureRmVirtualNetworkSubnetConfig -Name $subnetCfg[0] -VirtualNetwork $vnet -AddressPrefix $subnetCfg[1]);
    }
    [void]($vnet | Set-AzureRmVirtualNetwork);
    Write-Host ("Vnet {0} created." -f $vnetCfg[0]) -ForegroundColor Green;
}

$vnetConfigurations = @(
    #vnetname:addressPrefix:location(chinanorth/chinaeast):resourceGroupName#subnetname:addressPrefix#subnetname:addressPrefix#subnetname:addressPrefix";
    "danTestVnet1:10.0.0.0/24:chinanorth:DanNorthResourceGroup1#subnet1:10.0.0.0/27#subnet2:10.0.0.32/27";
    "danTestVnet2:172.16.0.0/24:chinaeast:DanEastResourceGroup1#subnetA:172.16.0.0/27#subnetB:172.16.0.32/27"
    );

foreach ($vnetConfiguration in $vnetConfigurations)
{
    CreateVnetFromConfiguration $vnetConfiguration;
}

只需要根據實際需要修改$vnetConfigurations裏面的內容即可。

腳本運行結果:


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章