Установка и настройка поиска
Azure DevOps Server 2022 — Azure DevOps Server 2019
В этой статье вы узнаете, как установить, настроить и удалить безопасную поисковую систему для Azure DevOps Server, которая работает на собственном оборудовании. Дополнительные сведения см. в следующих статьях:
- Управление поиском и индексированием
- Зависимости программного обеспечения, далее в этой статье
- Azul Zulu OpenJDK
Необходимые компоненты
- Чтобы установить расширение поиска, для организации должна быть коллекция проектов Администратор istrator (PCA). Пользователи, не являющиеся администраторами, также могут запросить добавление расширения в pcA.
- Дополнительные сведения см. в статье "Установка и настройка Сервера и требований Azure DevOps" и "Требования" и "Совместимость".
Рекомендации для оборудования
Поиск работает на любом физическом сервере или виртуальной машине под управлением Azure DevOps Server. Его можно настроить на одном сервере или другом для поиска. Если вы используете тот же сервер, рассмотрите использование ЦП.
Совет
Рекомендуется настроить поиск на отдельном сервере для рабочих сред.
Для приемлемой производительности в сценариях с несколькими пользователями рассмотрите следующие рекомендации:
- Менее 250 пользователей с поиском, расположенным на сервере (обычно используется для демонстрации и пробной версии):
- Четырехядерный процессор, 16 ГБ (минимум) ОЗУ
- Коэффициент использования ЦП меньше 50 %
- Быстрый жесткий диск, поддерживаемый хранилищем SSD
- Менее 500 пользователей с поиском, расположенным на отдельном сервере:
- Процессор с двумя ядрами, 8 ГБ (минимум) ОЗУ
- Быстрый жесткий диск, поддерживаемый хранилищем SSD
- Менее 1000 пользователей с поиском, расположенным на отдельном сервере:
- Четырехядерный процессор, 16 ГБ (минимум) ОЗУ
- Быстрый жесткий диск, поддерживаемый хранилищем SSD
- Более 1000 пользователей с поиском, расположенным на отдельном сервере:
- Четырехядерный процессор, 16 ГБ (минимум) ОЗУ
- Быстрый жесткий диск, поддерживаемый твердотельным диском (SSD) или хранилищем служба хранилища сети (SAN)
- Azure DevOps Server с несколькими уровнями приложений (ATS):
- Загрузка ЦП Azure DevOps Server превышает 50 % перед установкой поиска:
Требование к месту на диске:
Объем дискового пространства, используемого поиском, зависит главным образом от типа и размера индексированных файлов. Для поиска кода много раз репозитории могут быть большими и иметь различные файлы кода в системе управления версиями, требование места на диске может быть значительным. Выделите до 150 % от размера всех репозиториев, которые необходимо индексировать. В TFS 2018 с обновлением 3 и более поздних версий пользователи могут исключить папки из репозиториев для индексирования для оптимизации места на диске, потребляемого поиском.
зависимостях ПО;
Поиск имеет следующие зависимости, которые устанавливаются автоматически в рамках конфигурации:
- Elasticsearch by Elasticsearch .
- Поиск использует измененную версию Elasticsearch. Он работает только с этой измененной версией.
- Новая версия Elasticsearch поставляется с TFS 2018 с обновлением 2 и далее и Azure DevOps Server. Все содержимое переиндексируется после установки при обновлении с более старой версии результатов поиска. В зависимости от объема содержимого (файлы кода, рабочие элементы и вики-страницы) переиндексирование может занять некоторое время.
- Клиент Elasticsearch NEST.
- Microsoft Build of OpenJDK версии 11.
- Microsoft Build of OpenJDK не устанавливает обновления автоматически.
- Markdowndeep от Topten Software.
- Платформа компилятора Roslyn .
- Средство синтаксического анализа распознавания языка ANTLR .
Примечание.
- Администратор системы или сервера должен гарантировать, что JRE сервера поддерживается и обновляется в соответствии с рекомендациями поставщика программного обеспечения. Также см. примечания по установке Java, приведенные ниже.
- Регулярно проверка обновлений.
Заметки по установке Java
Если мастер настройки поиска не обнаруживает рабочую установку среды выполнения Java (JRE), он предоставляет возможность скачать и установить последнюю поддерживаемую версию. Для скачивания требуется подключение к Интернету. Если целевой сервер не имеет подключения к Интернету, необходимо скачать и установить JRE вручную, прежде чем пытаться установить поиск.
Версии поиска до azure DevOps Server использовали среду выполнения Java Oracle Server. В Azure DevOps Server по умолчанию используется JRE Azul Zulu OpenJDK.
Во время установки мастер задает переменную среды JAVA_HOME , чтобы указать папку установки JRE. Мастер конфигурации может не обнаружить существующую установку JRE, если она не настроена правильно или если JAVA_HOME указывает на более раннюю версию, чем требуется для поиска.
Примечание.
Мы не советуем устанавливать Elasticsearch на компьютере, где ресурсы совместно используются, особенно в крупной корпоративной среде с несколькими уровнями приложений. Рекомендуется настроить Elasticsearch на отдельном выделенном компьютере. Таким образом, среда JAVA не используется для других целей.
Если существует версия JRE ранее, чем минимальная, необходимая для поиска, и для переменной JAVA_HOME задана эта версия, рекомендуется установить поиск на отдельном сервере.
Если существует версия JRE сервера, равной или более поздней, чем минимальное значение, необходимое для поиска и не распознаваемого мастером конфигурации, убедитесь, что JAVA_HOME переменная не задана. Затем повторно запустите мастер настройки (
& "C:\Program Files\Azure DevOps Server XXX\Search\ES\vX.XX\bin\elasticsearch-service.bat" manager
) и выберите версию, задав путь для виртуальной машины Java.Если вы не можете установить версию Java, необходимую для поиска из-за других зависимостей, можно выполнить следующие задачи:
- Установите Azure DevOps Server с расширением поиска на сервере, на котором не установлен Java. Мы не рекомендуем это действие для более чем 250 пользователей или ресурсов ЦП больше 50 % или нескольких AT.
- Установите поиск и JRE на отдельном сервере от Azure DevOps Server.
Примечание.
Если вы используете Oracle Server JRE 8, который был по умолчанию для поиска в TFS (Azure DevOps Server не использует Oracle Server JRE 8), обратите внимание на следующие сведения:
- Поиск не использует или не поддерживает какие-либо коммерческие функции сервера JRE 8. Поэтому во время настройки поиска коммерческие функции JRE сервера не активируются и не разблокируются.
- Если вы решили продолжить работу с Oracle JRE, обратитесь к Oracle для подписки Java SE, чтобы продолжить получать обновления JRE.
Миграция на Microsoft Build openJDK из Oracle Server JRE
Поиск в Azure DevOps Server поддерживает как Microsoft Build of OpenJDK, так и Oracle JRE, что позволяет выбирать между ними в зависимости от ваших потребностей.
Чтобы измениться на Microsoft Build of OpenJDK, убедитесь , что JAVA_HOME переменная не задана. Затем повторно запустите мастер настройки (& "C:\Program Files\Azure DevOps Server XXX\Search\ES\vX.XX\bin\elasticsearch-service.bat" manager
) и выберите версию, задав путь для виртуальной машины Java.
Доступность функций
- Поиск рабочих элементов доступен в Team Foundation Server (TFS) 2018 и более поздних версиях.
- Вики-поиск доступен в TFS 2018 с обновлением 2 и более поздних версий.
- Рабочий элемент и поиск вики-сайта — это встроенные расширения, установленные по умолчанию во время настройки поиска.
- Поиск кода доступен в TFS 2018 и более поздних версиях и является функцией согласия. Позже вы можете установить поиск кода из локальной коллекции. Перейдите в локальную коллекцию (
http://{server}/_gallery
) от имени администратора. Пользователи, не являющиеся администраторами, также могут запросить расширение для Azure DevOps Server. Дополнительные сведения см. в разделе "Установка расширения".
Настройка поиска
Настройте служба с помощью выделенных страниц в мастере настройки сервера при установке Azure DevOps Server. После этого можно также отменить настройку поиска , выполнив мастер настройки сервера или запустив мастер настройки поиска.
Особенности настройки
При настройке поиска учитывайте следующие сведения:
- Рабочий элемент и поиск вики-сайта включены по умолчанию при настройке поиска. Эти расширения можно удалить позже, если это необходимо, на странице "Управление расширениями " azure DevOps Server.
- Расширение поиска кода должно быть установлено для каждой коллекции Серверов Azure DevOps, в которой вы хотите его использовать. При первоначальной настройке поиска можно задать проверка box для автоматического установки расширения поиска кода для существующих и новых коллекций проектов для автоматизации этого процесса.
- Если вы не устанавливаете проверка box для установки расширения поиска кода для всех коллекций проектов, pcA может установить его из локальной коллекции. Убедитесь, что вы перейдете в локальную коллекцию (
http://{Server}/_gallery
) на странице портала Azure DevOps Server. Дополнительные сведения см. в разделе "Установка расширения". - Обычно для индексирования коллекции требуется менее одного часа. Но в зависимости от размера и количества файлов кода, рабочих элементов или вики-страниц может потребоваться до 12 часов. Если вы не получаете результатов после этого периода, проверка состояние индексирования.
Использование второго жесткого диска и удаленного сервера
- Для максимальной производительности папка индекса поиска должна находиться на отдельном жестком диске и поддерживается быстрым хранилищем, например твердотельным диском (SSD) или служба хранилища сетью зоны (SAN). Выделите до 150 % от размера всех репозиториев, которые необходимо индексировать, что является худшим сценарием. Фактическое потребляемое пространство зависит от объема и типа файлов кода, а также количества рабочих элементов и вики-страниц в этой коллекции.
- Если не указано, служба индексирования и подсистема Elasticsearch используют учетную запись сетевой службы во время установки для создания и доступа к файлам индекса. Если выбрать другую учетную запись, она должна иметь разрешение на вход в качестве службы .
- Ограничьте разрешения для диска индекса и папки, чтобы защитить индекс от случайного или вредоносного изменения или удаления. Настройте соответствующие параметры безопасности для службы.
- При настройке поиска сервера с несколькими ATS установите на отдельный сервер. После установки поиска на удаленном сервере используйте мастер настройки на любом из серверов AT, чтобы связать удаленный экземпляр поиска с экземпляром Azure DevOps Server. При ненастройке поиска необходимо использовать мастер настройки на том же сервере AT, где изначально была выполнена конфигурация.
Обновление сервера
- Если вы выполняете предварительное обновление на сервере, на котором уже настроен поиск, необходимо полностью перенастроить поиск, чтобы избежать повреждения рабочего экземпляра. Нет возможности настроить поиск в рамках предварительного обновления. Вместо этого настройте его после завершения предварительного обновления. Вы можете отменить проверка автоматически устанавливать и настраивать поиск кода для всех существующих и новых коллекций во время настройки. Вместо этого установите расширение поиска только для одной или двух коллекций после завершения настройки.
- Если вы выполняете обновление рабочей среды на сервере, на котором настроен поиск и хотите сохранить его, проверка поле рядом с установкой и настройкой поиска. Мастер обнаруживает существующий экземпляр поиска и автоматически выбирает существующий экземпляр поиска и предварительно заполняет текущий URL-адрес служба . Используйте параметр установки нового экземпляра поиска только в том случае, если вы хотите настроить новый экземпляр поиска на том же сервере. При настройке нового экземпляра все код, рабочие элементы и вики-страницы индексируются снова, что ( в зависимости от размера коллекций) может занять некоторое время. Во время индексирования пользователи могут видеть частичные результаты поиска
- Если вы обновляете сервер до нового оборудования, у вас есть следующие два варианта. Выберите из этих параметров в зависимости от того, как ранее был настроен поиск:
- Если поиск находится на отдельном сервере с Azure DevOps Server, необходимо выбрать команду "Установить и настроить поиск " в мастере настройки сервера, а затем выберите "Использовать существующий экземпляр поиска" и укажите URL-адрес существующего экземпляра поиска для завершения конфигурации поиска.
- Если поиск настроен вместе с экземпляром Azure DevOps Server на старом сервере, необходимо выбрать команду "Установить и настроить поиск " в мастере настройки сервера. Затем снова нажмите кнопку "Установить новый экземпляр поиска" на новом сервере, если вы хотите продолжить совместное поиск и Azure DevOps Server. Все индексы поиска для всех коллекций создаются повторно, что в зависимости от размера каждой коллекции может занять некоторое время.
- Если вы отсоединяете коллекцию от одного экземпляра Azure DevOps Server, чтобы подключить его к другому экземпляру, сделайте следующее:
- Отключение коллекции от исходного экземпляра Azure DevOps Server
- Настройка поиска в целевом экземпляре Сервера Azure DevOps (если еще не выполнено)
- Присоединение коллекции к целевому серверу Azure DevOps
- Удаление расширений поиска, таких как Code, Work item или Wiki для коллекции из локальной коллекции на сервере Azure DevOps Server
- Установите расширение поиска для коллекции из локальной коллекции, перейдя к нему из целевого экземпляра Azure DevOps Server.
Установка или обновление поиска на отдельном сервере
Чтобы установить или обновить поиск на отдельном или удаленном сервере, обычно при наличии более 250 пользователей выполните следующие действия.
- При установке Azure DevOps Server на основном сервере установите и настройте поле "Поиск проверка box". на странице поиска мастера настройки сервера.
- Выберите параметр "Использовать существующую служба ".
- Используйте ссылку служба пакета, указанную в мастере, чтобы получить доступ к набору файлов установщика поиска на локальном компьютере. Затем скопируйте эти файлы на удаленный сервер.
- Следуйте инструкциям в файле Readme.txt, расположенном в наборе файлов установщика, чтобы установить или обновить служба на удаленном сервере.
- После завершения установки скопируйте полученный URL-адрес сервера поиска в поле URL-адреса поиска мастера конфигурации, работающего на экземпляре Сервера Azure DevOps Server.
- После завершения обеих установок настройте соответствующие параметры безопасности для обоих серверов.
Безопасный поиск
В служба используется измененная версия Elasticsearch. Термины "Поиск" и "Elasticsearch" используются взаимозаменяемо для остальной части этого раздела. Администратор istrator должны предоставить учетные данные, служба на том же компьютере, что и Azure DevOps Server, или на отдельном компьютере. Это действие является частью настройки функции поиска с помощью сервера или мастера настройки поиска. Эти учетные данные являются новыми и не связаны с существующими учетными данными учетной записи или сервера. Они используются для настройки и подключения к служба . Эти новые наборы учетных данных обеспечивают базовую проверку подлинности в службе поиска.
Для обновления с TFS 2018 с обновлением 1.1 до TFS 2018 с обновлением 3 или для перенастройки поиска данные пользователя автоматически заполняют и администраторы должны предоставлять учетные данные паролей. Администратор istrators могут предоставить другое имя пользователя и пароль, если они хотят. Если служба находится на том же компьютере, что и Azure DevOps Server, администраторы могут предоставить новый набор учетных данных в мастере конфигурации, чтобы настроить служба при необходимости. Однако если служба находится на удаленном компьютере, администраторы должны сначала предоставить новые учетные данные скрипту установки служба .
Примечание.
- Значения имени пользователя и пароля должны находиться в диапазоне от 8 до 64 символов. Хотя пароль можно назначить любое значение, имя пользователя может содержать только буквенно-цифровые и символы подчеркивания.
- Учетные данные поиска проходят проверку подлинности только пользователей и убедитесь, что пользователи, не прошедшие проверку подлинности, не могут получить доступ к конечной точке Elasticsearch. Однако Elasticsearch не поддерживает ПРОТОКОЛ HTTPS и поэтому эти учетные данные отправляются по сети в виде строк в кодировке Base64. Если есть возможность промежуточного доступа к запросу, настройте соответствующие параметры безопасности на основе требований корпоративной безопасности и соответствия требованиям.
- Цель ограничить доступ к поиску и индексации определенным пользователям или группам пользователей с помощью шифрования через IPSec, как описано ниже.
Рассмотрим следующие методы использования IPSec для защиты Elasticsearch на сервере Windows:
Настройте безопасность только с проверкой подлинности:
- Гарантирует, что только авторизованные пользователи могут получить доступ к порту Elasticsearch. Для этого требуются только правила на стороне службы (правила брандмауэра только на сервере, на котором запущен Elasticsearch)
- Предварительные требования. Сервер Azure DevOps должен быть настроен с учетной записью домена
- Выполните действия, описанные в разделе "Создание правил брандмауэра, разрешающих сетевой трафик, защищенный IPsec"
Настройте безопасность с проверкой подлинности, защитой целостности и шифрованием:
- Обеспечивает применение шифрования и защиты целостности вместе с проверкой подлинности. Для этого требуются как клиентские, так и служебные правила (правила брандмауэра на сервере, на котором выполняется Elasticsearch, и все серверы уровня приложений Azure DevOps Server)
- Предварительные требования. Сервер Azure DevOps должен быть настроен с учетной записью домена
- Выполните действия по изоляции сервера, требуя шифрования и членства в группах
Обновление поиска
TFS 2018 с обновлением 2: включает обновленные компоненты поиска и вики-поиск.
- Если служба был настроен во время обновления RTM 2018 года и настроен в системе TFS, его компоненты обновляются автоматически.
- Если поиск был настроен на удаленном сервере, см . статью "Установка или обновление поиска на отдельном сервере ", чтобы обновить его.
В обоих случаях все существующее содержимое (файлы кода и рабочие элементы) автоматически переиндексируется для поддержки обновленных компонентов после настройки. В зависимости от объема содержимого это обновление может занять некоторое время.
TFS 2018 с обновлением 1.1 и TFS 2018 с обновлением 3. Включает базовую проверку подлинности для взаимодействия между TFS и служба , чтобы сделать его более безопасным. Любые установки или обновления до TFS 2018 с обновлением 1.1 или TFS 2018 с обновлением 3 должны предоставлять учетные данные в рамках настройки функции поиска с помощью сервера или мастера настройки поиска.
TFS 2018 с обновлением 2 (или более поздней) до версии Azure DevOps Server 2019 с обновлением 1. При настройке поиска на отдельном сервере требуется переустановка поиска. Следуя инструкциям по обновлению, на шаге 4 вместо обновления
Configure-TFSSearch.ps1 – Operation update
выполните следующую команду, чтобы переустановить поиск.
Configure-TFSSearch.ps1 -Operation remove
Configure-TFSSearch.ps1 -Operation install -TFSSearchInstallPath <install location> -TFSSearchIndexPath $env:SEARCH_ES_INDEX_PATH
Удаление поиска
Для предварительного обновления, обновления рабочей среды, переноса оборудования, клонирования или другой операции обслуживания мастер настройки сервера не настраивает поиск. Но легко перенастроить после завершения операции обслуживания сервера.
Могут возникнуть случаи, когда вы больше не хотите использовать поиск или хотите выполнить новую и чистую установку. Для этой операции требуется несколько шагов в зависимости от того, настроен ли поиск на одном сервере с Azure DevOps Server или на отдельном сервере.
Ненастройка поиска на компьютере, настроенном в качестве сервера Azure DevOps
Удалите расширение поиска для каждой коллекции. Перейдите на страницу "Управление расширениями " каждой коллекции в экземпляре Azure DevOps Server:
Удалите функцию поиска:
- Откройте консоль Администратор istration server Azure DevOps Server.
- Выберите имя сервера.
- Выберите " Удалить функцию".
- Выберите служба и нажмите кнопку "Удалить".
Удалите службу Elasticsearch:
- Откройте командную строку от имени администратора.
- Изменение каталога.
cd "C:\Program Files\Microsoft Team Foundation Server 15.0\Search\ES\elasticsearch-5.4.1\bin"
- Удалите службу,
"elasticsearch-service.bat remove"
.
Удаление данных поиска:
- Удалите содержимое расположения, описанного переменной среды.
SEARCH_ES_INDEX_PATH
- Удалите содержимое расположения, описанного переменной среды.
Удалите переменную среды,
"SEARCH_ES_INDEX_PATH"
.
Ненастройка поиска на отдельном сервере
Выполните следующие действия, чтобы отменить настройку поиска, например для кода, рабочего элемента или вики-сайта для каждой коллекции.
Перейдите на страницу "Управление расширениями" для каждой коллекции в экземпляре Azure DevOps Server.
Удалите функцию поиска:
- Откройте диалоговое окно "Удалить функцию" Администратор istration Console.
- В левой области выберите имя Сервера Azure DevOps.
- В правой области нажмите кнопку "Удалить функцию".
- В диалоговом окне "Удалить функцию" выберите служба и нажмите кнопку "Удалить".
Удалите службу Elasticsearch и данные.
- Откройте PowerShell от имени администратора.
- Откройте папку Configure Search.ps1 вместе с остальными файлами, необходимыми для удаленной установки поиска.
- Запустите скрипт еще раз с параметром удаления:
"ConfigureTFSSearch.ps1 -remove".
Ограничения поиска
Поиск Azure DevOps Server имеет следующее ограничение:
- Переиндексируйте все коллекции при выполнении операции аварийного восстановления и переместите сервер обратно в более ранний моментальный снимок базы данных SQL.
- Поиск не является расширяемым, но вы можете отправить новый запрос на функцию на Сообщество разработчиков.