Partilhar via


Usar o Banco de Dados SQL do Azure com o Servidor de DevOps do Azure

Azure DevOps Server 2022 | Azure DevOps Server 2020 | Azure DevOps Server 2019

Use as etapas neste artigo para configurar o Servidor de DevOps do Azure com Banco de Dados SQL do Azure. Essa topologia tem algumas etapas adicionais em comparação com o uso de um servidor SQL local.

Requerimentos

  • O Banco de Dados SQL do Azure só pode ser usado com o Azure DevOps Server 2019 e versões posteriores.
  • Você deve instalar o Servidor de DevOps do Azure na VM do Azure.
  • A VM deve ter a identidade gerenciada pelo sistema habilitada, que é usada para autenticar no banco de dados SQL do Azure.
  • A VM deve ser associada a um domínio, mas não a um grupo de trabalho.
  • Os bancos de dados SQL do Azure devem ser bancos de dados únicos. Instâncias gerenciadas e pools elásticos têm suporte no Azure DevOps Server 2022 e versões mais recentes.

Todos os SKUs de uso geral e Premium são suportados. As SKUs padrão S3 e superiores também são suportadas. SKUs básicos e SKUs padrão S2 e inferiores não são suportados. As configurações do Azure DevOps Server que utilizam o Azure SQL Database não são compatíveis com funcionalidades antigas de relatório do SQL Server Reporting Services e dos SQL Server Analysis Services. Em vez disso, você pode usar o Azure DevOps Analytics.

A atualização para o Azure DevOps Server é suportada apenas a partir do Team Foundation Server 2015 e mais recente quando utiliza a Base de Dados SQL do Azure. O Banco de Dados SQL do Azure não oferece suporte a procedimentos armazenados criptografados.

Configurar o Banco de Dados SQL do Azure

  1. Configure uma identidade gerenciada em suas máquinas virtuais. Neste momento, apenas suportamos identidades geridas pelo sistema.

    Você pode executar a configuração usando todos os mecanismos padrão, incluindo:

  2. Para configurar uma nova instância do Azure DevOps Server, crie dois bancos de dados SQL do Azure:

    • AzureDevOps_Configuration

    • AzureDevOps_DefaultCollection

      Observação

      Você pode ignorar esta etapa se usar bancos de dados existentes para:

      • Atualize uma nova versão do Azure DevOps Server.
      • Migre uma instância up-todo Azure DevOps Server para o Banco de Dados SQL do Azure.
  3. Configurar autenticação do Azure Active Directory para o seu servidor do Banco de Dados SQL do Azure. Torne-se o administrador do Ative Directory no servidor. Você precisa de permissões de administrador no banco de dados para concluir as etapas de configuração restantes. Você pode alterar essa permissão mais tarde.

  4. Habilite sua identidade gerenciada, ou identidades se você usar vários servidores, para entrar em seu banco de dados SQL do Azure e dar-lhe as permissões apropriadas. Conecte-se ao servidor de banco de dados usando SQL Server Management Studio. Conecte-se utilizando um utilizador do Azure Active Directory com autenticação Active Directory. Não é possível manipular os utilizadores do Azure Ative Directory se iniciar sessão na Base de Dados SQL do Azure sob autenticação SQL.

    um. Execute o seguinte comando T-SQL no banco de dados main:

    CREATE USER [VMName] FROM EXTERNAL PROVIDER
    ALTER ROLE [dbmanager] ADD MEMBER [VMName]
    

    Substitua VMName pelo nome da máquina virtual cuja identidade gerenciada você adiciona ao banco de dados.

    b. Execute o seguinte comando T-SQL na configuração e em todos os bancos de dados de coleção:

    CREATE USER [VMName] FROM EXTERNAL PROVIDER  
    ALTER ROLE [db_owner] ADD MEMBER [VMName]  
    ALTER USER [VMName] WITH DEFAULT_SCHEMA=dbo  
    

Configurar o Servidor de DevOps do Azure

Retorne ao assistente de configuração do Servidor de DevOps do Azure. Se você configurar uma nova instância, selecione Esta é uma nova implantação do Azure DevOps Server. Se atualizares ou migrares e tiveres dados existentes nos teus bancos de dados, seleciona tenho bancos de dados existentes para usar nesta implantação do Servidor do Azure DevOps.

Quando chegar à página Base de Dados no assistente de configuração, especifique a instância do servidor da Base de Dados SQL do Azure. Normalmente, a instância do servidor está na forma de SQLInstanceName.database.windows.net.

