Perguntas comuns sobre a VM no Azure Marketplace

Essas perguntas frequentes abordam os problemas comuns que você pode encontrar ao criar uma oferta de VM (máquina virtual) no Azure Marketplace.

Como configurar uma VPN (rede virtual privada) para trabalhar com minhas VMs?

Quais são as políticas de suporte da Microsoft para a execução de software de servidor Microsoft em VMs do Azure?

Em uma VM, como gerencio a extensão de script personalizado na tarefa de inicialização?

Para detalhes sobre como usar a extensão de script personalizado usando o módulo do Azure PowerShell, os modelos do Azure Resource Manager e as etapas em sistemas Windows para solucionar problemas, confira Extensão de script personalizado para Windows.

São aplicativos de 32 bits ou serviços com suporte no Azure Marketplace?

Não. Os serviços padrão para VMs do Azure e sistemas operacionais com suporte são 64-bit. Embora a maioria dos sistemas operacionais de 64 bits dê suporte a versões de 32 bits de aplicativos para compatibilidade com versões anteriores, não há suporte para o uso de aplicativos de 32 bits como parte de sua solução de VM e isso não é recomendável. Crie novamente seu aplicativo como um projeto de 64 bits.

Para obter mais informações, confira estes tópicos:

Erro: o VHD já está registrado no repositório de imagens como o recurso

Sempre que estou tento criar uma imagem de minhas VHDs, recebo o erro "O VHD já está registrado no repositório de imagens como o recurso" no Azure PowerShell. Eu não criei uma imagem antes, nem encontrei uma imagem com esse nome no Azure. Como resolver isso?

Esse problema geralmente aparece quando você cria uma VM de um VHD que tem um bloqueio. Confirme se não há nenhuma VM alocada desse VHD e repita a operação. Se o problema persistir, abra um tíquete de suporte. Confira Suporte do Partner Center.

Como fazer para criar uma VM com base em um VHD generalizado?

Preparar um modelo do Azure Resource Manager

Esta seção descreve como criar e implantar uma imagem de VM (máquina virtual) fornecida pelo usuário fornecendo imagens VHD do sistema operacional e do disco de dados de um disco rígido virtual implantado no Azure. Essas etapas implantam a VM usando o VHD generalizado.

  1. Entre no portal do Azure.

  2. Carregue o VHD do sistema operacional generalizado e os VHDs do disco de dados em sua conta do Armazenamento do Microsoft Azure.

  3. Na página inicial, selecione Criar um recurso. Pesquise "implantação de modelo" e selecione Criar.

  4. Escolha Criar seu modelo no editor.

    Mostra a seleção de um modelo

  5. Cole o seguinte modelo JSON no editor e selecione Salvar.

     {
          "$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'))]"
                              }
                          ]
                      }
                  }
              }
          ]
      }
    
  6. Forneça os valores de parâmetro para as páginas de propriedades Implantação Personalizada.

    ResourceGroupName O nome do grupo de recursos do Azure existente. Normalmente, usa o mesmo RG associado ao cofre de chaves.
    TemplateFile Nome do caminho completo para o arquivo VHDtoImage.json.
    userStorageAccountName Nome da conta de armazenamento.
    dnsNameForPublicIP Nome DNS para o IP público; deve estar em minúsculas.
    subscriptionId O identificador da assinatura do Azure.
    Localidade Local geográfico padrão do Azure para o grupo de recursos.
    vmName Nome da máquina virtual.
    vhdUrl Endereço Web do disco rígido virtual.
    vmSize Tamanho da instância de máquina virtual.
    publicIPAddressName Nome do endereço IP público.
    virtualNetworkName Nome da rede virtual.
    nicName Nome da placa de interface de rede para a rede virtual.
    adminUserName Nome de usuário da conta de administrador.
    adminPassword Senha do administrador.
  7. Depois de fornecer esses valores, selecione Comprar.

    O Azure inicia a implantação. Ele cria uma VM com o VHD não gerenciado especificado, no caminho de conta de armazenamento especificada. Você pode acompanhar o progresso no portal do Azure selecionando Máquinas Virtuais no lado esquerdo do portal. Quando a VM é criada, o status muda de Iniciando para Em Execução.

    Para a implantação de VMs de geração 2, use este modelo:

    {
         "$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'))]"
                             }
                         ]
                     }
                 }
             }
         ]
     }
    

Implantar uma VM do Azure usando o PowerShell

Copie e edite o script a seguir para fornecer valores para as variáveis $storageaccount e $vhdUrl. Executá-lo para criar um recurso de VM do Azure a partir de seu VHD generalizado existente.

# 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"

Como fazer para testar uma imagem de pré-visualização oculta?

Você pode implantar imagens de pré-visualização ocultas usando modelos de início rápido. Para implantar uma imagem de pré-visualização,

  1. Vá para o respectivo modelo de início rápido para Linux ou Windows, selecione Implantar no Azure. Este procedimento deve levá-lo ao portal do Azure.
  2. No portal do Azure, selecione Editar modelo.
  3. No modelo JSON, procure imageReference e atualize o publisherid, o offerid, o skuid e a versão da imagem. Para testar a imagem de pré-visualização, acrescente "-PREVIEW" à offerid.
  4. Selecione Salvar.
  5. Preencha o restante dos detalhes. Examinar e criar