前回 は、予め用意されていたテンプレートを使用して仮想マシン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"を追加します。先程と同様にパラメーターを編集してデプロイすれば完了です。
管理ポータルをみるとデプロイされていることが分かります。
以上。