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 Servidor de DevOps do Azure que é executado em seu próprio hardware. Para obter mais informações, consulte os seguintes artigos:

Pré-requisitos

  • Para instalar a extensão De pesquisa, você deve ser um PCA (Administrador de Coleção de Projetos) para a organização. Os usuários não administrativos também podem solicitar que a extensão seja adicionada ao PCA.
  • Para obter mais informações, consulte Instalar e configurar o Servidor de DevOps do Azure e Requisitos e compatibilidade.

Recomendações de hardware

A pesquisa funciona em qualquer servidor físico ou máquina virtual que execute o Servidor de DevOps do Azure. Você pode configurá-lo no mesmo servidor ou em um servidor diferente para a 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 obter um desempenho aceitável em cenários de vários usuários, 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 pelo armazenamento SSD (Solid State Drive)
  • Menos de 500 usuários com a Pesquisa localizada em um servidor separado:
    • Processador de núcleo duplo, 8 GB (mínimo) de RAM
    • Disco rígido rápido apoiado pelo armazenamento SSD (Solid State Drive)
  • 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 pelo armazenamento SSD (Solid State Drive)
  • 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 pelo armazenamento SSD (Unidade de Estado Sólido) ou SAN (Rede de Área de Armazenamento)
  • Servidor de DevOps do Azure com várias camadas de aplicativo (ATs):
  • Utilização da CPU do Servidor de DevOps do Azure superior a 50% antes da instalação da Pesquisa:

Requisito de espaço em disco:

A quantidade de espaço em disco usada pela Pesquisa depende principalmente do tipo e do tamanho dos arquivos indexados. Para pesquisa de código, como muitos 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. Ele funciona apenas com esta versão modificada.
    • Uma versão mais recente do Elasticsearch é fornecida com o TFS 2018 Atualização 2 e posterior e 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 por Topten Software.
  • Plataforma de compilador Roslyn .
  • Analisador de reconhecimento de linguagem ANTLR .

Observação

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

Notas de instalação do Java

  • Se o Assistente de configuração de pesquisa não detectar uma instalação funcional de um JRE (Java Runtime Environment), ele fornecerá uma opção para baixar e instalar a versão mais recente com suporte. A conectividade com a Internet é necessária para baixar. 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.

  • As versões da Pesquisa antes de Azure DevOps Server usaram o Ambiente de Runtime java do Oracle Server. Em 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 poderá não detectar uma instalação do JRE existente se ela não tiver sido configurada corretamente ou se a configuração de JAVA_HOME apontar para uma versão anterior à exigida pela Pesquisa.

    Observação

    Não aconselhamos a instalação do Elasticsearch em um computador em que os recursos são compartilhados, especialmente em um ambiente empresarial de grande porte com várias camadas de aplicativo. Recomendamos que você configure o Elasticsearch em uma máquina dedicada separada. Dessa forma, o ambiente JAVA não é compartilhado entre computadores para outras finalidades.

  • 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 JRE do Servidor 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 você não conseguir instalar a versão do Java exigida pela Pesquisa devido a outras dependências, poderá realizar as seguintes tarefas:

    • Instale Azure DevOps Server com a extensão De pesquisa 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 (Azure DevOps Server não usa o Oracle Server JRE 8), esteja ciente das seguintes informações:

    • A pesquisa não usa nem dá suporte a nenhum dos recursos comerciais do Servidor JRE 8. Portanto, durante a configuração da Pesquisa, os recursos comerciais do JRE do Servidor 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 você possa continuar a receber atualizações do JRE.

Migrar para o Microsoft Build do OpenJDK do Oracle Server JRE

