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",
マネージド ディスク イメージを使用するようにスケール セット プロパティを変更する
スケール セット storageProfile
の imageReference
で、発行元、プラン、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 スケール セットをデプロイするように基本スケール セット テンプレートを変更する方法を確認できます。
スケール セットの詳細については、スケール セットの概要に関するページを参照してください。