Registrar várias VMs SQL no Azure com a extensão SQL IaaS Agent

Aplica-se a:SQL Server na VM do Azure

Este artigo descreve como registrar suas máquinas virtuais (VMs) do SQL Server em massa no Azure com a extensão do SQL IaaS Agent usando o Register-SqlVMscmdlet do Azure PowerShell.

Como alternativa, você pode registrar todas as VMs do SQL Server automaticamente ou VMs individuais do SQL Server manualmente.

Nota

As VMs do SQL Server implantadas por meio do mercado do Azure após outubro de 2022 têm o modelo menos privilegiado habilitado por padrão. Os modos de gerenciamento para a extensão do SQL IaaS Agent foram removidos em março de 2023.

Descrição geral

O Register-SqlVMs cmdlet pode ser usado para registrar todas as máquinas virtuais em uma determinada lista de assinaturas, grupos de recursos ou uma lista de máquinas virtuais específicas. O cmdlet registrará as máquinas virtuais e, em seguida, gerará um relatório e um arquivo de log.

O processo de registro não corre riscos, não tem tempo de inatividade e não reiniciará o serviço do SQL Server ou a máquina virtual.

Por padrão, as VMs do Azure com SQL Server 2016 ou posterior são automaticamente registradas com a extensão do SQL IaaS Agent quando detetadas pelo serviço CEIP. Você pode usar o registro em massa para registrar quaisquer VMs do SQL Server que não sejam detetadas pelo serviço do Programa de Aperfeiçoamento da Experiência do Usuário.

Para obter informações sobre privacidade, consulte as declarações de privacidade da extensão do SQL IaaS Agent.

Pré-requisitos

Para registrar sua VM do SQL Server com a extensão, você precisará do seguinte:

  • Uma assinatura do Azure que foi registrada com o provedor de recursos Microsoft.SqlVirtualMachine e contém máquinas virtuais do SQL Server não registradas.
  • Verifique se a VM do Azure está em execução.
  • As credenciais de cliente usadas para registrar as máquinas virtuais existem em qualquer uma das seguintes funções do Azure: Colaborador da Máquina Virtual, Colaborador ou Proprietário.
  • Az PowerShell 5.0 - versões superiores a 5.0 atualmente suportam apenas MFA e não são compatíveis com o script para registrar várias VMs.

Começar

Antes de continuar, você deve primeiro criar uma cópia local do script, importá-lo como um módulo do PowerShell e conectar-se ao Azure.

Criar o script

Para criar o script, copie o script completo do final deste artigo e salve-o localmente como RegisterSqlVMs.psm1.

Importar o script

Depois que o script for criado, você poderá importá-lo como um módulo no terminal do PowerShell.

Abra um terminal administrativo do PowerShell e navegue até onde você salvou o RegisterSqlVMs.psm1 arquivo. Em seguida, execute o seguinte cmdlet do PowerShell para importar o script como um módulo:

Import-Module .\RegisterSqlVMs.psm1

Ligar ao Azure

Use o seguinte cmdlet do PowerShell para se conectar ao Azure:

Connect-AzAccount

Todas as VMs em uma lista de assinaturas

Use o cmdlet a seguir para registrar todas as máquinas virtuais do SQL Server em uma lista de assinaturas:

Register-SqlVMs -SubscriptionList SubscriptionId1,SubscriptionId2

Saída de exemplo:

Number of subscriptions registration failed for 
because you do not have access or credentials are wrong: 1
Total VMs Found: 10
VMs Already registered: 1
Number of VMs registered successfully: 4
Number of VMs failed to register due to error: 1
Number of VMs skipped as VM or the guest agent on VM is not running: 3
Number of VMs skipped as they are not running SQL Server On Windows: 1

Please find the detailed report in file RegisterSqlVMScriptReport1571314821.txt
Please find the error details in file VMsNotRegisteredDueToError1571314821.log

Todas as VMs em uma única assinatura

Use o cmdlet a seguir para registrar todas as máquinas virtuais do SQL Server em uma única assinatura:

Register-SqlVMs -Subscription SubscriptionId1

Saída de exemplo:

Total VMs Found: 10
VMs Already registered: 1
Number of VMs registered successfully: 5
Number of VMs failed to register due to error: 1
Number of VMs skipped as VM or the  guest agent on VM is not running: 2
Number of VMs skipped as they are not running SQL Server On Windows: 1

Please find the detailed report in file RegisterSqlVMScriptReport1571314821.txt
Please find the error details in file VMsNotRegisteredDueToError1571314821.log

Todas as VMs em vários grupos de recursos

Use o cmdlet a seguir para registrar todas as máquinas virtuais do SQL Server em vários grupos de recursos em uma única assinatura:

Register-SqlVMs -Subscription SubscriptionId1 -ResourceGroupList ResourceGroup1,ResourceGroup2

Saída de exemplo:

Total VMs Found: 4
VMs Already registered: 1
Number of VMs registered successfully: 1
Number of VMs failed to register due to error: 1
Number of VMs skipped as they are not running SQL Server On Windows: 1

Please find the detailed report in file RegisterSqlVMScriptReport1571314821.txt
Please find the error details in file VMsNotRegisteredDueToError1571314821.log

Todas as VMs em um grupo de recursos

Use o cmdlet a seguir para registrar todas as máquinas virtuais do SQL Server em um único grupo de recursos:

