Partilhar via


Instalar e configurar a Pesquisa

Azure DevOps Server | Azure DevOps Server 2022

Neste artigo, saiba como instalar, configurare desinstalar um mecanismo de pesquisa seguro para o Azure DevOps Server que é executado em seu próprio hardware. Para obter mais informações, consulte os seguintes artigos:

Pré-requisitos

Permissões: Membro do grupo Administradores da Coleção de Projetos da organização. Os usuários não administrativos também podem solicitar que a extensão seja adicionada ao seu PCA. Para obter mais informações, consulte Instalar e configurar o Azure DevOps Server e Requisitos e compatibilidade.

Recomendações de hardware

A pesquisa funciona em qualquer servidor físico ou máquina virtual que execute o Azure DevOps Server. Você pode configurá-lo no mesmo servidor ou em um servidor diferente para Pesquisa. Se você usar o mesmo servidor, considere o uso da CPU.

Dica

Recomendamos que você configure a Pesquisa em um servidor separado para ambientes de produção.

Para um desempenho aceitável em cenários multiusuário, considere as seguintes recomendações:

  • Menos de 250 usuários com a Pesquisa localizada no servidor (normalmente usada para fins de demonstração e avaliação):
    • Processador quad core, 16 GB (mínimo) de RAM
    • Fator de utilização da CPU inferior a 50%
    • Disco rígido rápido com suporte de armazenamento em unidade de estado sólido (SSD)
  • Menos de 500 utilizadores com a Pesquisa localizada num servidor separado:
    • Processador dual core, 8 GB (mínimo) de RAM
    • Disco rígido rápido com suporte de armazenamento em unidade de estado sólido (SSD)
  • Menos de 1.000 utilizadores com a Pesquisa localizada num servidor separado:
    • Processador quad core, 16 GB (mínimo) de RAM
    • Disco rígido rápido com suporte de armazenamento em unidade de estado sólido (SSD)
  • Mais de 1,000 utilizadores com Pesquisa localizada num servidor separado :
    • Processador quad core, 16 GB (mínimo) de RAM
    • Disco rígido rápido apoiado por armazenamento SSD (Solid State Drive) ou SAN (Storage Area Network, rede de armazenamento de dados)
  • Azure DevOps Server com várias camadas de aplicação (ATs):
    • Instalar a Pesquisa em um servidor separado
  • Utilização da CPU do Azure DevOps Server superior a 50% antes da instalação do Search:
    • Instalar a Pesquisa em um servidor separado

Requisito de espaço em disco:

A quantidade de espaço em disco utilizada pela Pesquisa depende principalmente do tipo e tamanho dos ficheiros indexados. Para a pesquisa de código, como muitas vezes os repositórios podem ser grandes e ter arquivos de código diferentes no controle de versão, o requisito de espaço em disco pode ser significativo. Aloque até 150% do tamanho de todos os repositórios a serem indexados. A partir da Atualização 3 do TFS 2018, os usuários podem excluir pastas de seus repositórios para indexação para otimizar o espaço em disco consumido pela pesquisa.

Dependências de software

A pesquisa tem as seguintes dependências, que são instaladas automaticamente como parte da configuração:

  • Elasticsearch por Elastic.
    • A pesquisa usa uma versão modificada do Elasticsearch. Funciona apenas com esta versão modificada.
    • Uma versão mais recente do Elasticsearch é integrada ao TFS 2018 Update 2 e posterior, e ao Azure DevOps Server. Todo o conteúdo é reindexado após a instalação quando você atualiza de uma versão mais antiga dos resultados da pesquisa. Dependendo do volume de conteúdo (arquivos de código, itens de trabalho e páginas wiki), a reindexação pode levar algum tempo para ser concluída.
  • Cliente NEST do Elasticsearch.
  • Microsoft Build do OpenJDK Versão 11.
    • O Microsoft Build do OpenJDK não instala atualizações automaticamente.
  • Markdowndeep pela Topten Software.
  • Roslyn plataforma de compilação.
  • ANTLR analisador de reconhecimento de linguagem.

