Share via


Installera och konfigurera sökning

Azure DevOps Server 2022 – Azure DevOps Server 2019

I den här artikeln lär du dig hur du installerar, konfigurerar och avinstallerar en säker sökmotor för Azure DevOps Server som körs på din egen maskinvara. Mer information finns i följande artiklar:

Förutsättningar

Maskinvarurekommendationer

Sökningen fungerar på alla fysiska servrar eller virtuella datorer som kör Azure DevOps Server. Du kan konfigurera den på samma server eller en annan för Sök. Om du använder samma server bör du överväga cpu-användningen.

Dricks

Vi rekommenderar att du konfigurerar Sök på en separat server för produktionsmiljöer.

Tänk på följande rekommendationer för godtagbara prestanda i scenarier med flera användare:

  • Färre än 250 användare med Sök på servern (används vanligtvis för demonstration och utvärdering):
    • Fyrkärnig processor, 16 GB (minimum) RAM-minne
    • Processoranvändningsfaktor mindre än 50 %
    • Snabb hårddisk som backas upp av SSD-lagring (Solid State Drive)
  • Färre än 500 användare med Sök finns på en separat server:
    • Processor med dubbla kärnor, 8 GB (minimum) RAM-minne
    • Snabb hårddisk som backas upp av SSD-lagring (Solid State Drive)
  • Färre än 1 000 användare med Search på en separat server:
    • Fyrkärnig processor, 16 GB (minimum) RAM-minne
    • Snabb hårddisk som backas upp av SSD-lagring (Solid State Drive)
  • Mer än 1 000 användare med Sök finns på en separat server:
    • Fyrkärnig processor, 16 GB (minimum) RAM-minne
    • Snabb hårddisk som backas upp av SSD-lagring (Solid State Drive) eller SAN-lagring (Storage Area Network)
  • Azure DevOps Server med flera programnivåer (AT:
  • Processoranvändning för Azure DevOps Server som är större än 50 % före sökinstallationen:

Krav på diskutrymme:

Mängden diskutrymme som används av Search beror främst på typen och storleken på de filer som indexeras. Eftersom lagringsplatserna många gånger kan vara stora och har olika kodfiler i versionskontroll kan diskutrymmeskravet vara betydande för kodsökningen. Allokera upp till 150 % av storleken på alla lagringsplatser som ska indexeras. Från TFS 2018 Uppdatering 3 och senare kan användare exkludera mappar från sina lagringsplatser för index för att optimera diskutrymmet som förbrukas genom sökning.

Beroenden för programvara

Sökningen har följande beroenden som installeras automatiskt som en del av konfigurationen:

  • Elasticsearch från Elasticsearch.
    • Search använder en modifierad version av Elasticsearch. Det fungerar bara med den här ändrade versionen.
    • En nyare version av Elasticsearch levereras med TFS 2018 Update 2 och senare och Azure DevOps Server. Allt innehåll indexeras om efter installationen när du uppgraderar från en äldre version av sökresultaten. Beroende på mängden innehåll (kodfiler, arbetsobjekt och wiki-sidor) kan det ta lite tid att indexera om.
  • Elasticsearch NEST-klient.
  • Microsoft Build of OpenJDK Version 11.
    • Microsoft Build of OpenJDK installerar inte uppdateringar automatiskt.
  • Markdowndeep av Topten Software.
  • Roslyn-kompilatorplattform .
  • ANTLR-språkigenkänningsparser .

Kommentar

  • System- eller serveradministratören måste se till att Server JRE underhålls och uppdateras i enlighet med programvaruleverantörens rekommendationer. Se även javainstallationsanteckningarna som följer.
  • Sök regelbundet efter uppdateringar.

Java-installationsanteckningar

  • Om guiden Sökkonfiguration inte identifierar en fungerande installation av en Java Runtime Environment (JRE) finns det ett alternativ för att ladda ned och installera den senaste versionen som stöds. Internetanslutning krävs för nedladdning. Om målservern inte har någon Internetanslutning måste du ladda ned och installera en JRE manuellt innan du försöker installera Search.

  • Versioner av Search innan Azure DevOps Server använde Oracle Server Java Runtime Environment. I Azure DevOps Server är standard-JRE Azul Zulu OpenJDK.

  • Under installationen anger guiden JAVA_HOME miljövariabeln så att den pekar på JRE-installationsmappen. Konfigurationsguiden kanske inte identifierar en befintlig JRE-installation om den inte har konfigurerats korrekt, eller om inställningen JAVA_HOME pekar på en tidigare version än vad som krävs av Search.

    Kommentar

    Vi rekommenderar inte att du installerar Elasticsearch på en dator där resurser delas, särskilt inte i en stor företagsmiljö med flera programnivåer. Vi rekommenderar att du konfigurerar Elasticsearch på en separat dedikerad dator. På så sätt delas inte JAVA-miljön mellan datorer i andra syften.

  • Om det finns en tidigare version av en JRE än det minsta som krävs av Search och variabeln JAVA_HOME har angetts till den versionen rekommenderar vi att du installerar Search på en separat server.

  • Om det finns en version av Server JRE som är lika med eller senare än det minimum som krävs av Search och inte identifieras av konfigurationsguiden kontrollerar du att JAVA_HOME variabeln INTE har angetts. Kör sedan konfigurationsguiden igen (& "C:\Program Files\Azure DevOps Server XXX\Search\ES\vX.XX\bin\elasticsearch-service.bat" manager) och välj versionen genom att ange sökvägen för den virtuella Java-datorn.

  • Om du inte kan installera den version av Java som krävs av Search på grund av andra beroenden kan du utföra följande uppgifter:

    • Installera Azure DevOps Server med söktillägget på en server som inte har Java installerat. Vi rekommenderar inte den här åtgärden för fler än 250 användare eller processoranvändning som är större än 50 % eller flera AT:er.
    • Installera Search och JRE på en separat server från Azure DevOps Server.

    Kommentar

    Om du använder Oracle Server JRE 8, som var standard för Search in TFS (Azure DevOps Server använder inte Oracle Server JRE 8), bör du vara medveten om följande information:

    • Sökningen använder eller stöder inte någon av de kommersiella funktionerna i Server JRE 8. Under sökkonfigurationen aktiveras eller låss därför inte de kommersiella funktionerna i Server JRE upp.
    • Om du väljer att fortsätta med Oracle JRE kontaktar du Oracle för en Java SE-prenumeration så att du kan fortsätta att ta emot JRE-uppdateringar.

Migrera till Microsoft Build of OpenJDK från Oracle Server JRE

Sökning i Azure DevOps Server stöder både Microsoft Build of OpenJDK och Oracle JRE, som gör att du kan välja mellan dem baserat på dina behov.

Om du vill ändra till Microsoft Build of OpenJDK kontrollerar du att JAVA_HOME variabel inte har angetts. Kör sedan konfigurationsguiden igen (& "C:\Program Files\Azure DevOps Server XXX\Search\ES\vX.XX\bin\elasticsearch-service.bat" manager) och välj versionen genom att ange sökvägen för den virtuella Java-datorn.

Funktion tillgänglig

  • Work Item Search är tillgängligt i Team Foundation Server (TFS) 2018 och senare versioner.
  • Wiki Search finns i TFS 2018 Update 2 och senare versioner.
  • Arbetsobjekt och Wiki-sökning är inbyggda tillägg som installeras som standard under sökkonfigurationen.
  • Kodsökning är tillgängligt i TFS 2018 och senare versioner och är en opt-in-funktion. Du kan installera Kodsökning senare från det lokala galleriet. Gå till Lokalt galleri (http://{server}/_gallery) som administratör. Icke-administrativa användare kan också begära tillägget för Azure DevOps Server. Mer information finns i Installera ett tillägg.

Konfigurera tjänsten Search med hjälp av de dedikerade sidorna i guiden Serverkonfiguration när du installerar Azure DevOps Server. Du kan också konfigurera sökningen efteråt genom att köra guiden Serverkonfiguration igen eller genom att starta guiden Sökkonfiguration.

Att tänka på vid konfigurationen

Tänk på följande information när du konfigurerar Sök:

  • Både Work Item- och Wiki-sökning aktiveras som standard när Sökning har konfigurerats. Dessa tillägg kan tas bort senare om det behövs från sidan Hantera tillägg i Azure DevOps Server.
  • Kodsökningstillägget måste installeras för varje Azure DevOps Server-samling där du vill använda det. När du först konfigurerar Sök kan du ställa in en kryssruta på Installera kodsökningstillägget automatiskt för befintliga och nya projektsamlingar för att automatisera den här processen.
  • Om du inte ställer in kryssrutan för att installera kodsökningstillägget för alla dina projektsamlingar kan din PCA installera det från det lokala galleriet. Se till att du går till det lokala galleriet (http://{Server}/_gallery) från din Azure DevOps Server-portalsida. Mer information finns i Installera ett tillägg.
  • Det tar vanligtvis mindre än en timme innan Search indexeras för en samling. Men det kan ta upp till 12 timmar baserat på storleken och antalet kodfiler, arbetsobjekt eller wiki-sidor. Om du inte får några resultat efter den här perioden kontrollerar du indexeringsstatusen.

Använda en andra hårddisk och fjärrserver

  • För maximal prestanda bör sökindexmappen finnas på en separat snabb hårddisk och backas upp av snabb lagring, till exempel en SSD-enhet (Solid State Drive) eller San (Storage Area Network). Allokera upp till 150 % av storleken på alla lagringsplatser som ska indexeras, vilket är det värsta scenariot. Det faktiska förbrukade utrymmet beror på mängden och typen av kodfiler samt antalet arbetsobjekt och wiki-sidor i samlingen.
    • Om inget anges använder indexeringstjänsten och Elasticsearch-motorn nätverkstjänstkontot under installationen för att skapa och komma åt indexfilerna. Om du väljer ett annat konto måste det ha logga in som en tjänstbehörighet .
    • Begränsa behörigheterna för indexdisken och mappen för att skydda indexet från oavsiktlig eller skadlig ändring eller borttagning. Konfigurera lämpliga säkerhetsinställningar för tjänsten.
  • När du konfigurerar Sök efter en server med flera AT:er installerar du på en separat server. När du har installerat Sök på fjärrservern använder du konfigurationsguiden på någon av AT-servrarna för att länka fjärrsökningsinstansen till din Azure DevOps Server-instans. När du inte konfigurerar Sökning måste du använda konfigurationsguiden på samma AT-server där konfigurationen ursprungligen utfördes.

Uppgradera servern

  • Om du utför en förproduktionsuppgradering på en server där Sök redan har konfigurerats måste du helt konfigurera om Sök igen för att undvika att skada produktionsinstansen. Det finns inget alternativ för att konfigurera Sökning som en del av en förproduktionsuppgradering. Konfigurera den i stället när förproduktionsuppgradningen har slutförts. Du kan avmarkera Installera och konfigurera Kodsökning automatiskt för alla befintliga och nya samlingar under konfigurationen. Installera i stället söktillägget för bara en eller två av dina samlingar när konfigurationen har slutförts
  • Om du utför en produktionsuppgradering på en server där Search har konfigurerats och du vill behålla den markerar du kryssrutan bredvid Installera och konfigurera sökning. Guiden identifierar din befintliga sökinstans och väljer automatiskt Använd befintlig sökinstans och fyller i din aktuella tjänsten Search URL i förväg. Använd alternativet Installera en ny sökinstans endast om du vill konfigurera en ny sökinstans på samma server. Om du konfigurerar en ny instans indexeras all kod, arbetsobjekt och wiki igen, vilket kan ta lite tid, beroende på samlingarnas storlek. Under indexeringen kan användare se partiella sökresultat
  • Om du uppgraderar servern till ny maskinvara har du följande två alternativ. Välj bland de här alternativen, beroende på hur Sök tidigare har konfigurerats:
    • Om Sök finns på en separat server från Azure DevOps Server måste du välja Installera och konfigurera sökning i guiden Serverkonfiguration och sedan välja Använd en befintlig sökinstans och ange URL:en för din befintliga sökinstans för att slutföra sökkonfigurationen
    • Om Search har konfigurerats tillsammans med din Azure DevOps Server-instans på den gamla servern måste du välja Installera och konfigurera sökning i guiden Serverkonfiguration. Välj sedan Installera en ny sökinstans igen på den nya servern om du vill fortsätta att vara värd för Search och Azure DevOps Server. Alla sökindex för alla samlingar återskapas, vilket, beroende på storleken på varje samling, kan ta lite tid
  • Om du kopplar från en samling från en Azure DevOps Server-instans för att koppla den till en annan instans gör du följande:
    1. Koppla från samlingen från Azure DevOps Server-källinstansen
    2. Konfigurera sökning på Azure DevOps Server-målinstansen (om den inte redan är klar)
    3. Koppla samlingen till Azure DevOps-målservern
    4. Avinstallera dina söktillägg, till exempel Kod, Arbetsobjekt eller Wiki för samlingen från det lokala galleriet i Azure DevOps Server
    5. Installera söktillägget för samlingen från det lokala galleriet genom att bläddra till det från din Azure DevOps Server-målinstans

Installera eller uppdatera Sök på en separat server

Utför följande steg för att installera eller uppdatera Sök på en separat server eller fjärrserver, vanligtvis när det finns fler än 250 användare:

  1. När du installerar Azure DevOps Server på den primära servern anger du kryssrutan Installera och konfigurera Sök . på sidan Sök i guiden Serverkonfiguration.
  2. Välj alternativet Använd en befintlig tjänsten Search.
  3. Använd tjänsten Search-paketlänken som finns i guiden för att komma åt en uppsättning sökinstallationsfiler på den lokala datorn. Kopiera sedan filerna till fjärrservern.
  4. Följ anvisningarna i Readme.txt-filen, som finns i uppsättningen installationsfiler, för att installera eller uppdatera tjänsten Search på fjärrservern.
  5. När installationen är klar kopierar du den resulterande url:en för sökservern till fältet Sök-URL i konfigurationsguiden som körs på Azure DevOps Server-instansen.
  6. När båda installationerna är klara konfigurerar du lämpliga säkerhetsinställningar för båda servrarna.

Tjänsten Search använder en modifierad version av Elasticsearch. Termerna "Search" och "Elasticsearch" används omväxlande för resten av det här avsnittet. Administratörer måste ange autentiseringsuppgifter om tjänsten Search finns på samma dator som Azure DevOps Server eller på en separat dator. Den här åtgärden är en del av konfigurationen av sökfunktionen via servern eller guiden Sökkonfiguration. Dessa autentiseringsuppgifter är nya och är inte relaterade till några befintliga konto- eller serverautentiseringsuppgifter. De används för att konfigurera och ansluta till tjänsten Search. Dessa nya uppsättningar med autentiseringsuppgifter möjliggör grundläggande autentisering i söktjänsten.

Skärmbild som visar autentiseringsuppgifter för sökning.

För en uppgradering från TFS 2018 Update 1.1 till TFS 2018 Update 3 eller för omkonfiguration av sökning fylls endast användarinformationen automatiskt i och administratörer måste ange lösenordsautentiseringsuppgifter. Administratörer kan ange ett annat användarnamn och lösenord om de vill. Om tjänsten Search finns på samma dator som Azure DevOps Server kan administratörer ange en ny uppsättning autentiseringsuppgifter i konfigurationsguiden för att konfigurera tjänsten Search, om så önskas. Men om tjänsten Search finns på en fjärrdator måste administratörer först ange de nya autentiseringsuppgifterna för tjänsten Search installationsskriptet.

Kommentar

  • Värdena för användarnamn och lösenord ska vara mellan 8 och 64 tecken långa. Även om lösenordet kan tilldelas valfritt värde kan användarnamnet endast innehålla alfanumeriska tecken och understreckstecken.
  • Sökautentiseringsuppgifter autentiserar bara användarna och se till att oautentiserade användare inte kan komma åt Elasticsearch-slutpunkten. Elasticsearch stöder dock inte HTTPS och därför skickas dessa autentiseringsuppgifter via nätverket som Base64-kodade strängar. Om det finns en möjlighet till mellanliggande åtkomst till begäran konfigurerar du lämpliga säkerhetsinställningar baserat på företagets säkerhets- och efterlevnadskrav.
  • Syftet är att begränsa åtkomsten till både sökning och indexering till specifika användare eller användargrupper med hjälp av kryptering via IPSec, vilket beskrivs på följande sätt.

Överväg följande tekniker för att använda IPSec för att skydda Elasticsearch på en Windows-server:

  • Konfigurera endast säkerhet med autentisering:

    • Säkerställer att endast behöriga användare kan komma åt Elasticsearch-porten. Det kräver endast regler på tjänstsidan (brandväggsregler på endast servern som kör Elasticsearch)
    • Krav: Azure DevOps Server måste konfigureras med ett domänkonto
    • Följ stegen i Skapa brandväggsregler som tillåter IPsec-skyddad nätverkstrafik
  • Konfigurera säkerhet med autentisering, integritetsskydd och kryptering:

    • Säkerställer att krypterings- och integritetsskydd tillämpas tillsammans med autentisering. Det kräver både regler på klientsidan och på tjänstsidan (brandväggsregler på servern som kör Elasticsearch och alla Azure DevOps Server App Tier-servrar)
    • Krav: Azure DevOps Server måste konfigureras med ett domänkonto
    • Följ stegen i Isolera en server genom att kräva kryptering och gruppmedlemskap
  • TFS 2018 Uppdatering 2: Innehåller uppdaterade sökkomponenter och Wiki Search.

    • Om tjänsten Search konfigurerades under RTM-uppgraderingen 2018 och konfigurerades i TFS-systemet som du uppgraderar uppdateras komponenterna automatiskt.
    • Om Sökning har konfigurerats på en fjärrserver kan du läsa Installera eller uppdatera sökningen på en separat server för att uppdatera den.

    I båda fallen indexeras allt befintligt innehåll (kodfiler och arbetsobjekt) automatiskt om för att stödja de uppdaterade komponenterna efter konfigurationen. Den här uppgraderingen kan ta lite tid att slutföra beroende på innehållets volym.

  • TFS 2018 Uppdatering 1.1 och TFS 2018 Uppdatering 3: Innehåller grundläggande autentisering för kommunikationen mellan TFS och tjänsten Search för att göra den säkrare. Alla installationer eller uppgraderingar till TFS 2018 Update 1.1 eller TFS 2018 Update 3 måste ange autentiseringsuppgifter som en del av konfigurationen av sökfunktionen, via server- eller sökkonfigurationsguiden.

  • TFS 2018 Uppdatering 2 (eller senare) till version Azure DevOps Server 2019 Uppdatering 1: När sökningen har konfigurerats på en separat server kräver en ominstallation av sökningen. När du följer anvisningarna för en uppgradering kör du följande kommando i steg 4 i stället för att uppdatera Configure-TFSSearch.ps1 – Operation updateför att installera om sökningen.

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

För en förproduktionsuppgradering, produktionsuppgradering, ny maskinvarumigrering, kloning eller annan underhållsåtgärd konfigurerar guiden Serverkonfiguration sök. Men det är enkelt att konfigurera om när serverunderhållsåtgärden är klar.

Det kan finnas fall där du inte längre vill använda Sök eller om du vill göra en ny och ren installation. Den här åtgärden kräver flera steg, beroende på om Search har konfigurerats på samma server som Azure DevOps Server eller på en separat server.

Okonfigurerad sökning på den dator som konfigurerats som Din Azure DevOps Server

  1. Avinstallera söktillägget för varje samling. Gå till sidan Hantera tillägg för varje samling i din Azure DevOps Server-instans:

    Skärmbild av att kontrollera att tillägget är installerat.

  2. Ta bort sökfunktionen:

    1. Öppna Administrationskonsolen för Azure DevOps Server.
    2. Välj namnet på servern.
    3. Välj Ta bort funktion.
    4. Välj tjänsten Search och välj sedan Ta bort.
  3. Ta bort Elasticsearch-tjänsten:

    1. Öppna Kommandotolken som administratör.
    2. Ändra katalogen , cd "C:\Program Files\Microsoft Team Foundation Server 15.0\Search\ES\elasticsearch-5.4.1\bin".
    3. Ta bort tjänsten, "elasticsearch-service.bat remove".
  4. Ta bort sökdata:

    • Ta bort innehållet på den plats som beskrivs av miljövariabeln , SEARCH_ES_INDEX_PATH.
  5. Ta bort miljövariabeln . "SEARCH_ES_INDEX_PATH"

Okonfigurerad sökning på en separat server

Utför följande steg för att konfigurera sökning, till exempel för Kod, Arbetsobjekt eller Wiki, för varje samling.

  1. Gå till sidan Hantera tillägg för varje samling i din Azure DevOps Server-instans.

    Skärmbild Som kontrollerar att tillägget är installerat.

  2. Ta bort sökfunktionen:

    1. Öppna dialogrutan Ta bort funktion, Administrationskonsol.
    2. I den vänstra rutan väljer du namnet på Azure DevOps Server.
    3. I den högra rutan väljer du Ta bort funktion.
    4. I dialogrutan Ta bort funktion väljer du tjänsten Search och sedan Ta bort.
  3. Ta bort Elasticsearch-tjänsten och data.

    1. Öppna PowerShell som administratör.
    2. Öppna mappen Configure Search.ps1 tillsammans med resten av de filer som krävs för en fjärrinstallation av Search.
    3. Kör skriptet igen med alternativet ta bort: "ConfigureTFSSearch.ps1 -remove".

Sök efter Azure DevOps Server har följande begränsning:

  • Indexera om alla dina samlingar om du utför en haveriberedskapsåtgärd (DR) och flytta tillbaka servern till en tidigare ögonblicksbild av SQL-databasen.
  • Sökning är inte utökningsbar, men du kan skicka en ny funktionsbegäran i utvecklarcommunityn.