我正在从多个地区的Azure中的VHD部署虚拟机。我为每个区域创建了新的资源组和存储帐户,尽管用于创建映像的VHD文件相同。有没有优化的方法来使用Azure中的资源?我可以将一个存储帐户中的Blob用于其他区域的部署。
答案 0 :(得分:0)
您可以使用多种方式在Azure中自动执行部署。手臂模板可能是最好的模板。老实说,对于不确定的磁盘,我不确定是否可以从blob创建带有arm模板的磁盘,但是可以从现有的blob创建具有非托管磁盘的vm:
{
"apiVersion": "2015-06-15",
"type": "Microsoft.Compute/virtualMachines",
"name": "[variables('vmName')]",
"location": "[resourceGroup().location]",
"dependsOn": [
"[resourceId('Microsoft.Storage/storageAccounts/', variables('storageAccountName'))]",
"[resourceId('Microsoft.Network/networkInterfaces/', variables('nicName'))]"
],
"properties": {
"hardwareProfile": {...},
"osProfile": {...},
"storageProfile": {
"imageReference": {
"publisher": "MicrosoftWindowsServer",
"offer": "WindowsServer",
"sku": "[parameters('windowsOSVersion')]",
"version": "latest"
},
"osDisk": {
"name": "osdisk",
"vhd": {
"uri": "[concat(reference(resourceId('Microsoft.Storage/storageAccounts/', variables('storageAccountName'))).primaryEndpoints.blob, 'vhds/osdisk.vhd')]"
},
"caching": "ReadWrite",
"createOption": "FromImage"
},
"dataDisks": [
{
"name": "datadisk1",
"diskSizeGB": 1023,
"lun": 0,
"vhd": {
"uri": "[concat(reference(resourceId('Microsoft.Storage/storageAccounts/', variables('storageAccountName'))).primaryEndpoints.blob, 'vhds/datadisk1.vhd')]"
},
"createOption": "Empty"
}
]
},
"networkProfile": {...},
"diagnosticsProfile": {...}
}
}
但是我非常确定,如果要使用托管磁盘,可以首先创建一个托管映像,并且可以从blob uri创建托管磁盘,但是它们必须位于同一区域(映像和blob)。