Partilhar via


Instalar e configurar a Pesquisa

Azure DevOps Server 2022 - Azure DevOps Server 2019

Neste artigo, saiba como instalar, configurar e 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 que podem estar em inglês:

Pré-requisitos

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.

Gorjeta

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 apoiado por armazenamento de unidade de estado sólido (SSD)
  • Menos de 500 usuários com a Pesquisa localizada em um servidor separado:
    • Processador dual core, 8 GB (mínimo) de RAM
    • Disco rígido rápido apoiado por armazenamento de unidade de estado sólido (SSD)
  • Menos de 1.000 usuários com a Pesquisa localizada em um servidor separado:
    • Processador quad core, 16 GB (mínimo) de RAM
    • Disco rígido rápido apoiado por armazenamento de unidade de estado sólido (SSD)
  • Mais de 1.000 usuários com a Pesquisa localizada em um 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 aplicativo (ATs):
  • Utilização da CPU do Azure DevOps Server superior a 50% antes da instalação da Pesquisa:

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 Elasticsearch.
    • A pesquisa usa uma versão modificada do Elasticsearch. Funciona apenas com esta versão modificada.
    • Uma versão mais recente do Elasticsearch vem com o TFS 2018 Update 2 e posterior, e o 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 Elasticsearch NEST.
  • Compilação Microsoft do OpenJDK Versão 11.
    • O Microsoft Build do OpenJDK não instala atualizações automaticamente.
  • Markdowndeep por Topten Software.
  • Plataforma de compilador Roslyn .
  • Analisador de reconhecimento de linguagem ANTLR .

Nota

  • 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. No Azure DevOps Server, o JRE padrão é Azul Zulu 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.

    Nota

    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 ao 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 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 a 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.

    Nota

    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 de pesquisa, os recursos comerciais do servidor JRE não são ativados nem desbloqueados.
    • Se você optar por continuar com o Oracle JRE, entre em contato com a Oracle para obter 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 a Java Virtual Machine.

Disponibilidade de caraterísticas

  • 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 é um recurso de aceitação. Você pode instalar a Pesquisa de código mais tarde a partir da Galeria Local. Vá para a Galeria Local (http://{server}/_gallery) como 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ções, consulte 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 o Assistente de Configuração do Servidor novamente ou iniciando o Assistente de Configuração de Pesquisa.

Questões de configuração

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

  • A pesquisa de Item de Trabalho e Wiki é ativada 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, você pode definir uma caixa de seleção para Instalar automaticamente a extensão de Pesquisa de Código para Coleções de Projetos novas e existentes para automatizar esse processo.
  • Se você não definir a caixa de seleção para instalar a extensão de Pesquisa de código para todas as suas coleções de projetos, seu PCA poderá 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ções, consulte 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 não obtiver resultados após este período, verifique o estado 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 você escolher uma conta diferente, ela deverá ter a permissão Fazer logon como 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 Busca por um servidor com vários ATs, instale em um 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 você estiver fazendo uma atualização de pré-produção em um servidor onde a Pesquisa já estava configurada, deverá reconfigurar totalmente a Pesquisa novamente para evitar corromper sua 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 novas e existentes 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 você estiver fazendo uma atualização de produção em um servidor onde a Pesquisa está configurada e quiser mantê-la, marque a caixa ao lado de Instalar e Configurar a Pesquisa. O assistente deteta sua instância de Pesquisa existente e seleciona automaticamente Usar instância de Pesquisa existente e preenche previamente 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 novo hardware, terá 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 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 junto com a instância do Servidor de DevOps do Azure no servidor antigo, você deverá selecionar Instalar e Configurar 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
  • Se você estiver desanexando 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 suas extensões de Pesquisa, como Código, Item de trabalho ou Wiki para a coleção da Galeria Local no 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 Servidor de DevOps do Azure no servidor primário, defina a caixa de seleção Instalar e configurar a Pesquisa . na página Pesquisa do Assistente de Configuração do Servidor.
  2. Selecione a opção Usar um serviço de Pesquisa existente.
  3. Use o link Pacote de serviço de Pesquisa fornecido no assistente para acessar um conjunto de arquivos do instalador de Pesquisa 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 Pesquisa resultante para o campo URL de Pesquisa do assistente de configuração executado na instância do Servidor de DevOps do Azure.
  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 pré-existente ou credenciais de servidor. Eles são usados para configurar e se 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 de senha. Os administradores podem fornecer um nome de utilizador e palavra-passe diferentes, se assim o 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.

Nota

  • Os valores de nome de usuário e senha devem ter entre 8 e 64 caracteres. Embora a senha possa ser atribuída a qualquer valor, o nome de usuário pode conter apenas caracteres alfanuméricos e sublinhados.
  • 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:

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

    • Garante que apenas usuários autorizados possam acessar a porta do Elasticsearch. Requer apenas regras do lado do serviço (regras de firewall apenas no servidor que executa o Elasticsearch)
    • Pré-requisito: o Servidor de DevOps do Azure deve ser configurado com uma conta de domínio
    • Siga as etapas em Criando regras de firewall que permitem tráfego de rede protegido por IPsec
  • 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 Isolando um servidor exigindo criptografia e associação de grupo
  • TFS 2018 Atualização 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 em um servidor remoto, consulte Instalar ou atualizar a pesquisa em um 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á-lo mais seguro. 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 estiver configurada em um servidor separado, exija uma 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 pesquisa.

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 que o Servidor de DevOps do Azure 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. Vá para a página Gerenciar Extensões de cada coleção em sua instância 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 recurso.
    4. Selecione Serviço de pesquisa e, em seguida, escolha Remover.
  3. Remova o serviço Elasticsearch:

    1. Abra o 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 as etapas a seguir para desconfigurar a Pesquisa, como Código, Item de trabalho ou Wiki, para cada coleção.

  1. Vá para a página Gerenciar Extensões para cada coleção em 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 caixa de diálogo Remover Recurso , Console 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 Recurso, selecione Serviço de pesquisa e 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 você fizer uma operação de recuperação de desastres (DR) e mova o servidor de volta para um instantâneo anterior do banco de dados SQL.
  • A pesquisa não é extensível, mas você pode enviar uma nova solicitação de recurso na Comunidade de desenvolvedores.