Agora você tem uma instância do Servidor de DevOps do Azure que é executada no Banco de Dados SQL do Azure.

Conectar-se a um banco de dados SQL do Azure a partir do SSMS local

Siga as seguintes etapas para se conectar a uma base de dados SQL do Azure a partir do seu SSMS local:

  1. Exporte via SQL Server Management Studio usando o SSMS da VM em execução na mesma VNET como um ponto de extremidade privado do SQL para o compartilhamento de arquivos/armazenamento de blobs.

    Captura de tela mostra botões realçados para a seleção de Exportar Aplicativo da Camada de Dados.

  2. Você pode usar o assistente de aplicativo da camada de dados de exportação do SQL Server Management Studio para exportar o banco de dados SQL do Azure para um arquivo .bacpac. Você pode armazenar o arquivo .bacpac no armazenamento de blob do Azure ou no compartilhamento de arquivos.

    Captura de tela mostra a tela de introdução para exportar seu banco de dados.

  3. Selecione com o botão direito do mouse o Banco de Dados SQL no SQL Server lógico assistente de Tarefas>do SSMS>Exportar de aplicativo da camada de dados.

    Captura de tela mostra o local de armazenamento do arquivo bacpac inserido na tela Configurações de exportação.

  4. Selecione Avançar.

    Captura de tela mostra um resumo das configurações especificadas.

  5. Selecione o local para armazenar o arquivo BACPAC.

    Captura de tela mostra a mensagem concluída da operação e a página de resultados.

  6. Selecione Fechar.

Os pacotes de DAC estão localizados aqui: C:\Users\{sample-user-name}\OneDrive - Microsoft\Documents\SQL Server Management Studio\DAC Packages.

Conectar o Banco de Dados SQL do Azure a partir do Azure DevOps Server 2022

Conectar o Banco de Dados SQL do Azure ao Azure DevOps Server 2022 (local) envolve configurar o acesso, garantir a conectividade e usar as credenciais apropriadas. Siga as etapas a seguir para conectar o Banco de Dados SQL do Azure a partir do Azure DevOps Server 2022.

Pré-requisitos

Categoria Requerimentos
Regras de firewall As regras de firewall do Banco de Dados SQL do Azure permitem conexões de entrada do endereço IP ou da sub-rede onde o Azure DevOps Server está hospedado. Para fazer isso, vá para: portal do Azure>Banco de Dados SQL do Azure>Configurações>Firewalls e redes virtuais> e adicione uma nova regra para permitir o acesso do endereço IP público ou da sub-rede do Azure DevOps Server.
Ferramentas - Banco de Dados SQL do Azure provisionado e acessível a partir do Azure. Registro do nome do servidor, nome do banco de dados e método de autenticação.
- Azure DevOps Server 2022 em execução em seu ambiente local.
- SSMS instalado na mesma máquina em que o Azure DevOps Server está instalado.

Conectar-se ao Banco de Dados SQL do Azure

  1. Obter detalhes de conexão do Banco de Dados SQL do Azure:

    • Nome do servidor: <your-server-name>.database.windows.net
    • Nome do banco de dados: <your-database-name>
    • Método de autenticação: Autenticação do SQL Server (nome de usuário/senha) ou autenticação do Microsoft Entra ID.
  2. Conectar usando o SQL Server Management Studio (SSMS): a. Abra o SQL Server Management Studio na máquina onde o Azure DevOps Server está instalado. b. Conectar-se ao Banco de Dados SQL do Azure: c. Inicie o SSMS. d. Na janela Conectar ao Servidor:

    • Digite o nome do servidor: <your-server-name>.database.windows.net
    • Escolha Autenticação: Autenticação do SQL Server.
    • Introduza o seu Nome de Utilizador e Palavra-passe.
    • Selecione Conectar. Uma vez conectado, o Banco de Dados SQL do Azure é listado no Pesquisador de Objetos no SSMS.
  3. Testar conectividade: Execute uma consulta ou comando no SSMS para verificar a conectividade:

     SELECT @@VERSION;
    

    Essa consulta retorna a versão do SQL Server do Banco de Dados SQL do Azure, confirmando que a conexão foi bem-sucedida.

  4. Usar conexão no Servidor de DevOps do Azure: Depois de verificar a conectividade do SSMS, você pode usar essa conexão no Servidor de DevOps do Azure para várias tarefas, como:

    • Implantações automatizadas: configure pipelines de liberação no Servidor de DevOps do Azure para implantar alterações no banco de dados.
    • Migração de dados: use scripts SQL ou ferramentas de dados integradas ao Azure DevOps Server.
    • Integração contínua: integre alterações de banco de dados em seus pipelines de CI/CD.