A pesquisa no Servidor de DevOps do Azure oferece suporte a ambos, o Microsoft Build do OpenJDK e o 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 recursos

  • Pesquisa de item de trabalho está disponível no Team Foundation Server (TFS) 2018 e versões posteriores.
  • A Pesquisa Wiki está disponível no TFS 2018 Atualização 2 e versões posteriores.
  • A pesquisa de Item de Trabalho e Wiki são extensões internas instaladas por padrão durante a configuração de Pesquisa.
  • A Pesquisa de Código está disponível no TFS 2018 e em versões posteriores e é um recurso de aceitação. Você pode instalar a Pesquisa de Código posteriormente por meio da Galeria Local. Vá para Galeria Local (http://{server}/_gallery) como administrador. Usuários não administrativos também podem solicitar a extensão para Azure DevOps Server. Para obter mais informações, consulte Instalar uma extensão.

Configure o serviço Pesquisa usando as páginas dedicadas no Assistente de Configuração do Servidor ao instalar Azure DevOps Server. 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.

Considerações de configuração

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

  • A pesquisa de Item de Trabalho e Wiki é habilitada por padrão quando a Pesquisa está 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 pesquisa de código deve ser instalada para cada coleção 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 projeto novas e existentes para automatizar esse processo.
  • Se você não definir a caixa de seleção para instalar a extensão pesquisa de código para todas as suas coleções de projetos, seu PCA poderá instalá-la por meio da Galeria Local. Acesse 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, leva menos de uma hora para a Pesquisa indexar uma coleção. Mas pode levar até 12 horas com base no tamanho e no 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.

Usar um segundo disco rígido e um servidor remoto

  • Para obter o desempenho máximo, a pasta de índice de pesquisa deve estar em um disco rígido rápido separado e apoiada pelo armazenamento rápido, como uma SSD (unidade de estado sólido) ou san (rede de área de armazenamento). 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 permissão Fazer logon como serviço .
    • Restrinja as permissões do disco de índice e da pasta para proteger o índice contra modificação ou exclusão acidental ou mal-intencionada. Defina as configurações de segurança apropriadas para o serviço.
  • Ao configurar a Pesquisa para 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 à 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 executada originalmente.

Atualizar o servidor

  • Se você estiver fazendo uma atualização de pré-produção em um servidor em que a Pesquisa já foi configurada, você 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 Pesquisar 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 em que a Pesquisa está configurada e quiser mantê-la, marque a caixa ao lado de Instalar e Configurar Pesquisa. O assistente detecta sua instância de Pesquisa existente e seleciona automaticamente Usar instância de Pesquisa existente e preenche previamente a URL do serviço de Pesquisa atual. 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 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 Azure DevOps Server, 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 instância de Pesquisa existente para concluir a configuração de Pesquisa
    • Se a Pesquisa estiver configurada junto com sua instância de Azure DevOps Server 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 você quiser continuar a pesquisa de co-hospedagem e Azure DevOps Server. 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 Servidor de DevOps do Azure para anexá-la a outra instância, execute as seguintes etapas:
    1. Desanexar a coleção da instância de Azure DevOps Server de origem
    2. Configurar a Pesquisa na instância de Azure DevOps Server de destino (se ainda não tiver feito)
    3. Anexar a coleção ao Azure DevOps Server de destino
    4. Desinstale suas extensões de Pesquisa, como Código, Item de trabalho ou Wiki para a coleção da Galeria Local em seu Azure DevOps Server
    5. Instale a extensão De pesquisa, para a coleção da Galeria Local, navegando até ela de sua instância de Azure DevOps Server de destino

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 Pesquisar do Assistente de Configuração do Servidor.
  2. Selecione a opção para Usar um serviço Pesquisa existente.
  3. Use o link do 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 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 que é executado na instância Azure DevOps Server.
  6. Quando ambas as instalações forem 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 "Elasticsearch" são usados alternadamente para o restante desta seção. Os administradores devem fornecer credenciais se o serviço Pesquisa estiver no mesmo computador que Azure DevOps Server ou em um computador separado. Essa ação faz parte da configuração do recurso De pesquisa 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 ou credenciais de servidor pré-existentes. Eles são usados para configurar e se conectar a serviço Pesquisa. Esses novos conjuntos de credenciais habilitam a autenticação básica no serviço de pesquisa.

Captura de tela mostrando credenciais de pesquisa.

Para uma atualização do TFS 2018 Atualização 1.1 para o TFS 2018 Atualização 3 ou para reconfiguração de 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 usuário e senha diferentes, se desejarem. Se o serviço Pesquisa estiver no mesmo computador que Azure DevOps Server, os administradores poderão fornecer um novo conjunto de credenciais no Assistente de Configuração para configurar o serviço Pesquisa, se desejado. No entanto, se o serviço Pesquisa estiver em um computador remoto, os administradores deverão primeiro fornecer as novas credenciais para o script de configuração serviço Pesquisa.

Observação

  • 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 autenticam apenas 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 dá suporte a HTTPS e, portanto, essas credenciais são enviadas pela rede como cadeias de caracteres codificadas em Base64. Se houver uma possibilidade de acesso intermediário à solicitação, defina as configurações de segurança apropriadas com base em seus requisitos corporativos de segurança e conformidade.
  • Visa limitar o acesso à pesquisa e à indexação a usuários ou grupos de usuários específicos usando a criptografia por meio do IPSec, descrito a seguir.

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

  • Configure a segurança somente 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 junto 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 da Camada de Aplicativo Azure DevOps Server)
    • Pré-requisito: Azure DevOps Server 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 Atualização 2: inclui componentes de pesquisa atualizados e Pesquisa Wiki.

    • Se o serviço Pesquisa foi configurado durante a atualização rtm de 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 dar suporte aos componentes atualizados após a configuração. Dependendo do volume de conteúdo, essa atualização pode levar algum tempo para ser concluída.

  • Atualização 1.1 do TFS 2018 e Atualização 3 do TFS 2018: 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.

  • Atualização 2 (ou superior) do TFS 2018 para a versão Atualização 1 do Azure DevOps Server 2019: quando a pesquisa é 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, nova migração de hardware, clonagem ou outra operação de manutenção, o Assistente de Configuração do Servidor desconfigura a Pesquisa. Porém, é fácil reconfigurar após a conclusão da operação de manutenção do servidor.

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

Desconfigure Search no computador configurado como seu Azure DevOps Server

  1. Desinstale a extensão Pesquisar para cada coleção. Vá para a página Gerenciar Extensões de cada coleção em sua instância de Azure DevOps Server:

    Captura de tela da verificação de que a extensão está instalada.

  2. Remova o recurso Pesquisa:

    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

Execute 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 Servidor de DevOps do Azure.

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

  2. Remova o recurso Pesquisa:

    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 restante dos arquivos necessários para uma instalação remota da Pesquisa.
    3. Execute o script novamente com a opção remover: "ConfigureTFSSearch.ps1 -remove".

A pesquisa por Azure DevOps Server tem a seguinte limitação:

  • Reindexe todas as 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.