Instalar e configurar a Pesquisa
Azure DevOps Server 2022 – Azure DevOps Server 2019
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:
- Gerenciar Pesquisa e Indexação
- dependências de software, mais adiante neste artigo
- Azul Zulu OpenJDK
Pré-requisitos
- Para instalar a extensão Pesquisa, você deve ser um PCA (Administrador de Coleção de Projetos) para a organização. 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 do Azure DevOps 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 outro 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 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) RAM
- Fator de utilização da CPU inferior a 50%
- Disco rígido rápido apoiado pelo armazenamento do SSD (Solid State Drive)
- Menos de 500 usuários com 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 do SSD (Solid State Drive)
- Menos de 1.000 usuários com Pesquisa localizada em um servidor separado :
- Processador quad core, 16 GB (mínimo) RAM
- Disco rígido rápido apoiado pelo armazenamento do 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) RAM
- Disco rígido rápido apoiado pelo armazenamento SSD (Unidade de Estado Sólido) ou SAN (Rede de Área de Armazenamento)
- Servidor Azure DevOps com várias camadas de aplicação (ATs):
- Azure DevOps Server utilização da CPU maior que 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 tamanho dos arquivos indexados. Para a pesquisa de código, já que 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 do TFS 2018 Atualização 3, os usuários podem excluir pastas de seus repositórios do índice a fim de otimizar o espaço em disco consumido pelo processo de 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 essa versão modificada.
- Uma versão mais recente do Elasticsearch acompanha o TFS 2018 Update 2 e versões posteriores, assim como 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 NEST do Elasticsearch.
- Microsoft Build do OpenJDK versão 11.
- O Microsoft Build do OpenJDK não instala automaticamente as atualizações.
- Markdowndeep por Topten Software.
- Roslyn plataforma de compilador.
- ANTLR analisador de reconhecimento de linguagem.
Nota
- 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.
- Regularmente verifique 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 o Search.
As versões do Search antes do Azure DevOps Server utilizaram o Ambiente de Execução Java do Oracle Server. 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 poderá não detectar 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 do que o exigido pela Pesquisa.
Nota
Não aconselhamos a instalação do Elasticsearch em um computador onde os recursos são compartilhados, especialmente em um ambiente empresarial grande com várias camadas de aplicativo. Recomendamos que você configure o Elasticsearch em um computador dedicado separado. 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 Server JRE igual ou posterior do que o mínimo exigido pelo Search e não reconhecido 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 a Máquina Virtual Java .Se você não puder instalar a versão do Java exigida pela Pesquisa devido a outras dependências, poderá realizar 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 o Search e o JRE em um servidor separado do Servidor do Azure DevOps.
Nota
Se você estiver usando o Oracle Server JRE 8, que era o padrão para Pesquisa no TFS (o Servidor do Azure DevOps 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 Server JRE 8. Portanto, durante a configuração de 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 uma assinatura do Java SE , para que possa continuar recebendo 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 Máquina Virtual Java .
Disponibilidade de recursos
- A Pesquisa de Item de Trabalho está disponível no TFS (Team Foundation Server) 2018 e versões posteriores.
- A Pesquisa Wiki está disponível no TFS 2018 Update 2 e as 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 opcional. Você pode instalar a Pesquisa de Código posteriormente por meio da Galeria Local. Vá para a Galeria Local (
http://{server}/_gallery
) como administrador. Usuários não administrativos também podem solicitar a extensão para o Servidor do Azure DevOps. Para mais informações, consulte Instalar uma extensão.
Configurar Pesquisa
Configure o serviço de Pesquisa usando as páginas dedicadas no Assistente de Configuração do Servidor ao instalar o 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:
- O Item de Trabalho e a pesquisa wiki são habilitados 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 do Azure DevOps.
- A extensão pesquisa de código deve ser instalada para cada coleção do Servidor do Azure DevOps em que você deseja usá-la. Ao configurar inicialmente a Pesquisa, você pode marcar uma caixa de seleção para instalar automaticamente a extensão Pesquisa de Código para coleções de projetos existentes e novas, automatizando assim 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 a partir da Galeria Local. Verifique se você vai para a Galeria Local (
http://{Server}/_gallery
) na página do portal do Azure DevOps Server. Para mais informações, consulte Instalar uma extensão. - Normalmente, leva menos de uma hora para a Pesquisa indexar uma coleção. No entanto, 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 de 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 consumido real 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 do disco de índice e da pasta para proteger o índice contra modificação ou exclusão acidental ou mal-intencionada. Definir 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 o Search 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 do Azure DevOps. Ao desconfigure Search, você deve usar o Assistente de Configuração no mesmo servidor AT em que a configuração foi realizada originalmente.
Atualizar seu servidor
- Se você estiver fazendo uma atualização de pré-produção em um servidor em que a Pesquisa já estava 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 a instância de Pesquisa existente e preenche previamente a URL atual do serviço Pesquisa. Use a opção Instalar uma nova instância de Pesquisa somente se você 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 estas opções, dependendo de como a Pesquisa foi configurada anteriormente:
- Se o Search estiver em um servidor diferente do Azure DevOps Server, você deverá selecionar Instalar e Configurar Pesquisa no Assistente de Configuração de Pesquisa do Servidor e, em seguida, selecionar Usar uma instância de Search existente e fornecer a URL da sua instância de Search existente para concluir a configuração do Search.
- Se a Pesquisa estiver configurada juntamente com a instância do Servidor do Azure DevOps no servidor antigo, você deve selecionar Instalar e Configurar Pesquisa no Assistente de Configuração do Servidor. Em seguida, selecione novamente Instalar uma nova instância de Pesquisa no novo servidor, caso você queira continuar a hospedar juntos o Search e o 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 Azure DevOps para anexá-la a outra instância, siga os passos abaixo:
- Desvincule a coleção da instância de origem do servidor Azure DevOps
- Configurar a Pesquisa na instância de destino do Servidor do Azure DevOps (se ainda não tiver concluído)
- Anexar a coleção ao servidor Azure DevOps de destino
- 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
- 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 houver mais de 250 usuários, execute as seguintes etapas:
- Ao instalar o Azure DevOps Serve no servidor primário, defina a caixa de seleção Instalar e configurar o Search. na página Pesquisa do Assistente de Configuração do Servidor.
- Selecione a opção para Usar um serviço Pesquisa existente.
- Use o link do Pacote de serviço Pesquisa fornecido pelo assistente para acessar um conjunto de arquivos do instalador do serviço Pesquisa no computador local. Em seguida, copie esses arquivos para o servidor remoto.
- 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.
- 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.
- Quando ambas as instalações forem concluídas, defina as configurações de segurança apropriadas para ambos os servidores.
Pesquisa segura
O serviço Search usa uma versão modificada do Elasticsearch. Os termos "Pesquisar" e "Elasticsearch" são usados de forma intercambiável para o restante desta seção. Os administradores devem fornecer credenciais se o serviço de Pesquisa está no mesmo computador que o Servidor de DevOps do Azure ou em um computador separado. Essa ação faz parte da configuração do recurso 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 pré-existente ou credenciais de servidor. 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.
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. Os administradores podem fornecer credenciais diferentes se desejarem. Se o serviço de Pesquisa estiver no mesmo computador que o Servidor do Azure DevOps, os administradores poderão fornecer um novo conjunto de credenciais no Assistente de Configuração para configurar o serviço de Pesquisa, se desejar. No entanto, se o serviço De pesquisa estiver em um computador remoto, os administradores deverão primeiro fornecer as novas credenciais para o script de configuração do serviço De pesquisa.
Nota
- Os valores das credenciais devem ter entre 8 e 64 caracteres.
- 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 de segurança e conformidade corporativos.
- O objetivo é limitar o acesso à pesquisa e à indexação a usuários ou grupos de usuários específicos usando criptografia por meio do IPSec, descrito da seguinte maneira.
Considere as seguintes técnicas para usar o IPSec para proteger o Elasticsearch em um servidor Windows:
Configurar a segurança somente com autenticação:
- Garante que somente usuários autorizados possam acessar a porta Elasticsearch. Ele requer apenas regras do lado do serviço (regras de firewall somente no servidor que executa o Elasticsearch)
- Pré-requisito: o Servidor do Azure DevOps deve ser configurado com uma conta de domínio
- Siga as etapas em Criando regras de firewall que permitem o tráfego de rede protegido por IPsec
Configurar 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 do Servidor do Azure DevOps)
- Pré-requisito: o Servidor do Azure DevOps deve ser configurado com uma conta de domínio
- Siga as etapas em Isolar um servidor exigindo criptografia e associação de grupo
Aprimoramento de busca
Atualização 2 do TFS 2018: Inclui componentes de Pesquisa atualizados e Pesquisa Wiki.
- Se o serviço de 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 foi configurada em um servidor remoto, consulte Instalar ou atualizar a pesquisa em um servidor separado para atualizá-lo.
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.
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 Pesquisa, por meio do Servidor ou do assistente de configuração de Pesquisa.
Atualização 2 do TFS 2018 (ou superior) para a versão Atualização 1 do Azure DevOps Server 2019: quando o Search estiver configurado em um servidor separado, será necessário reinstalar o Search. Ao seguir as instruções para uma atualização, na etapa 4 em vez de atualizar
Configure-TFSSearch.ps1 – Operation update
, execute o comando a seguir para reinstalar o Search.
Configure-TFSSearch.ps1 -Operation remove
Configure-TFSSearch.ps1 -Operation install -TFSSearchInstallPath <install location> -TFSSearchIndexPath $env:SEARCH_ES_INDEX_PATH
Desinstalar Pesquisa
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 não configura 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 o Servidor de DevOps do Azure ou em um servidor separado.
Desconfigure Search no computador configurado como servidor do Azure DevOps
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:
Remova o recurso De pesquisa:
- Abra o Console de Administração do Servidor do Azure DevOps.
- Selecione o nome do servidor.
- Escolha Remover Recurso.
- Selecione serviço Pesquisa e, em seguida, escolha Remover.
Remova o serviço Elasticsearch:
- Abrir o Prompt de Comando como administrador.
- Altere o diretório,
cd "C:\Program Files\Microsoft Team Foundation Server 15.0\Search\ES\elasticsearch-5.4.1\bin"
. - Remova o serviço
"elasticsearch-service.bat remove"
.
Remover dados de pesquisa:
- Exclua o conteúdo do local descrito pela variável de ambiente,
SEARCH_ES_INDEX_PATH
.
- Exclua o conteúdo do local descrito pela variável de ambiente,
Exclua a variável de ambiente,
"SEARCH_ES_INDEX_PATH"
.
Desconfigure Search em um servidor separado
Execute as etapas a seguir para desconfigurar o Search, como para Code, Work item ou Wiki, para cada coleção.
Acesse a página Gerenciar Extensões para cada coleção em sua instância do Azure DevOps Server.
Remova o recurso De pesquisa:
- Abra o diálogo Remover recurso, Console de administração.
- No painel esquerdo, selecione o nome do Servidor do Azure DevOps.
- No painel direito, escolha Remover Recurso.
- Na caixa de diálogo Remover recurso selecione Serviço Pesquisa e, em seguida, selecione Remover.
Remova o serviço e os dados do Elasticsearch.
- Abra o PowerShell como administrador.
- Abra a pasta Configurar Search.ps1, juntamente com o restante dos arquivos necessários para uma instalação remota da Pesquisa.
- Execute o script novamente com a opção remover:
"ConfigureTFSSearch.ps1 -remove".
Limitações da pesquisa
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 mover o servidor de volta para um instantâneo anterior do banco de dados SQL.
- O Search não é extensível, mas você pode enviar uma solicitação de nova funcionalidade na Comunidade de Desenvolvedores.