Dica

  • Seja seguro: Considere usar o Microsoft Entra ID para um acesso mais seguro.
  • Gerenciar credenciais: armazene credenciais com segurança e evite codificá-las em scripts ou configurações.
  • Monitor: Monitore as conexões e o uso do banco de dados para garantir a segurança e o desempenho.

Conecte o Banco de Dados SQL do Azure a partir do Azure DevOps Server 2022 em execução local, permitindo o gerenciamento simplificado do banco de dados e a integração com seus processos de desenvolvimento e implantação. Ajuste as configurações e medidas de segurança com base nas políticas e requisitos da sua organização.

Usar sua conexão do Banco de Dados SQL do Azure no Azure DevOps Server 2022

  1. Preparar o Servidor de DevOps do Azure:
    a. Certifique-se de ter o Azure DevOps Server 2022 instalado e configurado em seu ambiente local.</
    b. Acesso ao Servidor de DevOps do Azure com permissões apropriadas para criar e gerenciar pipelines.

  2. Configurar o projeto e o repositório do Azure DevOps (se ainda não tiver sido concluído):
    a. Crie um novo projeto do Azure DevOps ou use um existente.
    b. Configure um repositório Git ou TFVC para armazenar suas definições de pipeline e scripts.

  3. Criar um pipeline:
    a. Vá para seu projeto do Azure DevOps.
    b. Selecione Pipelines>Pipelines>Nova tubulação.
    c. Selecione o modelo de pipeline apropriado com base em suas necessidades. Para o Banco de Dados SQL do Azure, você pode começar com um trabalho vazio ou escolher um modelo que atenda às suas necessidades de implantação (por exemplo, Pipeline do Azure).
    d. Edite o arquivo YAML do pipeline ou use o editor clássico para definir os estágios e as tarefas do pipeline.

  4. Adicionar tarefas a serem implantadas no Banco de Dados SQL do Azure:

    • Tarefa: Implantação do Banco de Dados do SQL Server: Use a tarefa SqlAzureDacpacDeployment para implantar alterações no Banco de Dados SQL do Azure. Exemplo de trecho de YAML:

      steps:
      - task: SqlAzureDacpacDeployment@1
        inputs:
          azureSubscription: 'YourServiceConnectionName'  # Use your Azure SQL Database service connection
          serverName: '<your-server-name>.database.windows.net'
          databaseName: '<your-database-name>'
          deployType: 'DacpacTask'
          authenticationType: 'server'
          sqlUsername: '$(sqlUsername)'
          sqlPassword: '$(sqlPassword)'
      

      Substitua <your-server-name>, <your-database-name>, $(sqlUsername)e $(sqlPassword) por valores ou variáveis apropriados.

    • Tarefa: Consulta SQL do Azure: Use a tarefa AzureSqlQuery para executar consultas SQL em seu Banco de Dados SQL do Azure. Exemplo de trecho de YAML:

      steps:
      - task: AzureSqlQuery@1
       inputs:
         azureSubscription: 'YourServiceConnectionName'  # Use your Azure SQL Database service connection
         serverName: '<your-server-name>.database.windows.net'
         databaseName: '<your-database-name>'
         sqlUsername: '$(sqlUsername)'
         sqlPassword: '$(sqlPassword)'
         sqlQuery: 'SELECT * FROM TableName'
      
  5. Gerenciar credenciais com segurança: Use as variáveis do Azure DevOps ou a integração do Azure Key Vault para gerenciar informações confidenciais, como credenciais do SQL Server (sqlUsername e sqlPassword).

  6. Acionar e executar uma linha de processamento:

    • Salve e confirme as alterações do pipeline.
    • Acione o pipeline manualmente ou configure gatilhos (por exemplo, na confirmação de código, agendamento) de acordo com sua estratégia de implantação.
  7. Monitorizar a execução do pipeline:

    • O pipeline de monitoramento é executado no Azure DevOps para garantir que as implantações no Banco de Dados SQL do Azure sejam bem-sucedidas.
    • Revise logs e saídas para solucionar problemas durante a implantação.

Dica

  • Integração com pipelines de versão: Integre seu pipeline de compilação com pipelines de liberação para cenários de implantação e aprovações mais complexos.
  • Fazer alterações incrementais no banco de dados: Use ferramentas como SSDT (SQL Server Data Tools) ou migrações para gerenciar alterações incrementais no esquema do banco de dados.
  • Use o controle de versão: Mantenha seus scripts SQL e alterações de banco de dados sob controle de versão para controlar as alterações e garantir a reprodutibilidade.

