ポータル、Powershellを使って、AzureResourceManagerのVMテンプレートイメージを作る

Azure CLIを使ったリソース マネージャーのテンプレートとして使用する Linux 仮想マシンをキャプチャする方法

これをPowershellでいろいろ省きながらやってみます。

VMはすでにあるものとして仮定するため、作成の手順は割愛します。

VisualStudioでSDKを入れてる人はいらないはずです。何もない人は、Powershellのコマンドラインツールを入れてください。

まずはログインです。

PS > Login-AzureRmAccount

ここでダイアログが出てくるので、サブスクリプションのあるアカウントでログインします。大抵はMsアカウントのはずです。

複数のサブスクリプションを持ってる人は以下で、サブスクリプションを選択する必要があります。

Get-AzureRmSubscriptionを使って、サブスクリプションの一覧を取得

PS >Get-AzureRmSubscription

SubscriptionName : [サブスクリプション名]
SubscriptionId   : 2aaa2a2a-9aa9-99a9-aaaa-aaaaaaaaaaaa
TenantId         : 99999999-9999-9999-9999-1234567890123
SubscriptionName : [サブスクリプション名]
SubscriptionId   : 2aaa2a2a-9aa9-99a9-aaaa-aaaaaaaaaaaa
TenantId         : 99999999-9999-9999-9999-1234567890123
サブスクリプションを以下で選択
PS > Set-AzureRmContext -SubscriptionName [サブスクリプション名]
Environment           : AzureCloud
Account               : vnext-vnext@example.com
TenantId              : 99999999-9999-9999-9999-1234567890123
SubscriptionId        : 2aaa2a2a-9aa9-99a9-aaaa-aaaaaaaaaaaa
CurrentStorageAccount :
イメージを一般化(事前にVMは停止させておきましょう)
PS > Set-AzureRmVM -Generalized -Name [仮想マシン名] -ResourceGroupName [リソースグループ名]
RequestId                            IsSuccessStatusCode StatusCode ReasonPhrase
———                            ——————- ———- ————
99999999-9999-9999-9999-1234567890123               True         OK OK
イメージをテンプレート化する
PS > Save-AzureRmVMImage -DestinationContainerName [Blobコンテナ名] -Name [仮想マシン名] -ResourceGroupName [リソースグループ名] -VHDNamePrefix [VHD名のプリフィクス]
RequestId IsSuccessStatusCode StatusCode ReasonPhrase
——— ——————- ———- ————
True         OK OK
ここで、VNET整備してますが、ポータルでもできることなので、ポータルでやってしまってもやってしまっていいような気がします。割愛。
Blobが増えてるので、JSONファイルをダウンロードしてクリップボードにコピー
Marketplaceからテンプレートのデプロイを検索
ダウンロードしたJSONを貼り付けます。
あとは、パラメータを設定、リソースグループを設定して、作成!
というざっくりな流れです!
networkInterfaceIdは「/subscriptions/[サブスクリプションID]/resourceGroups/backup-test/providers/Microsoft.Network/networkInterfaces/[ネットワークインターフェイス名]」という形式なのに注意しましょう。