向 Azure 规模集模板添加自定义映像
注意
本文档介绍在统一业务流程模式下运行的虚拟机规模集。 建议对新工作负载使用灵活业务流程。 有关详细信息,请参阅 Azure 中虚拟机规模集的业务流程模式。
本文介绍如何修改基本规模集模板以通过自定义映像进行部署。
更改模板定义
在前面的文章中,我们创建了一个基本规模集模板。 现在,我们将使用前面的模板并对其进行修改,以创建一个模板,该模板通过自定义映像部署规模集。
创建托管磁盘映像
如果已有自定义托管磁盘映像(类型为 Microsoft.Compute/images
的资源),可跳过此部分。
首先添加 sourceImageVhdUri
参数,它是 Azure 存储中通用 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。 该映像必须与使用它的规模集位于同一区域。 在映像属性中,指定操作系统类型、Blob 位置(通过 sourceImageVhdUri
参数)和存储帐户类型:
"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 资源管理器文档部署上述模板。
若要学习这一系列教程,可先阅读基本规模集模板文章。
可以了解如何修改基本规模集模板,以便将规模集部署到现有虚拟网络。
可以了解如何修改基本规模集模板,以便使用自定义映像部署规模集。
可以了解如何修改基本规模集模板,以便使用基于来宾的自动缩放部署 Linux 规模集。
有关规模集的详细信息,请参阅规模集概述页。