Ajuste configurações e tarefas com base em suas necessidades específicas de implantação e requisitos organizacionais.

Criar um backup do SQL Server

A criação de um backup do SQL Server para o Azure DevOps Server 2022 usando o Console de Administração do Servidor de DevOps do Azure envolve a definição de configurações de backup e o agendamento de backups regulares. Execute as etapas a seguir para criar um backup do SQL Server.

Pré-requisitos para backup

Categoria Requerimentos
Acesso Administrador acesso ao servidor onde o Servidor de DevOps do Azure está instalado.
Permissões Permissão para configurar backups e acessar o SQL Server Management Studio.

Criar cópia de segurança

  1. Inicie o Console de Administração do Servidor de DevOps do Azure no servidor onde o Servidor de DevOps do Azure está instalado e selecione Camada de Aplicativo>Backups Agendados>Criar Backups Agendados.

    Captura de tela mostra botões para seleção no console de administração para criar backup agendado.

  2. Introduza o caminho de backup da rede e, em seguida, selecione Seguinte.

    Captura de tela indica o caminho de backup da rede introduzido.

  3. Selecione os alertas de e-mail desejados e, em seguida, selecione Avançar.

    Captura de tela mostra o botão Avançar realçado para criar o processo de caminho de backup de rede.

  4. Escolha um agendamento de backup com base em suas necessidades e, em seguida, selecione Avançar.

    Captura de tela mostra o agendamento de backup selecionado e o botão Avançar realçado.

  5. Confirme as definições de configuração e selecione Verificar.

    Captura de tela realçando o botão 'Verificar' na tela de definições de configuração.

    O assistente de backups verifica se o caminho de backup existe e é um caminho de rede.

    Captura de tela mostra a verificação de prontidão em andamento.

Solucionar erros

Em caso de falha na verificação de prontidão, consulte as informações a seguir para obter ajuda com a solução de problemas.

Erro: Acesso à conta de serviço

Captura de ecrã mostra o erro de ambiente durante a verificação de prontidão.

Mensagem de erro:TF401009: The Azure DevOps service account NT AUTHORITY\LOCAL SERVICE cannot access network shares. Change to an account that can access the backup path. Este erro ocorre quando a conta de serviço é NT AUTHORITY\LOCAL SERVICE. Captura de ecrã mostrando o resumo da camada de aplicação para o Serviço Local da Autoridade NT.

Solução:

  1. Crie um usuário local com as permissões de acesso necessárias. Captura de tela mostra o usuário local recém-criado e o acesso.
  2. No Console de Administração do Servidor de DevOps do Azure, vá para a tela da Camada de Aplicativo e selecione Alterar Conta.
  3. Altere a conta de serviço para a conta de usuário local recém-criada. Captura de tela mostra novas associações de grupos de usuários.
  4. Refaça o processo de backup para criar o backup com êxito e execute novamente as verificações de prontidão. Captura de tela mostra que todas as verificações foram bem-sucedidas.

Configuração de backup bem-sucedida:Captura de tela mostra a configuração de backup bem-sucedida.

Logs de backup agendados:Captura de tela mostra arquivos de logs de backup agendados.

backups agendados do Console de Administração:Captura de tela mostra o console de administração mostrando a tela de backups agendados.

Erro: Arquivo de log

Captura de tela mostra o link realçado para fazer backup completo agora.

Exemplo de localização do ficheiro de registo:C:\ProgramData\Microsoft\Azure DevOps\Server Configuration\Logs\TFS_Scheduled Backups_0627_192409.logExemplo de mensagem de erro do ficheiro de registo:[7/1/2024 7:28:37 AM] [Error]``Exception Message: The backup of the file or filegroup "LeadingKey" is not permitted because it is not online. Container state: "Offline" (7). Restore status: 0. BACKUP can be performed by using the FILEGROUP or FILE clauses to restrict the selection to include only online data.``BACKUP DATABASE is terminating abnormally. (type SqlException)

Solução:

  • Verifique se todos os grupos de arquivos estão online antes de executar o backup.

    Exemplo de LeadingKeyOffline:Captura de tela mostra as propriedades do banco de dados e o exemplo do arquivo de banco de dados LeadingKey.

  • Teste o processo de backup usando consultas SQL para identificar e resolver quaisquer problemas com grupos de arquivos específicos.