Compartilhar via


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

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

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

Requisitos

  • O Banco de Dados SQL do Azure só pode ser usado com Azure DevOps Server 2019 e versões posteriores.
  • Você deve instalar o Azure DevOps Server 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 adicionada a um domínio, mas não a um grupo de trabalho.
  • Os bancos de dados SQL do Azure devem ser bancos de dados individuais. Há suporte para instâncias gerenciadas e pools elásticos em Azure DevOps Server 2022 e mais recente.

Todos os SKUs de uso geral e premium são suportados. Os SKUs padrão S3 e superiores também são suportados. Não há suporte para SKUs básicos e SKUs padrão S2 e inferiores. As configurações do Azure DevOps Server que usam o Banco de Dados SQL do Azure não dão suporte a versões mais antigas do SQL Server Reporting Services com funcionalidades de relatórios do SQL Server Analysis Services. Em vez disso, você pode usar o Azure DevOps Analytics.

A atualização para Azure DevOps Server tem suporte apenas do Team Foundation Server 2015 e mais recente quando você usa o Banco de Dados SQL do Azure. O Banco de Dados SQL do Azure não dá suporte a procedimentos armazenados criptografados.

Configurar o Banco de Dados SQL do Azure

  1. Configure uma identidade gerenciada em suas máquinas virtuais. No momento, só oferecemos suporte a identidades gerenciadas pelo sistema.

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

  2. Para configurar uma nova instância 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 atualizada de Azure DevOps Server para o Banco de Dados SQL do Azure.
  3. Configure a autenticação do Azure Active Directory no servidor do Banco de Dados SQL do Azure. Torne-se o administrador do Active 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 no banco de dados SQL do Azure e conceder a ele as permissões apropriadas. Conecte-se ao servidor de banco de dados usando o SQL Server Management Studio. Conecte-se usando um usuário do Azure Active Directory com autenticação do Active Directory . Você não poderá manipular usuários do Azure Active Directory se entrar no Banco de Dados SQL do Azure em Autenticação SQL.

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

    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 Azure DevOps Server

Retorne ao assistente de configuração Azure DevOps Server. Se você configurar uma nova instância, selecione Esta é uma nova implantação do Azure DevOps Server. Se você atualizar ou migrar e tiver dados existentes em seus bancos de dados, selecione Tenho bancos de dados existentes para usar para esta implantação Azure DevOps Server.

Quando você chegar à página Banco de Dados no assistente de configuração, especifique a instância do servidor do Banco 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 Azure DevOps Server que é executada no Banco de Dados SQL do Azure.

Conectar-se a um banco de dados SQL do Azure a partir do SQL Server Management Studio local

Execute as seguintes etapas para se conectar a um banco de dados SQL do Azure do seu SSMS local:

  1. Exporte através do SQL Server Management Studio usando o SSMS da VM que está em execução na mesma VNET que um ponto de extremidade privado do SQL para armazenamento de blobs ou compartilhamento de arquivos.

    Captura de tela mostra os botões realçados para a seleção do Aplicativo de Exportação de Camada de Dados.

  2. Você pode usar o Assistente de Exportação de Aplicativo de Nível de Dados 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 blobs ou no compartilhamento de arquivos do Azure.

    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 no SSMS>Tarefas>Assistente de exportação de aplicativo da camada de dados.

    Captura de tela mostra o local de armazenamento de arquivos bacpac inserido na tela Configurações de Exportação.

  4. Selecione Próximo.

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

  5. Selecione o local para armazenar o arquivo BACPAC.

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

  6. Selecione Fechar.

Os pacotes da 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 ao Azure DevOps Server 2022

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

Pré-requisitos

Categoria Requisitos
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 em que o Servidor do Azure DevOps está hospedado. Para fazer isso, acesse: portal do Azure>Azure SQL Database>Configurações>Firewalls e redes virtuais> e adicione uma nova regra para permitir acesso a partir do endereço IP público ou sub-rede do Azure DevOps Server.
Ferramentas – Banco de Dados SQL do Azure provisionado e acessível 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 no mesmo computador em que o Servidor de DevOps do Azure está instalado.