Register-SqlVMs -Subscription SubscriptionId1 -ResourceGroupName ResourceGroup1

Saída de exemplo:

Total VMs Found: 4
VMs Already registered: 1
Number of VMs registered successfully: 1
Number of VMs failed to register due to error: 1
Number of VMs skipped as VM or the guest agent on VM is not running: 1

Please find the detailed report in file RegisterSqlVMScriptReport1571314821.txt
Please find the error details in file VMsNotRegisteredDueToError1571314821.log

VMs específicas em um único grupo de recursos

Use o cmdlet a seguir para registrar máquinas virtuais específicas do SQL Server em um único grupo de recursos:

Register-SqlVMs -Subscription SubscriptionId1 -ResourceGroupName ResourceGroup1 -VmList VM1,VM2,VM3

Saída de exemplo:

Total VMs Found: 3
VMs Already registered: 0
Number of VMs registered successfully: 1
Number of VMs skipped as VM or the guest agent on VM is not running: 1
Number of VMs skipped as they are not running SQL Server On Windows: 1

Please find the detailed report in file RegisterSqlVMScriptReport1571314821.txt
Please find the error details in file VMsNotRegisteredDueToError1571314821.log

Uma VM específica

Use o cmdlet a seguir para registrar uma máquina virtual específica do SQL Server:

Register-SqlVMs -Subscription SubscriptionId1 -ResourceGroupName ResourceGroup1 -Name VM1

Saída de exemplo:

Total VMs Found: 1
VMs Already registered: 0
Number of VMs registered successfully: 1

Please find the detailed report in  file RegisterSqlVMScriptReport1571314821.txt

Descrição da saída

Um relatório e um arquivo de log são gerados sempre que o Register-SqlVMs cmdlet é usado.

Report

O relatório é gerado como um .txt arquivo chamado RegisterSqlVMScriptReport<Timestamp>.txt onde o carimbo de data/hora é a hora em que o cmdlet foi iniciado. O relatório enumera os seguintes pormenores:

Valor de saída Descrição
Número de assinaturas para as quais o registro falhou porque você não tem acesso ou as credenciais estão incorretas Isso fornece o número e a lista de assinaturas que tiveram problemas com a autenticação fornecida. O erro detalhado pode ser encontrado no log pesquisando pelo ID da assinatura.
Número de assinaturas que não puderam ser experimentadas porque não estão registradas no provedor de recursos Esta seção contém a contagem e a lista de assinaturas que não foram registradas na extensão do SQL IaaS Agent.
Total de VMs encontradas A contagem de máquinas virtuais encontradas no escopo dos parâmetros passados para o cmdlet.
VMs já registadas A contagem de máquinas virtuais que foram ignoradas, pois já estavam registradas com a extensão.
Número de VMs registradas com êxito A contagem de máquinas virtuais que foram registradas com êxito após a execução do cmdlet. Lista as máquinas virtuais registradas no formato SubscriptionID, Resource Group, Virtual Machine.
Número de VMs que não conseguiram se registrar devido a um erro Contagem de máquinas virtuais que não conseguiram registrar devido a algum erro. Os detalhes do erro podem ser encontrados no arquivo de log.
Número de VMs ignoradas, pois a VM ou o agente gust na VM não está em execução A contagem e a lista de máquinas virtuais que não puderam ser registradas como a máquina virtual ou o agente convidado na máquina virtual não estavam em execução. Eles podem ser repetidos assim que a máquina virtual ou o agente convidado for iniciado. Os detalhes podem ser encontrados no arquivo de log.
Número de VMs ignoradas, pois não estão executando o SQL Server no Windows Contagem de máquinas virtuais que foram ignoradas, pois não estão executando o SQL Server ou não são uma máquina virtual do Windows. As máquinas virtuais são listadas no formato SubscriptionID, Resource Group, Virtual Machine.

Registo

Os erros são registrados no arquivo de log chamado VMsNotRegisteredDueToError<Timestamp>.log, onde carimbo de data/hora é a hora em que o script foi iniciado. Se o erro estiver no nível da assinatura, o log conterá a ID da Assinatura separada por vírgulas e a mensagem de erro. Se o erro estiver relacionado com o registo da máquina virtual, o registo contém o ID da Subscrição, o nome do grupo de recursos, o nome da máquina virtual, o código de erro e a mensagem separados por vírgulas.

Observações

Ao registrar VMs do SQL Server com a extensão usando o script fornecido, considere o seguinte:

  • O registro com a extensão requer um agente convidado em execução na VM do SQL Server. As imagens do Windows Server 2008 não têm um agente convidado, portanto, essas máquinas virtuais falharão e deverão ser registradas manualmente com funcionalidade limitada.
  • Há uma lógica de repetição integrada para superar erros transparentes. Se a máquina virtual for registrada com êxito, então é uma operação rápida. No entanto, se o registro falhar, cada máquina virtual será repetida. Como tal, deve conceder um tempo significativo para concluir o processo de registo - embora o requisito de tempo real dependa do tipo e do número de erros.

Script completo

Para obter o script completo no GitHub, consulte Registrar VMs do SQL Server em massa com o Az PowerShell.

Copie o script completo e salve-o como RegisterSqLVMs.psm1.

Próximos passos

Para saber mais, leia os seguintes artigos: