Instalación y configuración de Search
Azure DevOps Server 2022: Azure DevOps Server 2019
En este artículo, aprenderá a instalar, configurar y desinstalar un motor de búsqueda seguro para Azure DevOps Server que se ejecuta en su propio hardware. Vea los siguientes artículos para más información:
- Administración de la búsqueda y la indexación
- Dependencias de software, más adelante en este artículo
- Azul Zulu OpenJDK
Requisitos previos
- Para instalar la extensión search, debe ser administrador de colecciones de proyectos (PCA) para la organización. Los usuarios no administrativos también pueden solicitar que la extensión se agregue a su PCA.
- Para más información, consulte Instalación y configuración de Azure DevOps Server y Requisitos y compatibilidad.
Recomendaciones de hardware
La búsqueda funciona en cualquier servidor físico o máquina virtual que ejecute Azure DevOps Server. Puede configurarlo en el mismo servidor o en otro diferente para Buscar. Si usa el mismo servidor, tenga en cuenta el uso de cpu.
Sugerencia
Se recomienda configurar La búsqueda en un servidor independiente para entornos de producción.
Para obtener un rendimiento aceptable en escenarios multiusuario, tenga en cuenta las siguientes recomendaciones:
- Menos de 250 usuarios con la búsqueda ubicada en el servidor (normalmente se usa con fines de demostración y prueba):
- Procesador de cuatro núcleos, 16 GB (mínimo) RAM
- Factor de uso de CPU inferior al 50 %
- Disco duro rápido respaldado por almacenamiento de unidad de estado sólido (SSD)
- Menos de 500 usuarios con la búsqueda ubicada en un servidor independiente:
- Procesador de doble núcleo, 8 GB (mínimo) RAM
- Disco duro rápido respaldado por almacenamiento de unidad de estado sólido (SSD)
- Menos de 1000 usuarios con la búsqueda ubicada en un servidor independiente:
- Procesador de cuatro núcleos, 16 GB (mínimo) RAM
- Disco duro rápido respaldado por almacenamiento de unidad de estado sólido (SSD)
- Más de 1000 usuarios con la búsqueda ubicada en un servidor independiente:
- Procesador de cuatro núcleos, 16 GB (mínimo) RAM
- Disco duro rápido respaldado por unidad de estado sólido (SSD) o almacenamiento de red de área de almacenamiento (SAN)
- Azure DevOps Server con varios niveles de aplicación (AT):
- Instalación de Search en un servidor independiente
- Uso de CPU de Azure DevOps Server superior al 50 % antes de la instalación de Search:
- Instalación de Search en un servidor independiente
Requisito de espacio en disco:
La cantidad de espacio en disco utilizado por Search depende principalmente del tipo y tamaño de los archivos indizado. Para la búsqueda de código, dado que muchas veces los repositorios pueden ser grandes y tienen archivos de código diferentes en el control de versiones, el requisito de espacio en disco podría ser significativo. Asigne hasta el 150 % del tamaño de todos los repositorios que se van a indexar. Desde TFS 2018 Update 3 y versiones posteriores, los usuarios pueden excluir carpetas de sus repositorios para que el índice optimice el espacio en disco consumido por la búsqueda.
Dependencias de software
La búsqueda tiene las siguientes dependencias, que se instalan automáticamente como parte de la configuración:
- Elasticsearch de Elasticsearch.
- La búsqueda usa una versión modificada de Elasticsearch. Solo funciona con esta versión modificada.
- Una versión más reciente de Elasticsearch se incluye con TFS 2018 Update 2 y versiones posteriores, y Azure DevOps Server. Todo el contenido se vuelve a indexar después de la instalación al actualizar desde una versión anterior de los resultados de la búsqueda. Según el volumen de contenido (archivos de código, elementos de trabajo y páginas wiki), la reindexación puede tardar algún tiempo en completarse.
- Cliente NEST de Elasticsearch.
- Microsoft Build of OpenJDK version 11 (Compilación de Microsoft de OpenJDK versión 11).
- Microsoft Build de OpenJDK no instala automáticamente las actualizaciones.
- Markdowndeep de Topten Software.
- Plataforma del compilador de Roslyn .
- Analizador de reconocimiento de lenguaje ANTLR .
Nota:
- El administrador del sistema o del servidor debe asegurarse de que el JRE del servidor se mantenga y actualice en línea con las recomendaciones del proveedor de software. Consulte también las notas de instalación de Java siguientes.
- Compruebe periódicamente si hay actualizaciones.
Notas de instalación de Java
Si el Asistente para configuración de búsqueda no detecta una instalación en funcionamiento de un entorno de tiempo de ejecución de Java (JRE), proporciona una opción para descargar e instalar la versión compatible más reciente. Se requiere conectividad a Internet para descargar. Si el servidor de destino no tiene conectividad a Internet, debe descargar e instalar un JRE manualmente antes de intentar instalar Search.
Versiones de búsqueda antes de Azure DevOps Server usaron el entorno de tiempo de ejecución de Java de Oracle Server. En Azure DevOps Server, el JRE predeterminado es Azul Zulu OpenJDK.
Durante la instalación, el asistente establece la variable de entorno JAVA_HOME para que apunte a la carpeta de instalación JRE. Es posible que el Asistente para configuración no detecte una instalación JRE existente si no se ha configurado correctamente o si el valor de JAVA_HOME apunta a una versión anterior de la requerida por Search.
Nota:
No recomendamos instalar Elasticsearch en una máquina donde se comparten recursos, especialmente en un entorno empresarial grande con varios niveles de aplicación. Se recomienda configurar Elasticsearch en una máquina dedicada independiente. De este modo, el entorno java no se comparte entre máquinas con otros fines.
Si hay una versión de JRE anterior al mínimo requerido por Search y la variable JAVA_HOME se estableció en esa versión, se recomienda instalar Search en un servidor independiente.
Si hay una versión de SERVER JRE igual o posterior a la mínima requerida por search y no reconocida por el asistente de configuración, asegúrese de que no se establezca JAVA_HOME variable. A continuación, vuelva a ejecutar el Asistente para configuración (
& "C:\Program Files\Azure DevOps Server XXX\Search\ES\vX.XX\bin\elasticsearch-service.bat" manager
) y seleccione la versión estableciendo la ruta de acceso de la máquina virtual Java.Si no puede instalar la versión de Java requerida por Search debido a otras dependencias, puede realizar las siguientes tareas:
- Instale Azure DevOps Server con la extensión Search en un servidor que no tenga Java instalado. No se recomienda esta acción para más de 250 usuarios o uso de CPU superior al 50 % o varias AT.
- Instale Search y JRE en un servidor independiente de Azure DevOps Server.
Nota:
Si usa Oracle Server JRE 8, que era el valor predeterminado para Buscar en TFS (Azure DevOps Server no usa Oracle Server JRE 8), tenga en cuenta la siguiente información:
- La búsqueda no usa ni admite ninguna de las características comerciales de Server JRE 8. Por lo tanto, durante la configuración de búsqueda, las características comerciales del JRE del servidor no se activan ni se desbloquean.
- Si decide continuar con Oracle JRE, póngase en contacto con Oracle para obtener una suscripción de Java SE, de modo que pueda seguir recibiendo actualizaciones de JRE.
Migración a Microsoft Build de OpenJDK desde Oracle Server JRE
Search in Azure DevOps Server admite ambos, Microsoft Build of OpenJDK y Oracle JRE, que le permiten elegir entre ellos en función de sus necesidades.
Para cambiar a Microsoft Build de OpenJDK, asegúrese de que JAVA_HOME variable NO está establecida. A continuación, vuelva a ejecutar el Asistente para configuración (& "C:\Program Files\Azure DevOps Server XXX\Search\ES\vX.XX\bin\elasticsearch-service.bat" manager
) y seleccione la versión estableciendo la ruta de acceso de la máquina virtual Java.
Disponibilidad de características
- Búsqueda de elementos de trabajo está disponible en Team Foundation Server (TFS) 2018 y versiones posteriores.
- La búsqueda wiki está disponible en TFS 2018 Update 2 y versiones posteriores.
- La búsqueda de elementos de trabajo y wiki son extensiones integradas que se instalan de forma predeterminada durante la configuración de búsqueda.
- Búsqueda de código está disponible en TFS 2018 y versiones posteriores, y es una característica de participación. Puede instalar Code Search más adelante desde la Galería local. Vaya a Galería local (
http://{server}/_gallery
) como administrador. Los usuarios no administrativos también pueden solicitar la extensión para Azure DevOps Server. Para obtener más información, consulte Instalación de una extensión.
Configuración de la búsqueda
Configure el servicio Search con las páginas dedicadas en el Asistente para configuración del servidor a medida que instale Azure DevOps Server. También puede desconfigurar la búsqueda después ejecutando de nuevo el Asistente para configuración del servidor o iniciando el Asistente para configuración de búsqueda.
Consideraciones de configuración
Tenga en cuenta la siguiente información al configurar La búsqueda:
- Tanto el elemento de trabajo como la búsqueda wiki se habilitan de forma predeterminada cuando la búsqueda está configurada. Estas extensiones se pueden quitar más adelante si es necesario en la página Administrar extensiones de Azure DevOps Server.
- La extensión Búsqueda de código debe instalarse para cada colección Azure DevOps Server donde quiera usarla. Al configurar inicialmente Search, puede establecer una casilla para instalar automáticamente la extensión Búsqueda de código para colecciones de proyectos existentes y nuevas para automatizar este proceso.
- Si no establece la casilla para instalar la extensión Búsqueda de código para todas las colecciones de proyectos, el PCA puede instalarla desde la Galería local. Asegúrese de ir a la Galería local (
http://{Server}/_gallery
) desde la página del portal de Azure DevOps Server. Para obtener más información, consulte Instalación de una extensión. - Normalmente, la búsqueda tarda menos de una hora en indexar una colección. Sin embargo, puede tardar hasta 12 horas en función del tamaño y el número de archivos de código, elementos de trabajo o páginas wiki. Si no obtiene ningún resultado después de este período, compruebe el estado de indexación.
Usar una segunda unidad de disco duro y un servidor remoto
- Para obtener un rendimiento máximo, la carpeta de índice de búsqueda debe estar en un disco duro rápido independiente y respaldado por un almacenamiento rápido, como una unidad de estado sólido (SSD) o una red de área de almacenamiento (SAN). Asigne hasta el 150 % del tamaño de todos los repositorios que se van a indexar, que es el peor escenario. El espacio consumido real depende de la cantidad y el tipo de archivos de código, y del número de elementos de trabajo y páginas wiki de esa colección.
- A menos que se especifique, el servicio de indexación y el motor de Elasticsearch usan la cuenta de servicio de red durante la instalación para crear y acceder a los archivos de índice. Si elige una cuenta diferente, debe tener el permiso Iniciar sesión como servicio .
- Restrinja los permisos para el disco de índice y la carpeta para proteger el índice frente a modificaciones o eliminaciones accidentales o malintencionadas. Configure las opciones de seguridad adecuadas para el servicio.
- Al configurar Buscar un servidor con varios AT, instale en un servidor independiente. Después de instalar Search en el servidor remoto, use el Asistente para configuración en cualquiera de los servidores AT para vincular la instancia de Búsqueda remota con la instancia de Azure DevOps Server. Al desconfigurar la búsqueda, debe usar el Asistente para configuración en el mismo servidor AT donde se realizó originalmente la configuración.
Actualizar el servidor
- Si va a realizar una actualización de preproducción en un servidor en el que la búsqueda ya está configurada, debe volver a configurar la búsqueda de nuevo para evitar daños en la instancia de producción. No hay ninguna opción para configurar La búsqueda como parte de una actualización de preproducción. En su lugar, configúrelo una vez completada la actualización de preproducción. Puede desactivar La opción Instalar y configurar automáticamente La búsqueda de código para todas las colecciones existentes y nuevas durante la configuración. En su lugar, instale la extensión search solo para una o dos de las colecciones una vez completada la configuración.
- Si va a realizar una actualización de producción en un servidor donde la búsqueda está configurada y desea conservarla, active la casilla situada junto a Instalar y configurar la búsqueda. El asistente detecta la instancia de Búsqueda existente y selecciona automáticamente Usar instancia de búsqueda existente y rellena previamente la dirección URL de servicio Search actual. Use la opción Instalar una nueva instancia de búsqueda solo si desea configurar una nueva instancia de Search en el mismo servidor. La configuración de una nueva instancia hace que todo el código, los elementos de trabajo y la wiki se vuelvan a indexar, lo que, según el tamaño de las colecciones, puede tardar algún tiempo. Durante la indexación, es posible que los usuarios vean resultados de búsqueda parciales.
- Si va a actualizar el servidor al nuevo hardware, tiene las dos opciones siguientes. Seleccione entre estas opciones, en función de cómo se configuró la búsqueda anteriormente:
- Si La búsqueda está en un servidor independiente de Azure DevOps Server, debe seleccionar Instalar y configurar la búsqueda en el Asistente para configuración del servidor y, a continuación, seleccionar Usar una instancia de búsqueda existente y proporcionar la dirección URL de la instancia de búsqueda existente para completar la configuración de búsqueda.
- Si La búsqueda está configurada junto con la instancia de Azure DevOps Server en el servidor anterior, debe seleccionar Instalar y configurar la búsqueda en el Asistente para configuración del servidor. A continuación, seleccione Instalar una nueva instancia de búsqueda de nuevo en el nuevo servidor si desea continuar con la búsqueda de cohospedaje y Azure DevOps Server. Todos los índices de búsqueda de todas las colecciones se vuelven a crear, lo que, según el tamaño de cada colección, puede tardar algún tiempo.
- Si va a desasociar una colección de una instancia de Azure DevOps Server para asociarla a otra instancia, siga estos pasos:
- Desasociar la colección de la instancia de Azure DevOps Server de origen
- Configuración de la búsqueda en la instancia de Azure DevOps Server de destino (si aún no se ha realizado)
- Adjunte la colección al Azure DevOps Server de destino
- Desinstale las extensiones de búsqueda, como Código, Elemento de trabajo o Wiki para la colección desde la Galería local dentro de la Azure DevOps Server
- Instale la extensión Search para la colección desde la Galería local; para ello, vaya a ella desde la instancia de Azure DevOps Server de destino.
Instalar o actualizar La búsqueda en un servidor independiente
Para instalar o actualizar Search en un servidor remoto o independiente, normalmente cuando hay más de 250 usuarios, siga estos pasos:
- Al instalar Azure DevOps Server en el servidor principal, establezca la casilla Instalar y configurar búsqueda . en la página Buscar del Asistente para configuración del servidor.
- Seleccione la opción Usar un servicio Search existente.
- Use el vínculo del paquete servicio Search proporcionado en el asistente para acceder a un conjunto de archivos del instalador de búsqueda en el equipo local. A continuación, copie estos archivos en el servidor remoto.
- Siga las instrucciones del archivo Readme.txt, ubicado en el conjunto de archivos del instalador, para instalar o actualizar el servicio Search en el servidor remoto.
- Una vez completada la instalación, copie la dirección URL del servidor de búsqueda resultante en el campo Dirección URL de búsqueda del Asistente para configuración que se ejecuta en la instancia de Azure DevOps Server.
- Una vez completadas ambas instalaciones, configure las opciones de seguridad adecuadas para ambos servidores.
Búsqueda segura
El servicio Search usa una versión modificada de Elasticsearch. Los términos "Search" y "Elasticsearch" se usan indistintamente para el resto de esta sección. Los administradores deben proporcionar credenciales si el servicio Search está en el mismo equipo que Azure DevOps Server o en un equipo independiente. Esta acción forma parte de la configuración de la característica Búsqueda a través del servidor o del Asistente para configuración de búsqueda. Estas credenciales son nuevas y no están relacionadas con ninguna cuenta o credenciales de servidor preexistentes. Se usan para configurar y conectarse a servicio Search. Estos nuevos conjuntos de credenciales habilitan la autenticación básica en el servicio de búsqueda.
Para una actualización de TFS 2018 Update 1.1 a TFS 2018 Update 3 o para reconfiguración de búsqueda, solo la información del usuario se rellena automáticamente y los administradores deben proporcionar credenciales de contraseña. Los administradores pueden proporcionar un nombre de usuario y una contraseña diferentes si lo desean. Si el servicio Search está en el mismo equipo que Azure DevOps Server, los administradores pueden proporcionar un nuevo conjunto de credenciales en el Asistente para configuración para configurar el servicio Search, si lo desea. Sin embargo, si el servicio Search está en un equipo remoto, los administradores deben proporcionar primero las nuevas credenciales al script de configuración de servicio Search.
Nota:
- Los valores de nombre de usuario y contraseña deben tener entre 8 y 64 caracteres de longitud. Aunque se puede asignar cualquier valor a la contraseña, el nombre de usuario solo puede contener caracteres alfanuméricos y de subrayado.
- Las credenciales de búsqueda solo autentican a los usuarios y asegúrese de que los usuarios no autenticados no pueden acceder al punto de conexión de Elasticsearch. Sin embargo, Elasticsearch no admite HTTPS y, por tanto, estas credenciales se envían a través de la red como cadenas codificadas en Base64. Si existe la posibilidad de que se solicite acceso intermedio, configure las opciones de seguridad adecuadas en función de los requisitos de cumplimiento y seguridad corporativos.
- El objetivo es limitar el acceso tanto a la búsqueda como a la indexación a usuarios o grupos de usuarios específicos mediante el cifrado a través de IPSec, que se describe a continuación.
Tenga en cuenta las técnicas siguientes para usar IPSec para proteger Elasticsearch en un servidor Windows:
Configure la seguridad solo con autenticación:
- Garantiza que solo los usuarios autorizados puedan acceder al puerto de Elasticsearch. Solo requiere reglas del lado del servicio (reglas de firewall solo en el servidor que ejecuta Elasticsearch).
- Requisito previo: Azure DevOps Server debe configurarse con una cuenta de dominio
- Siga los pasos descritos en Creación de reglas de firewall que permitan el tráfico de red protegido por IPsec.
Configure la seguridad con autenticación, protección de integridad y cifrado:
- Garantiza que el cifrado y la protección de integridad se apliquen junto con la autenticación. Requiere reglas del lado cliente y del lado del servicio (reglas de firewall en el servidor que ejecuta Elasticsearch y todos los servidores de nivel de aplicación Azure DevOps Server).
- Requisito previo: Azure DevOps Server debe configurarse con una cuenta de dominio
- Siga los pasos descritos en Aislamiento de un servidor mediante la necesidad de cifrado y pertenencia a grupos.
Búsqueda de actualización
TFS 2018 Update 2: incluye componentes de búsqueda actualizados y Búsqueda wiki.
- Si el servicio Search se configuró durante la actualización rtM de 2018 y se configuró en el sistema TFS que está actualizando, sus componentes se actualizan automáticamente.
- Si la búsqueda se configuró en un servidor remoto, consulte Instalación o actualización de la búsqueda en un servidor independiente para actualizarlo.
En ambos casos, todo el contenido existente (archivos de código y elementos de trabajo) se vuelve a indexar automáticamente para admitir los componentes actualizados después de la configuración. En función del volumen de contenido, esta actualización puede tardar algún tiempo en completarse.
TFS 2018 Update 1.1 y TFS 2018 Update 3: incluye autenticación básica para la comunicación entre TFS y servicio Search para que sea más segura. Cualquier instalación o actualización a TFS 2018 Update 1.1 o TFS 2018 Update 3, debe proporcionar credenciales como parte de la configuración de la característica de búsqueda, a través del servidor o el Asistente para configuración de búsqueda.
TFS 2018 Update 2 (o posterior) a la versión de Azure DevOps Server 2019 Update 1: cuando la búsqueda está configurada en un servidor independiente, es necesario volver a instalar la búsqueda. Al seguir las instrucciones de una actualización, en el paso 4 en lugar de actualizar
Configure-TFSSearch.ps1 – Operation update
, ejecute el siguiente comando para volver a instalar la búsqueda.
Configure-TFSSearch.ps1 -Operation remove
Configure-TFSSearch.ps1 -Operation install -TFSSearchInstallPath <install location> -TFSSearchIndexPath $env:SEARCH_ES_INDEX_PATH
Desinstalar búsqueda
Para una actualización de preproducción, actualización de producción, nueva migración de hardware, clonación u otra operación de mantenimiento, el Asistente para configuración del servidor no configura la búsqueda. Pero es fácil volver a configurar una vez completada la operación de mantenimiento del servidor.
Es posible que haya casos en los que ya no quiera usar La búsqueda o desea realizar una instalación nueva y limpia. Esta operación requiere varios pasos, en función de si la búsqueda está configurada en el mismo servidor que Azure DevOps Server o en un servidor independiente.
Desconfigurar la búsqueda en el equipo configurado como Azure DevOps Server
Desinstale la extensión search para cada colección. Vaya a la página Administrar extensiones de cada colección de la instancia de Azure DevOps Server:
Quite la característica de búsqueda:
- Abra la consola de Administración istration de Azure DevOps Server.
- Seleccione el nombre del servidor.
- Elija Quitar característica.
- Seleccione servicio Search y, a continuación, elija Quitar.
Quite el servicio Elasticsearch:
- Abra el símbolo del sistema como administrador.
- Cambie el directorio ,
cd "C:\Program Files\Microsoft Team Foundation Server 15.0\Search\ES\elasticsearch-5.4.1\bin"
. - Quite el servicio,
"elasticsearch-service.bat remove"
.
Quitar datos de búsqueda:
- Elimine el contenido de la ubicación descrita por la variable de entorno,
SEARCH_ES_INDEX_PATH
.
- Elimine el contenido de la ubicación descrita por la variable de entorno,
Elimine la variable de entorno,
"SEARCH_ES_INDEX_PATH"
.
Desconfigurar la búsqueda en un servidor independiente
Realice los pasos siguientes para desconfigurar la búsqueda, como código, elemento de trabajo o Wiki, para cada colección.
Vaya a la página Administrar extensiones de cada colección de la instancia de Azure DevOps Server.
Quite la característica de búsqueda:
- Abra el cuadro de diálogo Quitar característica, Administración sistration Console.
- En el panel izquierdo, seleccione el nombre de Azure DevOps Server.
- En el panel derecho, elija Quitar característica.
- En el cuadro de diálogo Quitar característica, seleccione servicio Search y, a continuación, elija Quitar.
Quite el servicio Elasticsearch y los datos.
- Abra PowerShell como administrador.
- Abra la carpeta Configurar Search.ps1 , junto con el resto de los archivos necesarios para una instalación remota de Search.
- Vuelva a ejecutar el script con la opción remove:
"ConfigureTFSSearch.ps1 -remove".
Limitaciones de la búsqueda
La búsqueda de Azure DevOps Server tiene la siguiente limitación:
- Vuelva a indexar todas las recopilaciones si realiza una operación de recuperación ante desastres (DR) y vuelve a mover el servidor a una instantánea anterior de la base de datos SQL.
- La búsqueda no es extensible, pero puede enviar una nueva solicitud de característica en la Comunidad de desarrolladores.