В данных часто задаваемых вопросах рассматриваются распространенные проблемы, которые могут возникнуть при создании предложения виртуальной машины в Azure Marketplace.
Как настроить виртуальную частную сеть (VPN) для работы с моими виртуальными машинами?
Если вы используете модель развертывания Azure Resource Manager, у вас есть три варианта:
Каковы политики поддержки корпорации Майкрософт для запуска серверного программного обеспечения Майкрософт на виртуальных машинах Azure?
Подробнее см. в статье Поддержка серверного ПО Майкрософт для виртуальных машин Microsoft Azure.
Как выполняется управление расширением настраиваемых сценариев при запуске виртуальной машины?
Сведения об использовании расширения настраиваемых сценариев с помощью модуля Azure PowerShell, шаблонов Azure Resource Manager, а также сведения о действиях по устранению неполадок в системах Windows см. в статье Расширение настраиваемого сценария в ОС Windows.
Поддерживаются ли 32-разрядные приложения или службы в Azure Marketplace?
№ Поддерживаемые операционные системы и стандартные службы для виртуальных машин Azure являются 64-разрядными. Несмотря на то что большинство 64-разрядных операционных систем поддерживают 32-разрядные версии приложений для обеспечения обратной совместимости, использование 32-разрядных приложений в рамках решения виртуальной машины не поддерживается и не рекомендуется к использованию. Повторно создайте приложение как 64-разрядный проект.
Дополнительные сведения см. в следующих статьях:
Ошибка: VHD уже зарегистрирован в репозитории образов в качестве ресурса
Каждый раз при попытке создать образ виртуальных жестких дисков в Azure PowerShell отображается следующее сообщение об ошибке: "VHD уже зарегистрирован в репозитории образов как ресурс". Я не создавал образы раньше, и в Azure отсутствует образ с таким именем. Как решить эту проблему?
Эта проблема обычно возникает, если вы создали виртуальную машину на основе виртуального жесткого диска, который имеет блокировку. Убедитесь, что виртуальная машина не выделена из этого виртуального жесткого диска, а затем повторите операцию. Если проблема не устранена, отправьте запрос в службу поддержки. См. статью Поддержка для Центра партнеров.
Как создать виртуальную машину на основе обобщенного образа VHD?
Подготовка шаблона Azure Resource Manager
В этом разделе описывается создание и развертывание образа виртуальной машины, предоставленного пользователем, путем предоставления образов виртуального жесткого диска операционной системы и диска данных из виртуального жесткого диска, развернутого в Azure. Эти действия используются для развертывания виртуальной машины с помощью обобщенного образа виртуального жесткого диска.
Войдите на портал Azure.
Передайте обобщенные виртуальные жесткие диски с операционной системой и VHD-диски данных в учетную запись хранения Azure.
На домашней странице выберите элемент Создать ресурс. Найдите "развертывание шаблона" и нажмите кнопку "Создать".
Выберите Создать собственный шаблон в редакторе.
Вставьте следующий шаблон JSON в редактор и нажмите кнопку "Сохранить".
{ "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#", "contentVersion": "1.0.0.0", "parameters": { "userStorageAccountName": { "type": "String" }, "userStorageContainerName": { "defaultValue": "vhds", "type": "String" }, "dnsNameForPublicIP": { "type": "String" }, "adminUserName": { "defaultValue": "isv", "type": "String" }, "adminPassword": { "defaultValue": "", "type": "SecureString" }, "osType": { "defaultValue": "windows", "allowedValues": [ "windows", "linux" ], "type": "String" }, "subscriptionId": { "type": "String" }, "location": { "type": "String" }, "vmSize": { "type": "String" }, "publicIPAddressName": { "type": "String" }, "vmName": { "type": "String" }, "virtualNetworkName": { "type": "String" }, "nicName": { "type": "String" }, "vhdUrl": { "type": "String", "metadata": { "description": "VHD Url..." } } }, "variables": { "addressPrefix": "10.0.0.0/16", "subnet1Name": "Subnet-1", "subnet2Name": "Subnet-2", "subnet1Prefix": "10.0.0.0/24", "subnet2Prefix": "10.0.1.0/24", "publicIPAddressType": "Dynamic", "vnetID": "[resourceId('Microsoft.Network/virtualNetworks',parameters('virtualNetworkName'))]", "subnet1Ref": "[concat(variables('vnetID'),'/subnets/',variables('subnet1Name'))]", "hostDNSNameScriptArgument": "[concat(parameters('dnsNameForPublicIP'),'.',parameters('location'),'.cloudapp.azure.com')]", "osDiskVhdName": "[concat('http://',parameters('userStorageAccountName'),'.blob.core.windows.net/',parameters('userStorageContainerName'),'/',parameters('vmName'),'osDisk.vhd')]" }, "resources": [ { "type": "Microsoft.Network/publicIPAddresses", "apiVersion": "2015-06-15", "name": "[parameters('publicIPAddressName')]", "location": "[parameters('location')]", "properties": { "publicIPAllocationMethod": "[variables('publicIPAddressType')]", "dnsSettings": { "domainNameLabel": "[parameters('dnsNameForPublicIP')]" } } }, { "type": "Microsoft.Network/virtualNetworks", "apiVersion": "2015-06-15", "name": "[parameters('virtualNetworkName')]", "location": "[parameters('location')]", "properties": { "addressSpace": { "addressPrefixes": [ "[variables('addressPrefix')]" ] }, "subnets": [ { "name": "[variables('subnet1Name')]", "properties": { "addressPrefix": "[variables('subnet1Prefix')]" } }, { "name": "[variables('subnet2Name')]", "properties": { "addressPrefix": "[variables('subnet2Prefix')]" } } ] } }, { "type": "Microsoft.Network/networkInterfaces", "apiVersion": "2015-06-15", "name": "[parameters('nicName')]", "location": "[parameters('location')]", "dependsOn": [ "[concat('Microsoft.Network/publicIPAddresses/', parameters('publicIPAddressName'))]", "[concat('Microsoft.Network/virtualNetworks/', parameters('virtualNetworkName'))]" ], "properties": { "ipConfigurations": [ { "name": "ipconfig1", "properties": { "privateIPAllocationMethod": "Dynamic", "publicIPAddress": { "id": "[resourceId('Microsoft.Network/publicIPAddresses',parameters('publicIPAddressName'))]" }, "subnet": { "id": "[variables('subnet1Ref')]" } } } ] } }, { "type": "Microsoft.Compute/virtualMachines", "apiVersion": "2015-06-15", "name": "[parameters('vmName')]", "location": "[parameters('location')]", "dependsOn": [ "[concat('Microsoft.Network/networkInterfaces/', parameters('nicName'))]" ], "properties": { "hardwareProfile": { "vmSize": "[parameters('vmSize')]" }, "osProfile": { "computername": "[parameters('vmName')]", "adminUsername": "[parameters('adminUsername')]", "adminPassword": "[parameters('adminPassword')]" }, "storageProfile": { "osDisk": { "name": "[concat(parameters('vmName'),'-osDisk')]", "osType": "[parameters('osType')]", "caching": "ReadWrite", "image": { "uri": "[parameters('vhdUrl')]" }, "vhd": { "uri": "[variables('osDiskVhdName')]" }, "createOption": "FromImage" } }, "networkProfile": { "networkInterfaces": [ { "id": "[resourceId('Microsoft.Network/networkInterfaces',parameters('nicName'))]" } ] } } } ] }
Укажите значения параметров на страницах свойств Настраиваемое развертывание.
ResourceGroupName Имя существующей группы ресурсов Azure. Обычно используется та же группа репликации, что и для хранилища ключей. TemplateFile Полный путь к файлу VHDtoImage.json. userStorageAccountName Имя учетной записи хранения dnsNameForPublicIP DNS-имя общедоступного IP-адреса в нижнем регистре. subscriptionId Идентификатор подписки Azure. Расположение Стандартное географическое расположение Azure для группы ресурсов. vmName Имя виртуальной машины. vhdUrl Веб-адрес виртуального жесткого диска. vmSize Размер экземпляра виртуальной машины. publicIPAddressName Имя общедоступного IP-адреса. virtualNetworkName Имя виртуальной сети. nicName Имя сетевого адаптера для виртуальной сети. adminUserName Имя пользователя учетной записи администратора. adminPassword Пароль администратора. После ввода этих значений выберите Покупка.
Azure начинает развертывание. Будет создана виртуальная машина с указанным неуправляемым VHD в определенном пути к учетной записи хранения. На портале Azure можно отслеживать ход выполнения, щелкнув Виртуальные машины в левой части. При создании виртуальной машины состояние изменяется с начала работы.
Для развертывания виртуальных машин поколения 2 используйте следующий шаблон:
{ "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#", "contentVersion": "1.0.0.0", "parameters": { "userStorageAccountName": { "type": "String" }, "userStorageContainerName": { "defaultValue": "vhds", "type": "String" }, "dnsNameForPublicIP": { "type": "String" }, "adminUserName": { "defaultValue": "isv", "type": "String" }, "adminPassword": { "defaultValue": "", "type": "SecureString" }, "osType": { "defaultValue": "windows", "allowedValues": [ "windows", "linux" ], "type": "String" }, "subscriptionId": { "type": "String" }, "location": { "type": "String" }, "vmSize": { "type": "String" }, "publicIPAddressName": { "type": "String" }, "vmName": { "type": "String" }, "virtualNetworkName": { "type": "String" }, "nicName": { "type": "String" }, "vhdUrl": { "type": "String", "metadata": { "description": "VHD Url..." } } }, "variables": { "addressPrefix": "10.0.0.0/16", "subnet1Name": "Subnet-1", "subnet2Name": "Subnet-2", "subnet1Prefix": "10.0.0.0/24", "subnet2Prefix": "10.0.1.0/24", "publicIPAddressType": "Dynamic", "vnetID": "[resourceId('Microsoft.Network/virtualNetworks',parameters('virtualNetworkName'))]", "subnet1Ref": "[concat(variables('vnetID'),'/subnets/',variables('subnet1Name'))]", "hostDNSNameScriptArgument": "[concat(parameters('dnsNameForPublicIP'),'.',parameters('location'),'.cloudapp.azure.com')]", "osDiskVhdName": "[concat('http://',parameters('userStorageAccountName'),'.blob.core.windows.net/',parameters('userStorageContainerName'),'/',parameters('vmName'),'osDisk.vhd')]" }, "resources": [ { "type": "Microsoft.Network/publicIPAddresses", "apiVersion": "2015-06-15", "name": "[parameters('publicIPAddressName')]", "location": "[parameters('location')]", "properties": { "publicIPAllocationMethod": "[variables('publicIPAddressType')]", "dnsSettings": { "domainNameLabel": "[parameters('dnsNameForPublicIP')]" } } }, { "type": "Microsoft.Network/virtualNetworks", "apiVersion": "2015-06-15", "name": "[parameters('virtualNetworkName')]", "location": "[parameters('location')]", "properties": { "addressSpace": { "addressPrefixes": [ "[variables('addressPrefix')]" ] }, "subnets": [ { "name": "[variables('subnet1Name')]", "properties": { "addressPrefix": "[variables('subnet1Prefix')]" } }, { "name": "[variables('subnet2Name')]", "properties": { "addressPrefix": "[variables('subnet2Prefix')]" } } ] } }, { "type": "Microsoft.Network/networkInterfaces", "apiVersion": "2015-06-15", "name": "[parameters('nicName')]", "location": "[parameters('location')]", "dependsOn": [ "[concat('Microsoft.Network/publicIPAddresses/', parameters('publicIPAddressName'))]", "[concat('Microsoft.Network/virtualNetworks/', parameters('virtualNetworkName'))]" ], "properties": { "ipConfigurations": [ { "name": "ipconfig1", "properties": { "privateIPAllocationMethod": "Dynamic", "publicIPAddress": { "id": "[resourceId('Microsoft.Network/publicIPAddresses',parameters('publicIPAddressName'))]" }, "subnet": { "id": "[variables('subnet1Ref')]" } } } ] } }, { "type": "Microsoft.Compute/virtualMachines", "apiVersion": "2015-06-15", "name": "[parameters('vmName')]", "location": "[parameters('location')]", "dependsOn": [ "[concat('Microsoft.Network/networkInterfaces/', parameters('nicName'))]" ], "properties": { "hardwareProfile": { "vmSize": "[parameters('vmSize')]" }, "osProfile": { "computername": "[parameters('vmName')]", "adminUsername": "[parameters('adminUsername')]", "adminPassword": "[parameters('adminPassword')]" }, "storageProfile": { "osDisk": { "name": "[concat(parameters('vmName'),'-osDisk')]", "osType": "[parameters('osType')]", "caching": "ReadWrite", "image": { "uri": "[parameters('vhdUrl')]" }, "vhd": { "uri": "[variables('osDiskVhdName')]" }, "createOption": "FromImage" } }, "networkProfile": { "networkInterfaces": [ { "id": "[resourceId('Microsoft.Network/networkInterfaces',parameters('nicName'))]" } ] } } } ] }
Развертывание виртуальной машины Azure с помощью PowerShell
Скопируйте и измените приведенный ниже скрипт, указав нужные значения переменных $storageaccount
и $vhdUrl
. Выполните его, чтобы создать ресурс виртуальной машины Azure из существующего универсального диска VHD.
# storage account of existing generalized VHD
$storageaccount = "testwinrm11815"
# generalized VHD URL
$vhdUrl = "https://testwinrm11815.blob.core.windows.net/vhds/testvm1234562016651857.vhd"
echo "New-AzResourceGroupDeployment -Name "dplisvvm$postfix" -ResourceGroupName "$rgName" -TemplateFile "C:\certLocation\VHDtoImage.json" -userStorageAccountName "$storageaccount" -dnsNameForPublicIP "$vmName" -subscriptionId "$mysubid" -location "$location" -vmName "$vmName" -vaultName "$kvname" -vaultResourceGroup "$rgName" -certificateUrl
$objAzureKeyVaultSecret.Id -vhdUrl "$vhdUrl" -vmSize "Standard\_A2" -publicIPAddressName "myPublicIP1" -virtualNetworkName "myVNET1" -nicName "myNIC1" -adminUserName "isv" -adminPassword $pwd"
# deploying VM with existing VHD
New-AzResourceGroupDeployment -Name "dplisvvm$postfix" -ResourceGroupName "$rgName"
Как протестировать скрытое изображение для предварительного просмотра?
Вы можете развернуть скрытые изображения для предварительного просмотра с помощью шаблонов быстрого запуска. Чтобы развернуть изображение для предварительного просмотра,
- Перейдите к соответствующему шаблону быстрого запуска для Linux или Windows, выберите "Развернуть в Azure". Эта процедура должна портал Azure.
- В портал Azure выберите "Изменить шаблон".
- В шаблоне JSON найдите imageReference и обновите параметры publisherid, offerid, skuid и version для образа. Чтобы протестировать изображение для предварительного просмотра, добавьте "-PREVIEW" в offerid.
- Выберите Сохранить.
- Укажите остальные сведения. Проверка и создание