PowerShell量産VMエンドポイント
9087 ワード
PowerShellスクリプトでVMエンドポイントを一括追加できます.以下の案を参考にしてください.
準備作業–PowerShell接続China Azure
1.公式サイトからページをダウンロードし、Windows Azure PowerShell:http://www.windowsazure.cn/zh-cn/downloads/#cmd-line-toolsをダウンロードしてインストールする
2.インストールが完了したら管理者として実行し、PowerShellアイコンを右クリックし、管理者として実行することを選択します.
3.コマンドGet-AzurePublishSettings File-Environment"AzureChinaCloud"を実行し、開いたページからWindows Azure Subscriptionのパブリケーションプロファイルをダウンロードします.
4.PowerShellでImport-AzurePublishSettings File「プロファイルのローカル保存パスのパブリッシュ」を実行します.
シナリオ1:カスタムエンドポイントを一括追加する
メモ:この例では、仮想マシンに3つのポートが追加されています.
ポート名
プロトコル
共通ポート
プライベートポート
MyPort1
tcp
5001
5001
MyPort2
tcp
5002
5002
MyPort3
udp
5003
5003
この例では、クラウドサービス名と仮想マシン名は、JohnsonLinuxです.より多くのポートを追加する必要がある場合は、対応するフォーマットに従って$newVmEndpointsにポート構成を追加できます.フォーマット:(「ポート名」,「プロトコル」,「共通ポート」,「プライベートポート」)
シナリオ2:範囲の端点を一括追加
スクリプトのパラメータの説明を以下に示します.代わりにしてください.
$serviceName–VMが属するクラウドサービス名
$name–VM名
$portFrom–開始ポート番号
$portTo–終了ポート番号
$protocal–プロトコル名
次の例では、
1.TCPエンドポイントを1-150個追加しました.
2.共通ポートとプライベートポートの値が一致します.
3.エンドポイント名の形式は、プロトコル名+ポート番号です.
4.ポートが既に追加されている場合、スクリプトはポートを省略します.
5.同時に、テストの過程で、現在、最大150個のポートしか開放できないことを発見しました.
次に、スクリプトを実行した後の結果の一部を示します.
VMの下にあるすべてのエンドポイントを一括削除します.
準備作業–PowerShell接続China Azure
1.公式サイトからページをダウンロードし、Windows Azure PowerShell:http://www.windowsazure.cn/zh-cn/downloads/#cmd-line-toolsをダウンロードしてインストールする
2.インストールが完了したら管理者として実行し、PowerShellアイコンを右クリックし、管理者として実行することを選択します.
3.コマンドGet-AzurePublishSettings File-Environment"AzureChinaCloud"を実行し、開いたページからWindows Azure Subscriptionのパブリケーションプロファイルをダウンロードします.
4.PowerShellでImport-AzurePublishSettings File「プロファイルのローカル保存パスのパブリッシュ」を実行します.
シナリオ1:カスタムエンドポイントを一括追加する
メモ:この例では、仮想マシンに3つのポートが追加されています.
ポート名
プロトコル
共通ポート
プライベートポート
MyPort1
tcp
5001
5001
MyPort2
tcp
5002
5002
MyPort3
udp
5003
5003
この例では、クラウドサービス名と仮想マシン名は、JohnsonLinuxです.より多くのポートを追加する必要がある場合は、対応するフォーマットに従って$newVmEndpointsにポート構成を追加できます.フォーマット:(「ポート名」,「プロトコル」,「共通ポート」,「プライベートポート」)
$serviceName = "JohnsonLinux"
$name = "JohnsonLinux"
$newVmEndpoints = ("MyPort1","tcp",5001,5001) ,("MyPort2","tcp",5002,5002) ,("MyPort3","udp",5003,5003)
$myVm = Get-AzureVM -ServiceName $serviceName -Name $name
foreach ($endpointConfig in $newVmEndpoints)
{
$myVm | Add-AzureEndpoint -Name $endpointConfig[0] -Protocol $endpointConfig[1] -PublicPort $endpointConfig[2] -LocalPort $endpointConfig[3]
}
$myVm | Update-AzureVM
シナリオ2:範囲の端点を一括追加
スクリプトのパラメータの説明を以下に示します.代わりにしてください.
$serviceName–VMが属するクラウドサービス名
$name–VM名
$portFrom–開始ポート番号
$portTo–終了ポート番号
$protocal–プロトコル名
次の例では、
1.TCPエンドポイントを1-150個追加しました.
2.共通ポートとプライベートポートの値が一致します.
3.エンドポイント名の形式は、プロトコル名+ポート番号です.
4.ポートが既に追加されている場合、スクリプトはポートを省略します.
5.同時に、テストの過程で、現在、最大150個のポートしか開放できないことを発見しました.
$serviceName = "JohnsonLinux"
$name = "JohnsonLinux"
$protocol = "tcp"
$portFrom = 1
$portTo = 150
$myVm = Get-AzureVM -ServiceName $serviceName -Name $name
$existingPublicPorts = New-Object System.Collections.ArrayList
$existingLocalPorts = New-Object System.Collections.ArrayList
foreach($endpoint in $myVm | Get-AzureEndpoint)
{
if($protocal.Equals($endpoint.Protocol))
{
$existingPublicPorts.Add($endpoint.Port)
$existingLocalPorts.Add($endpoint.LocalPort)
}
}
for($index = $portFrom; $index -le $portTo; $index++)
{
if(!$existingPublicPorts.Contains($index) -and !$existingLocalPorts.Contains($index))
{
$portName = $protocol + $index
$myVm | Add-AzureEndpoint -Name $portName -Protocol $protocol -PublicPort $index -LocalPort $index
}
}
$myVm | Update-AzureVM
次に、スクリプトを実行した後の結果の一部を示します.
VMの下にあるすべてのエンドポイントを一括削除します.
$serviceName = "JohnsonLinux"
$name = "JohnsonLinux"
$myVm = Get-AzureVM -ServiceName $serviceName -Name $name
foreach($endpoint in $myVm | Get-AzureEndpoint)
{
$myVm | Remove-AzureEndpoint -Name $endpoint.Name
}
$myVm | Update-AzureVM