次の方法で共有


Azure スケール セット テンプレートにカスタム イメージを追加する

注意

このドキュメントでは、均一オーケストレーション モードで実行される Virtual Machine Scale Sets について説明します。 新しいワークロードにはフレキシブル オーケストレーションを使用することをお勧めします。 詳細については、「Azure の仮想マシン スケール セットのオーケストレーション モード」を参照してください。

この記事では、基本のスケール セット テンプレートを変更してカスタム イメージをデプロイする方法を説明します。

テンプレートの定義を変更する

前回のアーティクルでは、基本的なスケール セット テンプレートを作成しました。 では、以前のテンプレートを使用して、スケール セットをカスタム イメージから展開するテンプレートを作成します。

マネージド ディスク イメージを作成する

カスタムのマネージド ディスク イメージ (Microsoft.Compute/images 型のリソース) が既にある場合は、このセクションを省略できます。

最初に、sourceImageVhdUri パラメーターを追加します。これは、デプロイ元のカスタム イメージを含む Azure Storage 内の汎用化された blob への URI です。

     },
     "adminPassword": {
       "type": "securestring"
+    },
+    "sourceImageVhdUri": {
+      "type": "string",
+      "metadata": {
+        "description": "The source of the generalized blob containing the custom image"
+      }
     }
   },
   "variables": {},

次に、Microsoft.Compute/images 型のリソースを追加します。これは、URI sourceImageVhdUri にある汎用化された blob に基づくマネージド ディスク イメージです。 このイメージは、イメージを使用するスケール セットと同じリージョンにある必要があります。 イメージのプロパティで、OS のタイプ、(sourceImageVhdUri パラメーターからの) blob の場所、およびストレージ アカウントのタイプを指定します。

   "resources": [
     {
+      "type": "Microsoft.Compute/images",
+      "apiVersion": "2019-03-01",
+      "name": "myCustomImage",
+      "location": "[resourceGroup().location]",
+      "properties": {
+        "storageProfile": {
+          "osDisk": {
+            "osType": "Linux",
+            "osState": "Generalized",
+            "blobUri": "[parameters('sourceImageVhdUri')]",
+            "storageAccountType": "Standard_LRS"
+          }
+        }
+      }
+    },
+    {
       "type": "Microsoft.Network/virtualNetworks",
       "name": "myVnet",
       "location": "[resourceGroup().location]",

スケール セット リソースで、カスタム イメージを参照する dependsOn 句を追加して、イメージが作成されてから、スケール セットがそのイメージからデプロイを試行するようにします。

       "location": "[resourceGroup().location]",
       "apiVersion": "2019-03-01-preview",
       "dependsOn": [
-        "Microsoft.Network/virtualNetworks/myVnet"
+        "Microsoft.Network/virtualNetworks/myVnet",
+        "Microsoft.Compute/images/myCustomImage"
       ],
       "sku": {
         "name": "Standard_A1",

マネージド ディスク イメージを使用するようにスケール セット プロパティを変更する

スケール セット storageProfileimageReference で、発行元、プラン、SKU、およびプラットフォーム イメージのバージョンを指定する代わりに、Microsoft.Compute/images リソースの id を指定します。

  "virtualMachineProfile": {
    "storageProfile": {
      "imageReference": {
        "id": "[resourceId('Microsoft.Compute/images', omImage')]"
      }
    },
    "osProfile": {
      ...
    }
  }

この例では、resourceId 関数を使用して、同じテンプレートで作成したイメージのリソース ID を取得します。 マネージド ディスク イメージを事前に作成している場合は、代わりにそのイメージの ID を指定する必要があります。 この ID は、/subscriptions/<subscription-id>resourceGroups/<resource-group-name>/providers/Microsoft.Compute/images/<image-name> の形式で指定する必要があります。

次の手順

上記のテンプレートは、Azure Resource Manager のドキュメントに従ってデプロイできます。

このチュートリアル シリーズは、基本スケール セット テンプレートの記事から開始できます。

基本スケール セット テンプレートを変更し、そのスケール セットを既存の仮想ネットワークにデプロイする方法を確認できます。

カスタム イメージを使用してスケール セットをデプロイするように基本スケール セット テンプレートを変更する方法を確認できます。

ゲストベースの自動スケーリングで Linux スケール セットをデプロイするように基本スケール セット テンプレートを変更する方法を確認できます。

スケール セットの詳細については、スケール セットの概要に関するページを参照してください。