Installare e configurare la ricerca
Azure DevOps Server 2022 - Azure DevOps Server 2019
Questo articolo illustra come installare configuraree disinstallare un motore di ricerca sicuro per Azure DevOps Server che funziona sul proprio hardware. Per altre informazioni, vedere gli articoli seguenti:
- Gestire la ricerca e l'indicizzazione
- Dipendenze software, più avanti in questo articolo
Prerequisiti
- Per installare l'estensione di ricerca, è necessario essere un amministratore della raccolta progetti (PCA) per l'organizzazione. Gli utenti non amministrativi possono anche richiedere l'aggiunta dell'estensione al PCA.
- Per ulteriori informazioni, vedere Installare e configurare Azure DevOps Server e Requisiti e compatibilità.
Raccomandazioni per l'hardware
La ricerca funziona in qualsiasi server fisico o macchina virtuale che esegue Azure DevOps Server. È possibile configurarlo nello stesso server o in uno diverso per La ricerca. Se si usa lo stesso server, prendere in considerazione l'utilizzo della CPU.
Consiglio
È consigliabile configurare La ricerca in un server separato per gli ambienti di produzione.
Per prestazioni accettabili in scenari multiutente, considerare le raccomandazioni seguenti:
- Meno di 250 utenti con ricerca nel server (in genere usato per scopi dimostrativi e di valutazione):
- Processore quad core, 16 GB (minimo) RAM
- Fattore di utilizzo CPU inferiore a 50%
- Disco rigido veloce supportato dall'archiviazione SSD (Solid State Drive)
- Meno di 500 utenti con la ricerca situata su un server separato :
- Processore dual core, RAM minima di 8 GB
- Disco rigido veloce supportato dall'archiviazione SSD (Solid State Drive)
- Meno di 1.000 utenti con la ricerca situata su un server separato :
- Processore quad core, 16 GB (minimo) RAM
- Disco rigido veloce supportato dall'archiviazione SSD (Solid State Drive)
- Più di 1.000 utenti con il servizio di ricerca situato su un server separato :
- Processore quad core, 16 GB (minimo) RAM
- Disco rigido veloce supportato dall'archiviazione SSD (Solid State Drive) o SAN (Storage Area Network)
- Azure DevOps Server con più livelli di applicazione :Azure DevOps Server with Multiple application tiers (ATS):
- Utilizzo della CPU di Azure DevOps Server superiore al 50%% prima dell'installazione di Search:
requisito di spazio su disco:
La quantità di spazio su disco usata da Ricerca dipende principalmente dal tipo e dalle dimensioni dei file indicizzati. Per la ricerca di codice, poiché molte volte i repository possono essere di grandi dimensioni e hanno file di codice diversi nel controllo della versione, il requisito di spazio su disco potrebbe essere significativo. Allocare fino a 150% della dimensione complessiva di tutti i repository da indicizzare. Da TFS 2018 Update 3 e versioni successive, gli utenti possono escludere le cartelle dai repository dall'indicizzazione per ottimizzare lo spazio su disco consumato dalla funzione di ricerca.
Dipendenze software
La ricerca presenta le dipendenze seguenti, che vengono installate automaticamente come parte della configurazione:
-
Elasticsearch da Elastic.
- La ricerca usa una versione modificata di Elasticsearch. Funziona solo con questa versione modificata.
- Una versione più recente di Elasticsearch viene fornita con TFS 2018 Update 2 e versioni successive e Azure DevOps Server. Tutto il contenuto viene reindicizzare dopo l'installazione quando si esegue l'aggiornamento da una versione precedente dei risultati della ricerca. A seconda del volume di contenuto (file di codice, elementi di lavoro e pagine wiki), il reindicizzazione può richiedere del tempo.
- client NEST di Elasticsearch.
-
Microsoft Build di OpenJDK Versione 11.
- Microsoft Build of OpenJDK non installa automaticamente gli aggiornamenti.
- Markdowndeep di Topten Software.
- piattaforma del compilatore Roslyn.
- parser di riconoscimento della lingua ANTLR.
Nota
- L'amministratore del sistema o del server deve assicurarsi che Il server JRE venga mantenuto e aggiornato in linea con le raccomandazioni del provider di software. Vedere anche le note sull'installazione Java che seguono.
- Controllare regolarmente gli aggiornamenti.
Note sull'installazione di Java
Se la configurazione guidata di ricerca non rileva un'installazione funzionante di un Java Runtime Environment (JRE), crea un'opzione per scaricare e installare la versione supportata più recente. Per il download è necessaria la connettività Internet. Se il server di destinazione non dispone di connettività Internet, è necessario scaricare e installare manualmente un JRE prima di tentare di installare La ricerca.
Versioni di Ricerca precedenti a Azure DevOps Server utilizzavano l'Oracle Server Java Runtime Environment. Azure DevOps Server usa Elasticsearch versione 7.17.0, con una versione in bundle di OpenJDK.
Durante l'installazione, la procedura guidata imposta la variabile di ambiente JAVA_HOME in modo che punti alla cartella di installazione di JRE. La configurazione guidata potrebbe non rilevare un'installazione JRE esistente se non è stata configurata correttamente o se l'impostazione JAVA_HOME punta a una versione precedente rispetto a quella richiesta da Cerca.
Nota
Non è consigliabile installare Elasticsearch in un computer in cui vengono condivise le risorse, in particolare in un ambiente aziendale di grandi dimensioni con più livelli di applicazione. È consigliabile configurare Elasticsearch in un computer dedicato separato. In questo modo, l'ambiente JAVA non viene condiviso tra computer per altri scopi.
Se è presente una versione di JRE precedente rispetto al valore minimo richiesto da Search e la variabile JAVA_HOME è stata impostata su tale versione, è consigliabile installare Search in un server separato .
Se è presente una versione di Server JRE uguale o successiva rispetto al valore minimo richiesto da Search e non riconosciuta dalla configurazione guidata, assicurarsi che la variabile JAVA_HOME non sia impostata. Eseguire quindi di nuovo la configurazione guidata (
& "C:\Program Files\Azure DevOps Server XXX\Search\ES\vX.XX\bin\elasticsearch-service.bat" manager
) e selezionare la versione impostando il percorso per la macchina virtuale Java .Se non è possibile installare la versione di Java richiesta da Ricerca a causa di altre dipendenze, è possibile eseguire le attività seguenti:
- Installare Azure DevOps Server con l'estensione Di ricerca in un server in cui Java non è installato. Non consigliamo questa azione per più di 250 utenti o nel caso di un utilizzo della CPU superiore a 50% o la presenza di più ATs.
- Installare Search e JRE in un server separato da Azure DevOps Server.
Nota
Se si usa Oracle Server JRE 8, ovvero l'impostazione predefinita per La ricerca in TFS (Azure DevOps Server non usa Oracle Server JRE 8), tenere presente le informazioni seguenti:
- La ricerca non usa o supporta alcuna delle funzionalità commerciali di Server JRE 8. Pertanto, durante la configurazione della ricerca, le funzionalità commerciali di Server JRE non sono attivate né sbloccate.
- Se si sceglie di continuare con Oracle JRE, contattare Oracle per una sottoscrizione Java SE, per continuare a ricevere gli aggiornamenti JRE.
Eseguire la migrazione a Microsoft Build di OpenJDK da Oracle Server JRE
La ricerca in Azure DevOps Server supporta entrambe le funzionalità, Microsoft Build of OpenJDK e Oracle JRE, che consentono di scegliere tra di esse in base alle esigenze.
Per passare al Microsoft Build di OpenJDK, assicurarsi che la variabile JAVA_HOME NON sia impostata. Eseguire quindi di nuovo la configurazione guidata (& "C:\Program Files\Azure DevOps Server XXX\Search\ES\vX.XX\bin\elasticsearch-service.bat" manager
) e selezionare la versione impostando il percorso per la macchina virtuale Java .
Disponibilità delle funzionalità
- La ricerca degli elementi di lavoro è disponibile in Team Foundation Server (TFS) 2018 e versioni successive.
- La ricerca wiki è disponibile in TFS 2018 Update 2 e versioni successive.
- Le estensioni "Work Item" e "ricerca wiki" sono predefinite e installate automaticamente durante la configurazione della ricerca.
- La Ricerca Codice è disponibile in TFS 2018 e versioni successive ed è una funzionalità opt-in. È possibile installare Ricerca Codice in un secondo momento dalla raccolta locale. Vai a Galleria Locale (
http://{server}/_gallery
) come amministratore. Gli utenti non amministratori possono anche richiedere l'estensione per Azure DevOps Server. Per altre informazioni, vedere Installare un'estensione.
Configurare la ricerca
Configura il servizio di ricerca utilizzando le pagine dedicate nel Procedura guidata di configurazione del server mentre installate Azure DevOps Server. È anche possibile annullare la configurazione della ricerca successivamente eseguendo di nuovo la Configurazione guidata server o avviando la Configurazione guidata ricerca.
Considerazioni sulla configurazione
Quando si configura La ricerca, prendere in considerazione le informazioni seguenti:
- Sia la ricerca dell'elemento di lavoro che la ricerca Wiki vengono abilitate per impostazione predefinita quando la ricerca è configurata. Queste estensioni possono essere rimosse in un secondo momento dalla pagina Gestisci estensioni di Azure DevOps Server.
- L'estensione Ricerca codice deve essere installata per ogni raccolta di Azure DevOps Server in cui si vuole usarla. Quando si configura inizialmente Ricerca, è possibile impostare una casella di controllo su Installare automaticamente l'estensione Ricerca codice per le raccolte di progetti esistenti e nuove per automatizzare questo processo.
- Se non si imposta la casella di controllo per installare l'estensione Ricerca Codice per tutte le raccolte di progetti, il/la PCA può installarla dalla raccolta locale. Assicurarsi di passare alla raccolta locale (
http://{Server}/_gallery
) dalla pagina del portale di Azure DevOps Server. Per altre informazioni, vedere Installare un'estensione. - L'indicizzazione di una raccolta richiede in genere meno di un'ora. Tuttavia, potrebbero essere necessarie fino a 12 ore in base alle dimensioni e al numero di file di codice, elementi di lavoro o pagine wiki. Se non ottieni risultati dopo questo periodo, controlla lo stato di indicizzazione.
Usare un secondo disco rigido e un server remoto
- Per ottenere prestazioni ottimali, la cartella dell'indice di ricerca deve trovarsi in un disco rigido veloce separato e supportato da un'archiviazione veloce, ad esempio un'unità SSD o una rete SAN (Storage Area Network).
Allocare fino a 150% delle dimensioni di tutti i repository da indicizzare, ovvero lo scenario peggiore. Lo spazio utilizzato effettivo dipende dalla quantità e dal tipo di file di codice e dal numero di elementi di lavoro e pagine wiki in tale raccolta.
- Se non specificato, il servizio di indicizzazione e il motore Elasticsearch usano l'account del servizio di rete durante l'installazione per creare e accedere ai file di indice. Se si sceglie un account diverso, deve avere l'Autorizzazione Accesso come servizio.
- Limitare le autorizzazioni per il disco di indice e la cartella per proteggere l'indice da modifiche o eliminazioni accidentali o dannose. Configurare le appropriate impostazioni di sicurezza per il servizio.
- Quando si configura la ricerca di un server con più AT, installare su un server separato . Dopo aver installato Search nel server remoto, usare la Configurazione Guidata in uno qualsiasi dei server AT per collegare l'istanza di Ricerca remota all'istanza di Azure DevOps Server. Quando si annulla la configurazione di Ricerca, è necessario usare la Configurazione guidata nello stesso server AT in cui è stata eseguita originariamente la configurazione.
Aggiornare il server
- Se si esegue un aggiornamento pre-produzione su un server in cui la ricerca era già stata configurata, è necessario riconfigurare ancora la ricerca per evitare di danneggiare l'istanza di produzione. Non esiste un'opzione per configurare La ricerca come parte di un aggiornamento di preproduzione. Invece, configuralo al termine dell'aggiornamento della preproduzione. È possibile deselezionare Installare e configurare automaticamente Ricerca codice per tutte le raccolte esistenti e nuove durante la configurazione. Al termine della configurazione, installare invece l'estensione Di Ricerca solo per una o due raccolte.
- Se stai eseguendo un aggiornamento di produzione su un server in cui la ricerca è configurata e desideri mantenerla, seleziona la casella accanto a Installa e configura ricerca. La procedura guidata rileva l'istanza di Ricerca esistente e seleziona automaticamente Usa istanza di Ricerca esistente e compila automaticamente l'URL corrente del servizio di ricerca. Usa l'opzione Installa una nuova istanza di ricerca solo se vuoi configurare una nuova istanza di ricerca sullo stesso server. La configurazione di una nuova istanza determina l'indicizzazione di tutto il codice, degli elementi di lavoro e del wiki, che, a seconda delle dimensioni delle raccolte, può richiedere del tempo. Durante l'indicizzazione, gli utenti potrebbero visualizzare risultati parziali della ricerca
- Se stai aggiornando il server a un hardware nuovo, hai a disposizione le due seguenti opzioni. Selezionare una delle opzioni seguenti, a seconda di come è stata configurata in precedenza la ricerca:
- Se Ricerca si trova su un server separato da Azure DevOps Server, è necessario selezionare Installa e configura Ricerca nella procedura guidata di configurazione del server, quindi selezionare Usa un'istanza di ricerca esistente e quindi specificare l'URL della tua istanza di ricerca esistente per completare la configurazione di Ricerca.
- Se Search è configurato insieme all'istanza di Azure DevOps Server nel server precedente, è necessario selezionare Installa e configura Ricerca nella Configurazione guidata server. Se si desidera continuare a co-ospitare Search e Azure DevOps Server, selezionare nuovamente Installare una nuova istanza di Search nel nuovo server. Tutti gli indici di ricerca per tutte le raccolte vengono ricreati che, a seconda delle dimensioni di ogni raccolta, potrebbero richiedere del tempo
- Se devi scollegare una raccolta da un'istanza di Azure DevOps Server per collegarla a un'altra istanza, eseguire i seguenti passaggi:
- Scollegare la raccolta dall'istanza di origine di Azure DevOps Server
- Configurare la ricerca nell'istanza di Azure DevOps Server di destinazione (se non l'hai già fatto)
- Collegare la raccolta al server Azure DevOps di destinazione
- Disinstalla le tue estensioni di ricerca, come Codice, Elemento di lavoro o Wiki per la raccolta dalla Galleria Locale all'interno del Server Azure DevOps
- Installare l'estensione di ricerca per la raccolta dalla galleria locale , navigando verso di essa dall'istanza di Azure DevOps Server di destinazione.
Installare o aggiornare la ricerca in un server separato
Per installare o aggiornare La ricerca in un server separato o remoto, in genere quando sono presenti più di 250 utenti, seguire questa procedura:
- Quando si installa Azure DevOps Server nel server primario, impostare la casella di controllo Installa e configura Ricerca. nella pagina Cerca della Configurazione guidata del server.
- Selezionare l'opzione per Usare un servizio di ricerca esistente.
- Usare il link del pacchetto del servizio di Ricerca fornito nella procedura guidata per accedere a un set di file di installazione di Ricerca nel computer locale. Copiare quindi questi file nel server remoto.
- Seguire le istruzioni nel file Readme.txt, che si trova nel set di file del programma di installazione, per installare o aggiornare il servizio di ricerca nel server remoto.
- Al termine dell'installazione, copiare l'URL del server di ricerca risultante nel campo URL di ricerca della procedura guidata di configurazione che viene eseguita nell'istanza di Azure DevOps Server.
- Al termine di entrambe le installazioni, configurare le impostazioni di sicurezza appropriate per entrambi i server.
Ricerca sicura
Il servizio di ricerca usa una versione modificata di Elasticsearch. I termini "Search" e "Elasticsearch" vengono usati in modo intercambiabile per il resto di questa sezione. Gli amministratori devono specificare le credenziali se il servizio di ricerca si trova nello stesso computer di Azure DevOps Server o in un computer separato. Questa azione fa parte della configurazione della funzionalità di ricerca tramite il server o la procedura guidata di configurazione della ricerca. Queste credenziali sono nuove e non sono correlate ad alcun account preesistente o credenziali del server. Vengono usati per configurare e connettersi al servizio di ricerca. Questi nuovi set di credenziali abilitano l'autenticazione di base nel servizio di ricerca.
Per un aggiornamento da TFS 2018 Update 1.1 a TFS 2018 Update 3 o per la riconfigurazione della ricerca, solo le informazioni dell'utente vengono compilate automaticamente e gli amministratori devono fornire le credenziali. Gli amministratori possono fornire credenziali diverse se lo desiderano. Se il servizio di ricerca si trova nello stesso computer di Azure DevOps Server, gli amministratori possono fornire un nuovo set di credenziali nella Configurazione guidata per configurare il servizio di ricerca, se necessario. Tuttavia, se il servizio di ricerca si trova in un computer remoto, gli amministratori devono prima fornire le nuove credenziali allo script di installazione del servizio di ricerca.
Nota
- I valori delle credenziali devono avere una lunghezza compresa tra 8 e 64 caratteri.
- Le credenziali di ricerca autenticano solo gli utenti e assicurarsi che gli utenti non autenticati non possano accedere all'endpoint Elasticsearch. Elasticsearch, tuttavia, non supporta HTTPS e quindi queste credenziali vengono inviate in rete come stringhe con codifica Base64. Se è possibile richiedere l'accesso intermedio, configurare le impostazioni di sicurezza appropriate in base ai requisiti di sicurezza e conformità aziendali.
- Mirare a limitare l'accesso sia alla ricerca che all'indicizzazione a utenti o gruppi di utenti specifici usando la crittografia tramite IPSec, come descritto di seguito.
Considerare le tecniche seguenti per l'uso di IPSec per proteggere Elasticsearch in un server Windows:
Configurare la sicurezza con solo l'autenticazione:
- Assicura che solo gli utenti autorizzati possano accedere alla porta Elasticsearch. Richiede solo regole lato servizio (regole del firewall solo nel server che esegue Elasticsearch)
- Prerequisito: Azure DevOps Server deve essere configurato con un account di dominio
- Seguire i passaggi descritti in Creazione di regole del firewall che consentono il traffico di rete protetto da IPsec
Configurare la sicurezza con autenticazione, protezione dell'integrità e crittografia:
- Garantisce l'applicazione della crittografia e della protezione dell'integrità insieme all'autenticazione. Richiede sia regole lato client che lato servizio (regole del firewall nel server che esegue Elasticsearch e tutti i server di livello app di Azure DevOps Server)
- Prerequisito: Azure DevOps Server deve essere configurato con un account di dominio
- Seguire i passaggi descritti in Isolare un server richiedendo la crittografia e l'appartenenza a gruppi
Aggiornare la ricerca
TFS 2018 Update 2: include i componenti di ricerca aggiornati e la ricerca wiki.
- Se il servizio di ricerca è stato configurato durante l'aggiornamento 2018 RTM e configurato nel sistema TFS che si sta aggiornando, i relativi componenti vengono aggiornati automaticamente.
- Se La ricerca è stata configurata in un server remoto, vedere Installare o aggiornare la ricerca in un server separato per aggiornarla.
In entrambi i casi, tutto il contenuto esistente (file di codice e elementi di lavoro) viene reindicizzare automaticamente per supportare i componenti aggiornati dopo la configurazione. A seconda del volume di contenuto, l'aggiornamento potrebbe richiedere del tempo.
TFS 2018 Update 1.1 e TFS 2018 Update 3: include l'autenticazione di base per la comunicazione tra TFS e il servizio di ricerca per renderla più sicura. Qualsiasi installazione o aggiornamento a TFS 2018 Update 1.1 o TFS 2018 Update 3 deve fornire le credenziali come parte della configurazione della funzione di ricerca, tramite il server o la procedura guidata di configurazione della ricerca.
TFS 2018 Update 2 (o versione successiva) alla versione Azure DevOps Server 2019 Update 1: quando la ricerca è configurata su un server separato, è necessaria una reinstallazione della ricerca. Quando si seguono le istruzioni per un aggiornamento, nel passaggio 4, anziché aggiornare
Configure-TFSSearch.ps1 – Operation update
, eseguire il comando seguente per reinstallare la ricerca.
Configure-TFSSearch.ps1 -Operation remove
Configure-TFSSearch.ps1 -Operation install -TFSSearchInstallPath <install location> -TFSSearchIndexPath $env:SEARCH_ES_INDEX_PATH
Disinstallare la ricerca
Per un aggiornamento di preproduzione, un aggiornamento di produzione, una nuova migrazione hardware, la clonazione o un'altra operazione di manutenzione, la Configurazione guidata server disconfigura la ricerca. Tuttavia, è facile riconfigurare dopo il completamento dell'operazione di manutenzione del server.
In alcuni casi non si vuole più usare La ricerca o si vuole eseguire un'installazione nuova e pulita. Questa operazione richiede più passaggi, a seconda che Ricerca sia configurata nello stesso server di Azure DevOps Server o in un server separato .
Annullare la configurazione della ricerca nel computer configurato come Azure DevOps Server
Disinstallare l'estensione Cerca per ogni raccolta. Vai alla pagina Gestisci estensioni di ogni raccolta nella tua istanza di Azure DevOps Server:
Rimuovere la funzionalità di ricerca:
- Aprire la console di amministrazione del server Azure DevOps.
- Selezionare il nome del server.
- Seleziona Rimuovi funzione.
- Selezionare servizio di ricercae quindi scegliere Rimuovi.
Rimuovere il servizio Elasticsearch:
- Apri prompt dei comandi come amministratore.
- Cambia la directory
cd "C:\Program Files\Microsoft Team Foundation Server 15.0\Search\ES\elasticsearch-5.4.1\bin"
. - Rimuovi il servizio
"elasticsearch-service.bat remove"
.
Rimuovere i dati di ricerca:
- Eliminare il contenuto del percorso descritto dalla variabile di ambiente
SEARCH_ES_INDEX_PATH
.
- Eliminare il contenuto del percorso descritto dalla variabile di ambiente
Eliminare la variabile di ambiente
"SEARCH_ES_INDEX_PATH"
.
Annullare la configurazione della ricerca in un server separato
Seguire questa procedura per annullare la configurazione di Ricerca, ad esempio per Codice, Elemento di lavoro o Wiki, per ogni raccolta.
Passare alla pagina Gestisci estensioni per ogni raccolta nell'istanza di Azure DevOps Server.
Rimuovere la funzionalità di ricerca:
- Aprire la finestra di dialogo Rimuovi funzionalità, Console di amministrazione.
- Nel riquadro sinistro selezionare il nome del server Azure DevOps.
- Nel riquadro destro scegliere Rimuovi funzionalità.
- Nella finestra di dialogo Rimuovi funzionalità, selezionare il Servizio di ricerca, e poi scegliere Rimuovi.
Rimuovere il servizio Elasticsearch e i dati.
- Aprire powerShell come amministratore.
- Aprire la cartella Configura Search.ps1, insieme al resto dei file necessari per un'installazione remota di Ricerca.
- Eseguire di nuovo lo script con l'opzione remove:
"ConfigureTFSSearch.ps1 -remove".
Limitazioni della ricerca
La ricerca di Azure DevOps Server presenta la limitazione seguente:
- Reindicizza tutte le raccolte se esegui un'operazione di ripristino di emergenza e riporti il server a uno snapshot precedente del database SQL.
- La ricerca non è estendibile, ma è possibile inviare una nuova richiesta di funzionalità nella Developer Community.