Azureの小ネタ (改)

~Azureネタを中心に、色々とその他の技術的なことなどを~

Visual Studio から 仮想マシンV2を作成する その2

前回 は、予め用意されていたテンプレートを使用して仮想マシンV2を作成しましたが、こんどはテンプレートが空の状態から作成してみたいと思います。

プロジェクトの作成

プロジェクトの新規作成から、空のテンプレートを選びます。

f:id:StateMachine:20150707180643p:plain

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

f:id:StateMachine:20150707180731p:plain

リソースの追加

今回も、必要最小限のリソースでUbuntu Linux仮想マシンを作成してみます。必要なリソースは以下の5つです。

  • ストレージアカウント
  • パブリックIPアドレス
  • ネットワークインタフェース
  • 仮想ネットワーク
  • 仮想マシン

リソースの追加は、JSONアウトラインのresourceを選択して、コンテキストメニューから「新しいリソースの追加」を選びます。

ストレージの追加

左ペインからストレージアカウントを選択します。適当に名前を入れると、JSONテンプレートに呪文のような定義が追加されます。

f:id:StateMachine:20150707181003p:plain

仮想マシンの追加

次に仮想マシンを追加します。ついでに、

  • 仮想ネットワーク
  • ネットワークインタフェース

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

f:id:StateMachine:20150707181510p:plain

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

f:id:StateMachine:20150707181615p:plain

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

f:id:StateMachine:20150707181657p:plain

ネットワークインタフェースは、無条件で作成されます。

パブリックIPアドレス

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

f:id:StateMachine:20150707181756p:plain

以上で、必要なリソースの追加は完了です。以下がすべてのリソースを追加した時のJSONアウトラインです。

resource部分に5つのリソースが定義されていることがわかります。

f:id:StateMachine:20150707181846p:plain

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"を追加します。先程と同様にパラメーターを編集してデプロイすれば完了です。

f:id:StateMachine:20150708101022p:plain

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

f:id:StateMachine:20150708102102p:plain

以上。