Observação

  • O administrador do sistema ou servidor deve garantir que o Server JRE seja mantido e atualizado de acordo com as recomendações do provedor de software. Consulte também as notas de instalação do Java que se seguem.
  • Verifique regularmente se há atualizações .

Notas de instalação do Java

  • Se o assistente de configuração de pesquisa não detetar uma instalação em funcionamento de um Java Runtime Environment (JRE), ele fornecerá uma opção para baixar e instalar a versão suportada mais recente. É necessária conectividade com a Internet para fazer o download. Se o servidor de destino não tiver conectividade com a Internet, você deverá baixar e instalar um JRE manualmente antes de tentar instalar a Pesquisa.

  • Versões da Pesquisa anteriores ao Azure DevOps Server usavam o Oracle Server Java Runtime Environment. O Azure DevOps Server usa o Elasticsearch versão 7.17.0, que tem uma versão empacotada do OpenJDK.

  • Durante a instalação, o assistente define a variável de ambiente JAVA_HOME para apontar para a pasta de instalação do JRE. O assistente de configuração pode não detetar uma instalação JRE existente se ela não tiver sido configurada corretamente ou se a configuração JAVA_HOME apontar para uma versão anterior à exigida pela Pesquisa.

    Observação

    Não aconselhamos a instalação do Elasticsearch em uma máquina onde os recursos são compartilhados, especialmente em um ambiente corporativo de grande porte com várias camadas de aplicativos. Recomendamos que você configure o Elasticsearch em uma máquina dedicada separada. Dessa forma, o ambiente JAVA não é compartilhado entre máquinas para outros fins.

  • Se houver uma versão de um JRE anterior do mínimo exigido pela Pesquisa e a variável JAVA_HOME tiver sido definida para essa versão, recomendamos que você instale a Pesquisa em um servidor separado.

  • Se houver uma versão do Server JRE igual ou posterior ao mínimo exigido pela Pesquisa e não reconhecida pelo assistente de configuração, verifique se a variável JAVA_HOME NÃO está definida. Em seguida, execute novamente o assistente de configuração (& "C:\Program Files\Azure DevOps Server XXX\Search\ES\vX.XX\bin\elasticsearch-service.bat" manager) e selecione a versão definindo o caminho para o Java Virtual Machine.

  • Se não for possível instalar a versão do Java exigida pela Pesquisa devido a outras dependências, você poderá executar as seguintes tarefas:

    • Instale o Azure DevOps Server com a extensão Search em um servidor que não tenha o Java instalado. Não recomendamos essa ação para mais de 250 usuários ou utilização da CPU superior a 50% ou vários ATs.
    • Instale a Pesquisa e o JRE em um servidor separado do Servidor de DevOps do Azure.

    Observação

    Se você estiver usando o Oracle Server JRE 8, que era o padrão para Pesquisa no TFS (o Azure DevOps Server não usa o Oracle Server JRE 8), esteja ciente das seguintes informações:

    • A pesquisa não usa nem suporta nenhum dos recursos comerciais do Server JRE 8. Portanto, durante a configuração da Pesquisa, os recursos comerciais do Servidor JRE não são ativados nem desbloqueados.
    • Se optar por continuar com o Oracle JRE, contacte a Oracle para uma Assinatura Java SE , para que possa continuar a receber atualizações do JRE.

Migrar para o Microsoft Build do OpenJDK a partir do Oracle Server JRE

A pesquisa no Azure DevOps Server dá suporte ao Microsoft Build do OpenJDK e ao Oracle JRE, que permitem que você escolha entre eles com base em suas necessidades.

Para alterar para o Microsoft Build do OpenJDK, verifique se JAVA_HOME variável NÃO está definida. Em seguida, execute novamente o assistente de configuração (& "C:\Program Files\Azure DevOps Server XXX\Search\ES\vX.XX\bin\elasticsearch-service.bat" manager) e selecione a versão definindo o caminho para o Java Virtual Machine.

