仮想マシンの作成には色々なパターンがあると思いますが、一つの例としてサンプルスクリプトを載せておきます。
サンプルで作る仮想マシン
今回作るマシンには以下のような設定を含んでいます。
- PowerShellのリモート実行用のエンドポイントを解放
- タイムゾーンは東京
- VMエージェントをインストール
- 空のデータファイルを複数アタッチ
- 設定済みの仮想ネットワークを利用
- マシンのサイズはA5インスタンス
- 証明書交換ができてない状態でも実行できるようにAdd-AzureAccountコマンドを利用
スクリプト例
スクリプトはこちらです。
#サブスクリプション $subscription = "<サブスクリプション名>" #VM設定 $ServiceName = "<クラウドサービス名>" $VMName = "<仮想マシン名>" $ImageName = "<イメージ名>" $InstanceSize = "A5" $TimeZone = "Tokyo Standard Time" #VM設定(User) $AdminUser = "<管理者ユーザ>" $AdminPassword = "<管理者ユーザのパスワード>" #VM設定(Network) $AzureVNSubnet = "<仮想ネットワークのサブネット名>" #VM設定(OS Disk) $StorageAccountName = "<ストレージアカウント名>" $OSDiskName = "{0}-OS" -F $VMName $OSStoragePath = "http://{0}.blob.core.windows.net/vhds/{1}.VHD" -F $StorageAccountName , $OSDiskName $OSDiskCache = "ReadWrite" #VM設定(Data Disk) $DataDiskNum = 4 $DataDiskSizeGB = 500 $DataDiskCache = "None" #モジュールインポート・サブスクリプション選択 Import-Module azure Add-AzureAccount Select-AzureSubscription $subscription #VM設定オブジェクト生成 $VMConfig = New-AzureVMConfig -Name $VMName -InstanceSize $InstanceSize -ImageName $ImageName -MediaLocation $OSStoragePath -HostCaching $OSDiskCache | Set-AzureSubnet -SubnetNames $AzureVNSubnet | Set-AzureVMBGInfoExtension | Add-AzureProvisioningConfig -Windows -AdminUsername $AdminUser -Password $AdminPassword -TimeZone $TimeZone -EnableWinRMHttp #設定した本数分の空のDATAディスクをアタッチ for ($i = 1; $i -le $DataDiskNum; $i++) { $DataDiskName = "{0}-DATA{1}" -F $VMName,$i $OSStoragePath = "http://{0}.blob.core.windows.net/vhds/{1}.VHD" -F $StorageAccountName , $DataDiskName $VMConfig = $VMConfig | Add-AzureDataDisk -CreateNew -MediaLocation $OSStoragePath -DiskSizeInGB $DataDiskSizeGB -DiskLabel $DATADiskName -LUN $i -HostCaching $DataDiskCache } #VM作成 New-AzureVM -ServiceName $ServiceName -VMs $VMConfig -Verbose -WaitForBoot
スクリプトさえできてしまえば、仮想マシンをコマンド一本で作成できてしまいます。
PowerShellのリモート実行やDSCを組み合わせれば、プロビジョニングがもっと簡単になります。
Azure上の仮想マシンにPowerShellでリモートコマンドを実行する - YOMON8.NET