2016年5月15日日曜日

githubのAzure Resource Manager テンプレートをカスタマイズしてみた - 仮想ネットワーク

githubのAzure Resource Manager テンプレート https://github.com/Azure/azure-quickstart-templatesは、ご存じだと思います。

自分の勉強もかねて、テンプレートをカスタマイズしてみたので、参考までに公開します。
もっと洗練された方法があればコメントもらえるとありがたいです。

カスタマイズした元ネタは、azure-quickstart-templates / 101-vnet-two-subnets /です。続いて公開予定のVMテンプレートにてVariablesにコーディングしているので、最初に載せておくこととしました。
こちらは、

  • "vnetName"のdefaultvalueを変えたこと
  • 10.0.0.0/24をゲートウェイサブネット用に予約するため、"subnet1Name"と"subnet2Name"のアドレス範囲を変更

くらいで大したカスタマイズではありません。なお、クラスAのvnetAddressPrefixを10.0.0.0/16から、もう少し狭くしようと試みたものの、ここを変えるとうまくAzure Resource Managerにデプロイできなかったりしますので、留意しておくべきでしょうか。
ここに、サブネットやゲートウェイサブネットを追加するテンプレートもgithubのAzure Resource Manager テンプレート https://github.com/Azure/azure-quickstart-templatesをベースにカスタマイズしてみたいと考えています。

というわけで、カスタマイズしたコードを下記に貼っておきます。

{
  "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "vnetName": {
      "type": "string",
      "defaultValue": "ArmVNet1",
      "metadata": {
        "description": "VNet name"
      }
    },
    "vnetAddressPrefix": {
      "type": "string",
      "defaultValue": "10.0.0.0/16",
      "metadata": {
        "description": "Address prefix"
      }
    },
    "subnet1Prefix": {
      "type": "string",
      "defaultValue": "10.0.1.0/24",
      "metadata": {
        "description": "Subnet 1 Prefix"
      }
    },
    "subnet1Name": {
      "type": "string",
      "defaultValue": "Subnet1",
      "metadata": {
        "description": "Subnet 1 Name"
      }
    },
    "subnet2Prefix": {
      "type": "string",
      "defaultValue": "10.0.2.0/24",
      "metadata": {
        "description": "Subnet 2 Prefix"
      }
    },
    "subnet2Name": {
      "type": "string",
      "defaultValue": "Subnet2",
      "metadata": {
        "description": "Subnet 2 Name"
      }
    }
  },
  "variables": {
    "apiVersion": "2015-06-15"
  },
  "resources": [
    {
      "apiVersion": "[variables('apiVersion')]",
      "type": "Microsoft.Network/virtualNetworks",
      "name": "[parameters('vnetName')]",
      "location": "[resourceGroup().location]",
      "properties": {
        "addressSpace": {
          "addressPrefixes": [
            "[parameters('vnetAddressPrefix')]"
          ]
        },
        "subnets": [
          {
            "name": "[parameters('subnet1Name')]",
            "properties": {
              "addressPrefix": "[parameters('subnet1Prefix')]"
            }
          },
          {
            "name": "[parameters('subnet2Name')]",
            "properties": {
              "addressPrefix": "[parameters('subnet2Prefix')]"
            }
          }
        ]
      }
    }
  ]
}

0 件のコメント:

コメントを投稿