Visual Studio から 仮想マシンV2を作成する その2
前回 は、予め用意されていたテンプレートを使用して仮想マシンV2を作成しましたが、こんどはテンプレートが空の状態から作成してみたいと思います。
プロジェクトの作成
プロジェクトの新規作成から、空のテンプレートを選びます。

JSONファイルとアウトラインを確認すると、まだ何も記述されていない状態です。

リソースの追加
今回も、必要最小限のリソースでUbuntu Linux仮想マシンを作成してみます。必要なリソースは以下の5つです。
- ストレージアカウント
- パブリックIPアドレス
- ネットワークインタフェース
- 仮想ネットワーク
- 仮想マシン
リソースの追加は、JSONアウトラインのresourceを選択して、コンテキストメニューから「新しいリソースの追加」を選びます。
ストレージの追加
左ペインからストレージアカウントを選択します。適当に名前を入れると、JSONテンプレートに呪文のような定義が追加されます。

仮想マシンの追加
次に仮想マシンを追加します。ついでに、
- 仮想ネットワーク
- ネットワークインタフェース
までは連続して作成してくれます。左ペインから、Ubuntu 仮想マシンを選択します。ストレージアカウントは先程作成したもの、仮想ネットワーク/サブネットは新規作成を選択します。

引き続き仮想ネットワーク作成画面になります。適当に名前を入力します。

追加ボタンをクリックすると、以下のように表示されるので、さらに追加ボタンをクリックします。

ネットワークインタフェースは、無条件で作成されます。
パブリックIPアドレス
最後にパブリックIPアドレスを追加します。適当に名前を入力し、ネットワークインタフェースを選択して追加してください。

以上で、必要なリソースの追加は完了です。以下がすべてのリソースを追加した時のJSONアウトラインです。
resource部分に5つのリソースが定義されていることがわかります。

parametersは、選択可能なパラメータが定義されており、variablesには、既知の固定値、例えば、UbuntuのPublisherNameとか、Image名とかその他諸々が定義されています(
"variables": {
"myVirtualNetworkPrefix": "10.0.0.0/16",
"myVirtualNetworkSubnet1Name": "Subnet-1",
"myVirtualNetworkSubnet1Prefix": "10.0.0.0/24",
"myVirtualNetworkSubnet2Name": "Subnet-2",
"myVirtualNetworkSubnet2Prefix": "10.0.1.0/24",
"myUbuntuImagePublisher": "Canonical",
"myUbuntuImageOffer": "UbuntuServer",
"myUbuntuOSDiskName": "myUbuntuOSDisk",
"myUbuntuVmSize": "Standard_D1",
"myUbuntuVnetID": "[resourceId('Microsoft.Network/virtualNetworks', 'myVirtualNetwork')]",
"myUbuntuSubnetRef": "[concat(variables('myUbuntuVnetID'), '/subnets/', variables('myVirtualNetworkSubnet1Name'))]",
"myUbuntuStorageAccountContainerName": "vhds",
"myUbuntuNicName": "[concat(parameters('myUbuntuName'), 'NetworkInterface')]",
"myPublicIpAddressName": "myPublicIpAddress"
}
これら定義された変数は、resource側で参照されます。なので、必要なら直接書き換えればOKです。
デプロイ
生成されたJSONだと、ロケーションに日本が入っていないので、適当に "japan west"を追加します。先程と同様にパラメーターを編集してデプロイすれば完了です。

管理ポータルをみるとデプロイされていることが分かります。

以上。