My Tracking

My Tracking

記憶力の低下が気になるアラフォー男の備忘録

【MicrosoftAzure】自習書シリーズをやってみる⑤(~仮想マシンの作成~)

引き続き、「Azure 自習書シリーズ コマンドラインによる仮想マシンの構成と操作」 (以下、「自習書シリーズ」を利用した学習記。

Download Microsoft Azure 自習書一式 from Official Microsoft Download Center

前回まで、リソースグループおよびストレージアカウントおよび仮想ネットワーク、 ネットワークインターフェイスとパブリックIPアドレスの作成まで行ったので、

今回は、MicrosoftAzure上に仮想マシンを作成してみる。

目次

学習目標とする構成

「自習書シリーズ」に掲載されている 下記の構成の完成が、当面の学習の目標。

※「Azure 自習書シリーズ コマンドラインによる仮想マシンの構成と操作」より引用。

参考書籍

以下を書籍を参考にしている。

仮想マシン作成について

まず、仮想マシン作成をPowershellで構成するにあたり、 以下のステップを踏む。

①New-AzureRmVMConfig で仮想マシンの構成オブジェクト(仮想マシンの設定情報など)を作成する。
②New-AzureRmVMに①で作成した構成情報などを渡し、仮想マシンを作成する。

(1) 「New-AzureRmVMConfig」コマンドによる構成情報を作成する。

仮想マシンの作成の構成情報を作成するには、New-AzureRmVMConfig コマンドレットを使用する。

「自習書シリーズ」に丁寧な解説があるが、 「New-AzureRmVMConfig」には、パラメータに指定できる値も あるようなので、ここでは、「自習書」シリーズの内容に準じ、下記のパラメータを設定し、実行する。

パラメータ 説明
VMName 仮想マシンの名前を指定
VMSize 仮想マシンのサイズを指定 
AvailabilitySetId 仮想マシンの可用性セットの ID を指定

VMSize パラメーターに設定できる値は、Get-AzureRmVMSize で取得することができる。

PS C:\WINDOWS\system32> Get-AzureRmVMSize -Location japanwest

Name             NumberOfCores MemoryInMB MaxDataDiskCount OSDiskSizeInMB ResourceDiskSizeInMB
----             ------------- ---------- ---------------- -------------- --------------------
Standard_A0                  1        768                1        1047552                20480
Standard_A1                  1       1792                2        1047552                71680
Standard_A2                  2       3584                4        1047552               138240
Standard_A3                  4       7168                8        1047552               291840
Standard_A5                  2      14336                4        1047552               138240
Standard_A4                  8      14336               16        1047552               619520
Standard_A6                  4      28672                8        1047552               291840
~ 中略 ~

(1)- ①.プロビジョニングに必要なその他の構成情報(「New-AzureRmVMConfig」コマンドに渡す情報」)

「New-AzureRmVMConfig」コマンドに渡すプロビジョニングに必要なその他の構成情報は 下記のように、複数のコマンドを指定する。

パラメータ 説明
Set-AzureRMVMOperatingSystem コンピューター名や仮想マシンに接続するための資格情報などの仮想マシンのプロパティを指定
Set-AzureRMVMSourceImage 仮想マシンを作成するためのソースとなるイメージを指定 
Set-AzureRmVMOSDisk OS ディスクの配置先として使用する Blob ストレージのパスなどを設定
Add-AzureRMVMNetworkInterface 仮想マシンに接続するネットワークインターフェイスのIDを指定

※上記コマンドの詳細のパラメータについては、多岐にわたる。「自習書シリーズ」に丁寧な解説があるが、 下記はその今回設定する箇所の抜粋。

(1)- ②.「Set-AzureRMVMOperatingSystem」コマンド(仮想マシンのOS情報などを設定)

設定する主なオプションについては下記のとおり。

パラメータ 説明
ComputerName コンピューター名を指定
Credential 仮想マシンに作成される管理者アカウントのための資格情報を指定 
VM 設定する仮想マシン構成オブジェクトを指定
Windows Windows OSであることを指定
EnableAutoUpdate 自動更新を有効化する場合指定

(1)- ③.「 Set-AzureRmVMSourceImage」コマンド(仮想マシン イメージの情報を設定)

設定する主なオプションについては下記のとおり。

パラメータ 説明
PublisherName 仮想マシン イメージの発行元の名前を指定
Offer 仮想マシン イメージのオファー名を指定 
Skus 仮想マシン イメージの SKU を指定
Version 仮想マシン イメージのバージョンを指定
VM 設定する仮想マシン構成オブジェクトを指定

※Offer に設定できる値は、「Get-AzureRmVMImageOffer」コマンドで Skusに設定できる値は、「Get-AzureRmVMImageSku」コマンドで取得することが 可能。

(1)- ④.「GetAzureRmVMImagePublisher 」 コマンド(仮想マシンのイメージの提供元を確認する)

仮想マシンイメージはさまざま提供元から、提供されている。 その提供元を取得するためには、「GetAzureRmVMImagePublisher 」 コマンドが利用できる。

$location = "japanwest"
Get-AzureRmVMImagePublisher -Location $location

PublisherName               Location  Id                                                                                                                           
-------------               --------  --                                                                                                                           
Microsoft                   japanwest /Subscriptions/32e39a2c-050d-4f6a-9782-34f7ec07199c/Providers/Microsoft.Compute/Locations/japanwest/Publishers/Microsoft     
microsoft-ads                   japanwest /Subscriptions/32e39a2c-050d-4f6a-9782-34f7ec07199c/Providers/Microsoft.Compute/Locations/japanwest/Publishers/microsoft-ads 
Microsoft.Azure.Applications    japanwest /Subscriptions/32e39a2c-050d-4f6a-9782-34f7ec07199c/Providers/Microsoft.Compute/Locations/japanwest/Publishers/Microsoft.A...
Microsoft.Azure.Backup.Test     japanwest /Subscriptions/32e39a2c-050d-4f6a-9782-34f7ec07199c/Providers/Microsoft.Compute/Locations/japanwest/Publishers/Microsoft.A...
~略 ~

PublisherName に「Microsoft」が含まれるデータ行のみを取得する場合。

$location = "japanwest"
Get-AzureRmVMImagePublisher -Location $location `
| ?{$_.PublisherName -like "Microsoft*"}

(1)- ⑤.「Set-AzureRmVMOSDisk」コマンド(OSの格納先などBlob ストレージのパスなどを設定)

設定する主なオプションについては下記のとおり。

パラメータ 説明
Name OS ディスクの名前を指定
VhdUri 作成する VHD ファイルの URI パスを指定 
Caching ディスク キャッシュ オプションを指定。ReadOnly、ReadWrite、None から選択可能。OS ディスクの既定値は、ReadWrite
CreateOption OS ディスクの作成方法を指定。Attach、Empty、FromImage から選択。 Azure のイメージ ギャラリーからプロビジョニングする場合、FromImage を指定

(1)- ⑥.「 Add-AzureRmVMNetworkInterface」コマンド(NIC仮想マシンに接続する。)

「Add-AzureRmVMNetworkInterface」 でネットワーク インターフェイス リソースを仮想マシンに接続する。

設定する主なオプションについては下記のとおり。

パラメータ 説明
id 仮想マシンで使用するネットワーク インターフェイス リソースの ID を GetAzureRmNetworkInterface で取得
VM ネットワーク インターフェイスを設定する仮想マシン構成オブジェクトを指定 

(2).「New-AzureRmVM」コマンドにより仮想マシンを作成する。

「New-AzureRmVMConfig 」で仮想マシンの構成オブジェクトを作成したら、 それらを「New-AzureRmVM」に渡し、仮想マシンを作成する。

設定する主なオプションについては下記のとおり。

パラメータ 説明
ResourceGroupName 仮想マシンを作成するリソース グループ名を指定
Location 仮想マシンを作成する地域を指定 
VM 仮想マシンを構成するためのオブジェクトを指定

(3). WEBサーバ用の仮想マシンの作成

上述した一連のコマンドを下記のスクリプトで実行する。 まずは、WEBサーバ用の仮想マシンを作成する。

今回は、IIS だけを使用するシンプルな Windows Server OS 仮 想マ シンを 作 成するため、 PublisherName が「MicrosoftWindowsServer」 の仮想マシンイメージを選択する。

# リソースグループ 
$rg = "AW-RG"

# 地域 
$location = "japanwest"

# 仮想マシンの構成情報 
$vmName = "Web01"
$vmSize = "Standard_A1"

# 仮想マシン イメージの情報 
$publisher = "MicrosoftWindowsServer"
$offer = "WindowsServer"
$sku = "2012-R2-Datacenter"
$version = "latest"

# OS ディスクの情報 
$StorageAccountName = "simalabmstorageacct"
$caching = "ReadWrite"
$createOption = "fromImage"
$vhdUri = "https://$StorageAccountName.blob.core.windows.net/vhds/$vmName-os.vhd"

# NIC の情報 
$nicName = "Web01-NIC" 
 
# NIC の情報を取得 
$nic = Get-AzureRmNetworkInterface -Name $nicName -ResourceGroupName $rg

# 仮想マシンの管理者アカウント情報を取得 
$cred = Get-Credential

# 仮想マシンの構成情報を作成 
$config = New-AzureRmVMConfig -VMName $vmName -VMSize $vmSize | Set-AzureRmVMOperatingSystem -Windows -ComputerName $vmName `
           -Credential $cred -ProvisionVMAgent -EnableAutoUpdate | Set-AzureRmVMSourceImage -PublisherName $publisher `
           -Offer $offer -Skus $sku -Version $version | Set-AzureRmVMOSDisk -Name "$vmName" -VhdUri $vhdUri `
           -Caching $caching -CreateOption $createOption |Add-AzureRmVMNetworkInterface -Id $nic.Id
           
#  仮想マシンの作成 
New-AzureRmVM -ResourceGroupName $rg -Location $location -VM $config 

Get-Credential より資格情報の入力を要求するダイアログボックスが表示されるので、 仮想マシンの管理者IDとパスワードを入力する。

その後、しばらく時間が経ったのち、下記の出力を得る。 StatusCode が「OK」となっていることを確認する。

RequestId IsSuccessStatusCode StatusCode ReasonPhrase
--------- ------------------- ---------- ------------
                         True         OK OK         

(4). DBサーバ用の仮想マシンの作成

続いて、DBサーバ用の仮想マシンを作成する。

今回は、SQL Server がインストールされる Windows Server OS 仮想マシンを作成するため、 PublisherName が 「MicrosoftSQLServer」 の仮想マシンイメージを選択する。

Get-Credential より資格情報の入力を要求するダイアログボックスが表示されるので、 仮想マシンの管理者IDとパスワードを入力する。

その後、しばらく時間が経ったのち、下記の出力を得る。 StatusCode が「OK」となっていることを確認する。

RequestId IsSuccessStatusCode StatusCode ReasonPhrase
--------- ------------------- ---------- ------------
                         True         OK OK