Disponibilidade de funcionalidades

  • Pesquisa de item de trabalho está disponível no Team Foundation Server (TFS) 2018 e versões posteriores.
  • A Pesquisa Wiki está disponível na Atualização 2 do TFS 2018 e versões posteriores.
  • O Item de Trabalho e a pesquisa Wiki são extensões incorporadas que são instaladas por padrão durante a configuração da Pesquisa.
  • A Pesquisa de Código está disponível no TFS 2018 e versões posteriores e é uma funcionalidade opcional. Você pode instalar a Pesquisa de código mais tarde a partir da Galeria Local. Vá para a Galeria Local (http://{server}/_gallery) na qualidade de administrador. Os usuários não administrativos também podem solicitar a extensão para o Servidor de DevOps do Azure. Para obter mais informação, ver Instalar uma extensão.

Configure o serviço de Pesquisa usando as páginas dedicadas no Assistente de Configuração do Servidor à medida que instala o Servidor de DevOps do Azure. Você também pode desconfigurar a Pesquisa posteriormente, executando novamente o Assistente de Configuração do Servidor ou o Assistente de Configuração de Pesquisa.

Considerações de configuração

Considere as seguintes informações ao configurar a Pesquisa:

  • A pesquisa de Itens de Trabalho e a pesquisa Wiki são ativadas por padrão quando a Pesquisa é configurada. Essas extensões podem ser removidas posteriormente, se necessário, da página Gerenciar Extensões do Servidor de DevOps do Azure.
  • A extensão de Pesquisa de Código deve ser instalada para cada coleção do Azure DevOps Server onde você deseja usá-la. Ao configurar inicialmente a Pesquisa, pode definir uma caixa de seleção para instalar automaticamente a extensão Pesquisa de Código para colecções de projetos existentes e novas automatizar esse processo.
  • Se não definires a caixa de seleção para instalar a extensão de Pesquisa de Código para todas as tuas coleções de projetos, o teu PCA pode instalá-la a partir da Galeria Local. Certifique-se de ir para a Galeria Local (http://{Server}/_gallery) na página do portal do Azure DevOps Server. Para obter mais informação, ver Instalar uma extensão.
  • Normalmente, a Pesquisa demora menos de uma hora a indexar uma coleção. Mas, pode levar até 12 horas com base no tamanho e número de arquivos de código, itens de trabalho ou páginas wiki. Se você não obtiver resultados após esse período, verifique o status da indexação.

Use um segundo disco rígido e servidor remoto

  • Para obter o máximo desempenho, a pasta de índice de pesquisa deve estar em um disco rígido rápido separado e ser apoiada por armazenamento rápido, como uma unidade de estado sólido (SSD) ou SAN (Storage Area Network, rede de armazenamento de dados). Aloque até 150% do tamanho de todos os repositórios a serem indexados, que é o pior cenário. O espaço real consumido depende da quantidade e do tipo de arquivos de código e do número de itens de trabalho e páginas wiki nessa coleção.
    • A menos que especificado, o serviço de indexação e o mecanismo Elasticsearch usam a conta de serviço de rede durante a instalação para criar e acessar os arquivos de índice. Se escolher uma conta diferente, ela deve ter a permissão Iniciar sessão como um serviço.
    • Restrinja as permissões para o disco e a pasta de índice para proteger o índice contra modificações ou exclusões acidentais ou maliciosas. Configure as configurações de segurança apropriadas para o serviço.
  • Ao configurar a Pesquisa para um servidor com vários ATs, instale num servidor separado. Depois de instalar a Pesquisa no servidor remoto, use o Assistente de Configuração em qualquer um dos servidores AT para vincular a instância de Pesquisa remota à sua instância do Servidor de DevOps do Azure. Ao desconfigurar a Pesquisa, você deve usar o Assistente de Configuração no mesmo servidor AT em que a configuração foi originalmente executada.

Atualize seu servidor

  • Se estiveres a fazer uma atualização de pré-produção num servidor onde a Pesquisa já estava configurada, deverás reconfigurar totalmente a Pesquisa novamente para evitar corromper a tua instância de produção. Não há uma opção para configurar a Pesquisa como parte de uma atualização de pré-produção. Em vez disso, configure-o após a conclusão da atualização de pré-produção. Você pode desmarcar Instalar e configurar automaticamente a Pesquisa de Código para todas as coleções existentes e novas durante a configuração. Em vez disso, instale a extensão de pesquisa para apenas uma ou duas de suas coleções após a conclusão da configuração
  • Se estiveres a fazer uma atualização de produção num servidor onde a Pesquisa está configurada e quiseres mantê-la, marca a caixa ao lado de Instalar e Configurar Pesquisa. O assistente deteta a sua instância de Pesquisa existente e seleciona automaticamente Usar instância de Pesquisa existente e pré-preenche a URL atual do serviço de Pesquisa. Use a opção instalar uma nova instância de Pesquisa somente se quiser configurar uma nova instância de Pesquisa no mesmo servidor. Configurar uma nova instância faz com que todo o seu código, itens de trabalho e wiki sejam indexados novamente, o que - dependendo do tamanho das coleções - pode levar algum tempo. Durante a indexação, os usuários podem ver resultados parciais da pesquisa
  • Se você estiver atualizando seu servidor para um novode hardware , você tem as duas opções a seguir. Selecione uma destas opções, dependendo de como a Pesquisa foi configurada anteriormente:
    • Se a Pesquisa estiver em um servidor separado do Servidor de DevOps do Azure, você deverá selecionar Instalar e Configurar de Pesquisa no Assistente de Configuração do Servidor e, em seguida, selecionar Usar uma instância de Pesquisa existente e fornecer a URL da sua instância de Pesquisa existente para concluir a configuração de Pesquisa
    • Se a Pesquisa estiver configurada juntamente com a instância do Azure DevOps Server no antigo servidor, deverá selecionar Instalar e Configurar a Pesquisa no Assistente de Configuração do Servidor. Em seguida, selecione Instalar uma nova instância de Pesquisa novamente no novo servidor se quiser continuar a cohospedar a Pesquisa e o Servidor de DevOps do Azure. Todos os índices de pesquisa para todas as coleções são recriados, o que, dependendo do tamanho de cada coleção, pode levar algum tempo
  • Caso esteja desanexar uma coleção de uma instância do Azure DevOps Server para anexá-la a outra instância, execute as seguintes etapas:
    1. Desanexar a coleção da instância de origem do Azure DevOps Server
    2. Configurar a Pesquisa na instância de destino do Azure DevOps Server (se ainda não tiver sido concluída)
    3. Anexar a coleção ao Servidor de DevOps do Azure de destino
    4. Desinstale as suas extensões de Pesquisa, como Código, Item de trabalho ou Wiki para a coleção na Galeria Local do no seu Servidor de DevOps do Azure
    5. Instale a extensão de Pesquisa, para a coleção da Galeria Local , navegando até ela a partir da instância de destino do Azure DevOps Server.

Instalar ou atualizar a Pesquisa em um servidor separado

Para instalar ou atualizar a Pesquisa em um servidor separado ou remoto, normalmente quando há mais de 250 usuários, execute as seguintes etapas:

  1. Ao instalar o Azure DevOps Server no servidor primário, selecione a caixa de seleção Instalar e configurar Pesquisa. na página de Pesquisa do Assistente de Configuração do Servidor.
  2. Selecione a opção Usar um serviço de Pesquisa existente.
  3. Use o link do pacote de serviço Search fornecido no assistente para aceder a um conjunto de ficheiros do instalador do Search na máquina local. Em seguida, copie esses arquivos para o servidor remoto.
  4. Siga as instruções no arquivo Readme.txt, localizado no conjunto de arquivos do instalador, para instalar ou atualizar o serviço de Pesquisa no servidor remoto.
  5. Após a conclusão da instalação, copie a URL do servidor de buscas resultante para o campo URL de Pesquisa do do assistente de configuração que é executado na instância do Servidor Azure DevOps.
  6. Quando ambas as instalações estiverem concluídas, defina as configurações de segurança apropriadas para ambos os servidores.

O serviço de Pesquisa usa uma versão modificada do Elasticsearch. Os termos "Pesquisa" e "Pesquisa elástica" são usados indistintamente para o resto desta seção. Os administradores devem fornecer credenciais se o serviço de Pesquisa estiver na mesma máquina que o Servidor de DevOps do Azure ou em uma máquina separada. Esta ação faz parte da configuração do recurso Pesquisar por meio do servidor ou do assistente de configuração de Pesquisa. Essas credenciais são novas e não estão relacionadas a nenhuma conta preexistente ou credenciais de servidor. Eles são usados para configurar e conectar ao serviço de Pesquisa. Esses novos conjuntos de credenciais habilitam a autenticação básica no serviço de pesquisa.

Captura de ecrã a mostrar credenciais de pesquisa.

Para uma atualização da Atualização 1.1 do TFS 2018 para a Atualização 3 do TFS 2018 ou para a reconfiguração da pesquisa, somente as informações do usuário são preenchidas automaticamente e os administradores devem fornecer credenciais. Os administradores podem fornecer credenciais diferentes, se desejarem. Se o serviço de Pesquisa estiver na mesma máquina que o Servidor de DevOps do Azure, os administradores poderão fornecer um novo conjunto de credenciais no Assistente de Configuração para configurar o serviço de Pesquisa, se desejado. No entanto, se o serviço de Pesquisa estiver em uma máquina remota, os administradores deverão primeiro fornecer as novas credenciais ao script de configuração do serviço de Pesquisa.

Observação

  • Os valores de credenciais devem ter entre 8 e 64 caracteres.
  • As credenciais de pesquisa apenas autenticam os usuários e garantem que os usuários não autenticados não possam acessar o ponto de extremidade do Elasticsearch. No entanto, o Elasticsearch não suporta HTTPS e, portanto, essas credenciais são enviadas pela rede como cadeias de caracteres codificadas em Base64. Se houver a possibilidade de acesso intermediário à solicitação, configure as configurações de segurança apropriadas com base em seus requisitos corporativos de segurança e conformidade.
  • Procurar limitar o acesso à pesquisa e indexação a utilizadores ou grupos de utilizadores específicos utilizando encriptação através de IPSec, descritos a seguir.

Considere as seguintes técnicas para usar o IPSec para proteger o Elasticsearch em um servidor Windows:

  • Configurar a segurança apenas com autenticação:

  • Configure a segurança com autenticação, proteção de integridade e criptografia:

    • Garante que a criptografia e a proteção de integridade sejam aplicadas juntamente com a autenticação. Ele requer regras do lado do cliente e do lado do serviço (regras de firewall no servidor que executa o Elasticsearch e todos os servidores de Camada de Aplicativo do Azure DevOps Server)
    • Pré-requisito: o Servidor de DevOps do Azure deve ser configurado com uma conta de domínio
    • Siga as etapas em isolar um servidor exigindo criptografia e associação de grupo
  • TFS 2018 Update 2: Inclui componentes de pesquisa atualizados e Pesquisa Wiki.

    • Se o serviço de Pesquisa foi configurado durante a atualização RTM 2018 e configurado no sistema TFS que você está atualizando, seus componentes são atualizados automaticamente.
    • Se a Pesquisa tiver sido configurada num servidor remoto, veja Instalar ou atualizar a pesquisa num servidor separado para atualizá-la.

    Em ambos os casos, todo o conteúdo existente (arquivos de código e itens de trabalho) é reindexado automaticamente para suportar os componentes atualizados após a configuração. Dependendo do volume de conteúdo, essa atualização pode levar algum tempo para ser concluída.

  • TFS 2018 Atualização 1.1 e TFS 2018 Atualização 3: Inclui autenticação básica para a comunicação entre o TFS e o serviço de Pesquisa para torná-la mais segura. Qualquer instalação ou atualização para o TFS 2018 Atualização 1.1 ou TFS 2018 Atualização 3 deve fornecer credenciais como parte da configuração do recurso de Pesquisa, por meio do Servidor ou do assistente de configuração de Pesquisa.

  • TFS 2018 Atualização 2 (ou superior) para a versão Azure DevOps Server 2019 Atualização 1: Quando a pesquisa é configurada num servidor separado, requer a reinstalação da pesquisa. Ao seguir as instruções para uma atualização, na etapa 4 em vez de atualizar Configure-TFSSearch.ps1 – Operation update, execute o seguinte comando para reinstalar a função de procurar.

Configure-TFSSearch.ps1 -Operation remove
Configure-TFSSearch.ps1 -Operation install -TFSSearchInstallPath <install location> -TFSSearchIndexPath $env:SEARCH_ES_INDEX_PATH

Para uma atualização de pré-produção, atualização de produção, migração de novo hardware, clonagem ou outra operação de manutenção, o Assistente de Configuração do Servidor desconfigura a Pesquisa. Mas, é fácil reconfigurar após a conclusão da operação de manutenção do servidor.

Pode haver casos em que você não queira mais usar a Pesquisa ou queira fazer uma instalação nova e limpa. Essa operação requer várias etapas, dependendo se a Pesquisa está configurada no mesmo servidor do Azure DevOps Server ou em um servidor separado.

Desconfigurar a Pesquisa na máquina configurada como seu Servidor de DevOps do Azure

  1. Desinstale a extensão Search para cada coleção. Navegue para a(s) página(s) Gerenciar Extensões de cada coleção na sua(s) instância(s) do Azure DevOps Server.

    Captura de ecrã a mostrar a verificação de que a extensão está instalada.

  2. Remova o recurso Pesquisar:

    1. Abra o Console de Administração do Servidor de DevOps do Azure.
    2. Selecione o nome do servidor.
    3. Escolha Remover funcionalidade.
    4. Selecione serviço de Pesquisae, em seguida, escolha Remover.
  3. Remova o serviço Elasticsearch:

    1. Abra Prompt de Comando como administrador.
    2. Altere o diretório, cd "C:\Program Files\Microsoft Team Foundation Server 15.0\Search\ES\elasticsearch-5.4.1\bin".
    3. Remova o serviço, "elasticsearch-service.bat remove".
  4. Remover dados de pesquisa:

    • Exclua o conteúdo do local descrito pela variável de ambiente, SEARCH_ES_INDEX_PATH.
  5. Exclua a variável de ambiente, "SEARCH_ES_INDEX_PATH".

Desconfigurar a Pesquisa em um servidor separado

Siga os seguintes passos para desativar a configuração da Pesquisa, tal como para Código, Item de Trabalho ou Wiki, em cada coleção.

  1. Vá para a página Gerir Extensões para cada coleção na sua instância do Azure DevOps Server.

    Captura de tela: Verificar se a extensão está instalada.

  2. Remova o recurso Pesquisar:

    1. Abra a janela Remover Recurso na Consola de Administração.
    2. No painel esquerdo, selecione o nome do Servidor de DevOps do Azure.
    3. No painel direito, escolha Remover recurso.
    4. Na caixa de diálogo Remover Funcionalidade, selecione Serviço de Pesquisae, em seguida, escolha Remover.
  3. Remova o serviço e os dados do Elasticsearch.

    1. Abra o PowerShell como administrador.
    2. Abra a pasta Configurar Search.ps1, juntamente com o resto dos ficheiros necessários para uma instalação remota da Pesquisa.
    3. Execute o script novamente com a opção remover: "ConfigureTFSSearch.ps1 -remove".

A pesquisa do Servidor de DevOps do Azure tem a seguinte limitação:

  • Reindexe todas as suas coleções se fizer uma operação de recuperação de emergência (DR) e mover o servidor de volta para uma cópia instantânea anterior do banco de dados SQL.
  • A pesquisa não é extensível, mas podes enviar uma nova solicitação de recurso na Comunidade de Desenvolvedores .