特殊化 VHD ファイルから ARM 環境へ仮想マシンをデプロイする Azure PowerShell

Arika Okubo

こんにちは。Azure サポートチームの小久保です。

特殊化 VHD ファイルから ARM 環境へ仮想マシンをデプロイする Azure PowerShell のサンプルスクリプトをご紹介します。

なお、このサンプル スクリプトは管理ディスクを使用していない環境を想定しています。管理ディスク環境への変更は、このスクリプトで VM を作った後、別途 Azure VM を Azure Managed Disks に移行する をご参照の上、変換していただくと簡単です。

「注意事項」をご確認の上、ご利用をお願いいたします。

 

注意事項


 

ご参考


 

サンプルスクリプト


#設定項目

$SubscriptionId = "サブスクリプション ID"

$ResourceGroupName = "リソース グループ名"

$Location = "リージョン"

$VhdUri = "OS ディスクの VHD フルパス"

$VmName = "仮想マシン名"

$VmSize = "仮想マシンサイズ"

$VnetName = "仮想ネットワーク名"

$SubnetName = "サブネット名"

$PublicIpName = "パブリック IP アドレス名"

$NsgRuleName = "セキュリティ規則名"

$NsgName = "ネットワーク セキュリティ グループ名"

$Nic1Name = "ネットワーク インターフェイス名"

# 可用性セットは、任意

$AvailabilitySetName = "可用性セット名"

# ログインおよびサブスクリプションの指定

Login-AzureRmAccount

Select-AzureRmSubscription -SubscriptionId $SubscriptionId

#対象の仮想ネットワーク、サブネット情報を取得

$Vnet = Get-AzureRmVirtualNetwork -ResourceGroupName $ResourceGroupName -Name $VnetName

$Subnet = Get-AzureRmVirtualNetworkSubnetConfig -Name $SubnetName -VirtualNetwork $Vnet

# 対象の可用性セット情報を取得 (任意)

$AvailabilitySet = Get-AzureRmAvailabilitySet -Name $AvailabilitySetName -ResourceGroupName $ResourceGroupName

# 仮想マシンの設定を定義

$VmConfig = New-AzureRmVMConfig -Name $VmName -VMSize $VmSize

$VmConfig = Set-AzureRmVMOSDisk -VM $VmConfig -VhdUri $VhdUri -Name "OSDisk" -CreateOption attach -Windows `

-Caching ReadWrite

# 可用性セットは、任意

$VmConfig.AvailabilitySetReference = $AvailabilitySet.Id

# パブリック IP を作成

$Pip = New-AzureRmPublicIpAddress -ResourceGroupName $ResourceGroupName -Location $Location `

-AllocationMethod Static -IdleTimeoutInMinutes 4 -Name $PublicIpName

# 受信セキュリティ規則を作成 (For port 3389)

$NsgRuleRDP = New-AzureRmNetworkSecurityRuleConfig -Name $NsgRuleName -Protocol Tcp `

-Direction Inbound -Priority 1000 -SourceAddressPrefix * -SourcePortRange * -DestinationAddressPrefix * `

-DestinationPortRange 3389 -Access Allow

# ネットワーク セキュリティ グループ を作成

$Nsg = New-AzureRmNetworkSecurityGroup -ResourceGroupName $ResourceGroupName -Location $Location `

-Name $NsgName -SecurityRules $NsgRuleRDP

# NIC を作成、追加

$Nic1 = New-AzureRmNetworkInterface -Name $Nic1Name -ResourceGroupName $ResourceGroupName -Location $Location `

-SubnetId $Subnet.Id -PublicIpAddressId $Pip.Id -NetworkSecurityGroupId $Nsg.Id

$Nic1 = Get-AzureRmNetworkInterface -ResourceGroupName $ResourceGroupName -Name $Nic1Name

$VmConfig = Add-AzureRmVMNetworkInterface -VM $VmConfig -NetworkInterface $Nic1

$VmConfig.NetworkProfile.NetworkInterfaces.Item(0).Primary = $true

#仮想マシンを作成

New-AzureRmVM -ResourceGroupName $ResourceGroupName -Location $Location -VM $VmConfig -Verbose

 

本情報の内容(添付文書、リンク先などを含む)は、作成日時点でのものであり、予告なく変更される場合があります。