Conectar-se ao Banco de Dados SQL do Azure

  1. Obter detalhes da 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 da ID do Microsoft Entra.
  2. Conectar usando o SSMS (SQL Server Management Studio): um. Abra o SQL Server Management Studio no computador em que 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:

    • Insira o nome do servidor: <your-server-name>.database.windows.net
    • Escolha Autenticação: Autenticação do SQL Server.
    • Insira seu Nome de Usuário e Senha.
    • Selecione Conectar. Uma vez conectado, o Banco de Dados SQL do Azure é listado no Pesquisador de Objetos no SSMS.
  3. Testar conectividade: executar 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 a conexão no Servidor do Azure DevOps: Depois de verificar a conectividade do SSMS, você poderá usar essa conexão no Servidor do Azure DevOps para várias tarefas, como:

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

Dica

  • Ser seguro: Considere usar a ID do Microsoft Entra para obter acesso mais seguro.
  • Gerenciar credenciais: Armazene as credenciais com segurança e evite codificá-las em scripts ou configurações.
  • Monitor: Monitorar conexões de banco de dados e o uso, garantindo assim a segurança e o desempenho.

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

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

  1. Preparar o Servidor do Azure DevOps:
    a. Verifique se você tem o Azure DevOps Server 2022 instalado e configurado em seu ambiente local.</
    b. Acesso ao Servidor do Azure DevOps 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 concluído):
    a. Crie um novo ou use um projeto existente do Azure DevOps.
    b. Configure um repositório Git ou TFVC para armazenar suas definições e scripts de pipeline.

  3. Criar um pipeline:
    a. Acesse seu projeto do Azure DevOps.
    b. Selecione Pipelines>Pipelines>Nova pipeline.
    c. Selecione o modelo de pipeline apropriado com base em seus requisitos. 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, Azure Pipeline).
    d. Edite o arquivo YAML do pipeline ou use o editor clássico para definir seus estágios e tarefas de pipeline.

  4. Adicionar tarefas para implantar 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 snippet de código 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 snippet de código 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: usar variáveis do Azure DevOps ou integração do Azure Key Vault para gerenciar informações confidenciais, como credenciais do SQL Server (sqlUsername e sqlPassword).

  6. Acionar e executar pipeline:

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

    • Monitore as execuções de pipeline no Azure DevOps para garantir que as implantações no Banco de Dados SQL do Azure sejam bem-sucedidas.
    • Examine os logs e saídas para solucionar problemas durante a implantação.

Dica

  • Integrar com o Release Pipelines: Integre seu pipeline de build com pipelines de lançamento para cenários e aprovações de implantação mais complexos.
  • fazer alterações incrementais no banco de dados: usar ferramentas como o SSDT (SQL Server Data Tools) ou migrações para gerenciar alterações incrementais no esquema de banco de dados.
  • Usar controle de versão: Manter 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 de implantação específicas 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 do Azure DevOps 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 Requisitos
Acesso Administrador acesso ao servidor em que 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. Abra o Console de Administração do Azure DevOps Server no servidor onde o Azure DevOps Server 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. Insira o caminho de backup de rede e selecione Próximo.

    Captura de tela mostra o caminho de backup de rede inserido.

  3. Selecione os alertas de email desejados e selecione Próximo.

    Captura de tela mostra o botão Avançar destacado no processo de criação do caminho de backup de rede.

  4. Escolha um agendamento de backup com base em seus requisitos e selecione Próximo.

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

  5. Confirme as configurações e selecione Verificar.

    A captura de tela mostra o botão Verificar realçado na tela de configurações.

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

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

Solucionar erros

No caso de uma falha de verificação de preparação, consulte as informações a seguir para obter ajuda com a solução de problemas.

Erro: Acesso à Conta de Serviço

Captura de tela mostra erro de ambiente durante a checagem 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. Esse erro ocorre quando a conta de serviço é NT AUTHORITY\LOCAL SERVICE. Captura de tela que exibe o resumo da camada de aplicativo para o Serviço Local da NT Authority.

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 do Azure DevOps, acesse a tela 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 grupo de usuários.
  4. Refaça o processo de backup para criar o backup com êxito e reexecutar 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:A captura de tela mostra arquivos de logs de backup agendados.

Console de Administração: Backups Agendados A captura de tela mostra o console de administração exibindo a tela de backups agendados.

Erro: Arquivo de log

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

Exemplo de local do arquivo de log:C:\ProgramData\Microsoft\Azure DevOps\Server Configuration\Logs\TFS_Scheduled Backups_0627_192409.logExemplo de mensagem de erro de arquivo de log:[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 de arquivo de banco de dados LeadingKey.

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