Установка и настройка поиска

Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019 | TFS 2018

Узнайте, как выполнить следующие действия для расширения поиска кода, вики-сайта и рабочего элемента в Azure DevOps Server.

Сведения об управлении индексированием поиска см. в разделе "Управление поиском и индексированием".

Предварительные требования

Рекомендации для оборудования

Поиск можно использовать на любом физическом сервере или виртуальной машине любого размера, на котором выполняется Azure DevOps Server. Его можно настроить на том же сервере или на отдельном сервере, выделенном для поиска. При настройке поиска на том же сервере учитывайте существующий коэффициент использования ЦП из-за самого Azure DevOps Server.

Совет

Для рабочих сред рекомендуется настроить поиск на отдельном сервере.

Для приемлемой производительности в сценариях с несколькими пользователями рассмотрите следующие рекомендации:

  • Менее 250 пользователей с поиском, расположенным на сервере (обычно используется для демонстрации и пробной версии):
    • Четырехядерный процессор, 16 ГБ (минимум) ОЗУ
    • Коэффициент использования ЦП меньше 50 %
    • Быстрый жесткий диск, поддерживаемый хранилищем твердотельных накопителей (SSD)
  • Менее 500 пользователей с поиском, расположенным на отдельном сервере:
    • Процессор с двумя ядрами, 8 ГБ (минимум) ОЗУ
    • Быстрый жесткий диск, поддерживаемый хранилищем твердотельных накопителей (SSD)
  • Менее 1000 пользователей с поиском, расположенным на отдельном сервере:
    • Четырехядерный процессор, 16 ГБ (минимум) ОЗУ
    • Быстрый жесткий диск, поддерживаемый хранилищем твердотельных накопителей (SSD)
  • Более 1000 пользователей с поиском, расположенным на отдельном сервере:
    • Четырехядерный процессор, 16 ГБ (минимум) ОЗУ
    • Быстрый жесткий диск, поддерживаемый твердотельным накопителем (SSD) или хранилищем сети хранения данных (SAN)
  • Azure DevOps Server с несколькими AT:
  • Azure DevOps Server загрузку ЦП более 50 % перед установкой поиска:

Требование к месту на диске:

Объем дискового пространства, используемого поиском, зависит главным образом от типа и размера индексированных файлов. Для поиска кода, так как много раз репозитории могут быть большими и иметь разные файлы кода в управлении версиями, требования к дисковой области могут быть значительными. Выделите до 150 % от размера всех репозиториев для индексирования. В TFS 2018 с обновлением 3 и более поздних версий пользователи могут исключить папки из своих репозиториев для индексирования, чтобы оптимизировать место на диске, используемое поиском.

зависимостях ПО;

Поиск имеет следующие зависимости, которые устанавливаются автоматически в рамках конфигурации:

Примечание

  • Поиск использует измененную версию Elasticsearch. Он работает только с этой измененной версией
  • Более новая версия Elasticsearch поставляется с TFS 2018 с обновлением 2 и далее, а также Azure DevOps Server. Все содержимое переиндексируется после установки при обновлении с более старой версии результатов поиска. В зависимости от объема содержимого (файлы кода, рабочие элементы и вики-страницы) повторное индексирование может занять некоторое время.
  • Системный администратор или администратор сервера должен убедиться, что JRE сервера поддерживается и обновляется в соответствии с рекомендациями поставщика программного обеспечения. См. также примечания по установке Java , приведенные ниже.
  • Azul Zulu OpenJDK не устанавливает обновления автоматически
  • Убедитесь, что вы регулярно проверяете наличие обновлений

Заметки об установке Java

  • Если мастер настройки поиска не обнаруживает рабочую установку среды выполнения Java (JRE), он предоставляет возможность скачать и установить последнюю поддерживаемую версию. Для скачивания требуется подключение к Интернету. Если на целевом сервере нет подключения к Интернету, необходимо скачать и установить JRE вручную, прежде чем пытаться установить поиск.
  • Версии поиска до Azure DevOps Server использовали среду выполнения Oracle Server Java. В Azure DevOps Server по умолчанию JRE — Azul Zulu OpenJDK.
  • Во время установки мастер задает переменную среды JAVA_HOME , чтобы она указывала на папку установки JRE. Мастер настройки может не обнаружить существующую установку JRE, если она настроена неправильно, или если параметр JAVA_HOME указывает на более раннюю версию, чем требуется при поиске.

Примечание

Мы не рекомендуем устанавливать Elasticsearch на компьютере, где ресурсы совместно используются, особенно в крупной корпоративной среде с несколькими уровнями приложений. Вместо этого рекомендуется настроить Elasticsearch на отдельном выделенном компьютере. Таким образом, среда JAVA не используется для других целей.

  • Если версия JRE выше минимального значения, требуемого для поиска, а для переменной JAVA_HOME была задана эта версия, рекомендуется установить поиск на отдельном сервере. Если изменить значение переменной JAVA_HOME , это может привести к сбою другого установленного программного обеспечения.

  • Если версия JRE сервера равна минимальному значению, требуемому для поиска, и она не распознается мастером настройки, задайте для нее значение переменной JAVA_HOME этой версии. Это действие описано в руководстве по установке JRE. Затем повторно запустите мастер настройки.

  • Если вы не можете установить версию Java, необходимую для поиска из-за других зависимостей, можно выполнить следующие задачи:

    • Установите Azure DevOps Server с расширением поиска на сервере, на котором не установлен Java. Мы не рекомендуем использовать это действие для более чем 250 пользователей или использования ЦП более 50 % или нескольких ATS)
    • Установка поиска и JRE на отдельном сервере из Azure DevOps Server

Примечание

Если вы используете Oracle Server JRE 8, который был по умолчанию для поиска в TFS (Azure DevOps Server не использует Oracle Server JRE 8), помните следующее:

  • Поиск не использует и не поддерживает какие-либо коммерческие функции Server JRE 8. Поэтому во время настройки поиска коммерческие функции JRE сервера не активируются и не разблокируются.
  • Если вы решили продолжить работу с Oracle JRE, обратитесь к Oracle для подписки Java SE, чтобы вы могли продолжать получать обновления JRE.

Переход на Zulu OpenJDK из Oracle Server JRE

Поиск в Azure DevOps Server поддерживает как Azul Zulu OpenJDK, так и Oracle JRE, что позволяет выбирать между ними в зависимости от ваших потребностей. При выборе JRE во время установки Azure DevOps Server по умолчанию — Azul Zulu OpenJDK 8.

Чтобы изменить azul Zulu OpenJDK, сделайте следующее:

Поток миграции Java

Дополнительные сведения см. в статье GitHub Code-Search миграции Java.

Примечание

Доступность функций

  • Поиск рабочих элементов доступен в TFS 2017 с обновлением 2 и более поздних версий.
  • Вики-поиск доступен в TFS 2018 с обновлением 2 и более поздних версий.
  • Рабочий элемент и поиск вики-сайта — это встроенные расширения, установленные по умолчанию во время настройки поиска.
  • Поиск кода доступен в TFS 2017 и более поздних версиях и является функцией согласия. Позже можно установить поиск кода из локальной коллекции. Перейдите в локальную коллекцию (http://{server}/_gallery) от имени администратора. Пользователи, не являющиеся администраторами, также могут запросить расширение для Azure DevOps Server. Дополнительные сведения см. в разделе "Установка расширения " в документации по локальной коллекции.

Настройте служба с помощью выделенных страниц в мастере настройки сервера при установке Azure DevOps Server. После этого можно отменить настройку поиска , снова запустив мастер настройки сервера или запустив мастер настройки поиска. При настройке поиска учитывайте рекомендации по настройке.

Рекомендации по настройке

При настройке поиска учитывайте следующие сведения:

  • Рабочий элемент и поиск вики-сайта включены по умолчанию при настройке поиска. Эти расширения можно удалить позже, если это необходимо, на странице "Управление расширениями" Azure DevOps Server

  • Расширение "Поиск кода" должно быть установлено для каждой коллекции Azure DevOps Server, в которой вы хотите использовать ее. При первоначальной настройке поиска можно установить флажок для автоматической установки расширения "Поиск кода" для существующих и новых коллекций проектов , чтобы автоматизировать этот процесс.

    • Если флажок не установлен для установки расширения "Поиск кода" для всех коллекций проектов, pcA может установить его из локальной коллекции. Убедитесь, что вы перейдете в локальную коллекцию (http://{Server}/_gallery) со страницы портала Azure DevOps Server. Дополнительные сведения см. в разделе "Установка расширения " в документации по локальной коллекции.

Использование второго жесткого диска и удаленного сервера

  • Для максимальной производительности папка индекса поиска должна находиться на отдельном быстром жестком диске и поддерживается быстрым хранилищем, например твердотельным накопителем (SSD) или сетью хранения данных (SAN). Выделите до 150 % от размера всех репозиториев для индексирования. Это худший сценарий. Фактическое пространство зависит от объема и типа файлов кода, а также количества рабочих элементов и вики-страниц в этой коллекции.

    • Если не указано, служба индексирования и подсистема Elasticsearch используют учетную запись сетевой службы во время установки для создания и доступа к файлам индекса. Если выбрана другая учетная запись, она должна иметь разрешение на вход в качестве службы .
    • Ограничьте разрешения для диска индекса и папки, чтобы защитить индекс от случайного или вредоносного изменения или удаления. Настройка соответствующих параметров безопасности для службы
  • При настройке поиска сервера с несколькими уровнями приложений (ATS) убедитесь, что он установлен на отдельном сервере. После установки поиска на удаленном сервере используйте мастер настройки на любом из серверов AT, чтобы связать удаленный экземпляр поиска с экземпляром Azure DevOps Server. При отмене настройки поиска в будущем необходимо использовать мастер настройки на том же сервере AT, где изначально была выполнена конфигурация.

Обновление сервера

  • Если вы выполняете предварительное обновление на сервере, на котором служба поиска уже настроена, необходимо полностью перенастроить поиск еще раз, чтобы избежать повреждения рабочего экземпляра. Нет возможности настроить поиск в рамках предварительного обновления. Вместо этого настройте его после завершения предварительного обновления. Вы можете снять флажок "Автоматически устанавливать и настраивать поиск кода" для всех существующих и новых коллекций во время настройки. Вместо этого установите расширение поиска только для одной или двух коллекций после завершения настройки.

  • Если вы выполняете обновление рабочей среды на сервере, на котором настроен поиск и вы хотите сохранить его, установите флажок рядом с пунктом "Установить и настроить поиск". Мастер обнаруживает существующий экземпляр поиска и автоматически выбирает существующий экземпляр поиска и предварительно заполняет текущий URL-адрес служба . Используйте параметр "Установить новый экземпляр поиска ", только если вы хотите настроить новый экземпляр поиска на том же сервере. Настройка нового экземпляра приводит к повторному индексации всего кода, рабочих элементов и вики-сайта, что в зависимости от размера коллекций может занять некоторое время. Во время индексирования пользователи могут видеть частичные результаты поиска

  • Если вы обновляете сервер до нового оборудования, у вас есть два следующих варианта. Выберите из этих параметров в зависимости от того, как ранее был настроен поиск:

    • Если поиск находится на отдельном сервере от Azure DevOps Server, необходимо нажать кнопку "Установить и настроить поиск" в мастере настройки сервера, а затем выбрать "Использовать существующий экземпляр поиска" и указать URL-адрес существующего экземпляра поиска, чтобы завершить настройку поиска.
    • Если поиск настроен вместе с экземпляром Azure DevOps Server на старом сервере, необходимо нажать кнопку "Установить и настроить поиск" в мастере настройки сервера. Затем снова выберите "Установить новый экземпляр поиска" на новом сервере, если вы хотите продолжить совместное поиск и Azure DevOps Server. Все индексы поиска для всех коллекций создаются повторно, что в зависимости от размера каждой коллекции может занять некоторое время.
  • Если вы отсоединяете коллекцию от одного экземпляра Azure DevOps Server, чтобы присоединить его к другому экземпляру, выполните следующие действия.

    1. Отключение коллекции от экземпляра исходного Azure DevOps Server
    2. Настройка поиска в целевом экземпляре Azure DevOps Server (если еще не сделано)
    3. Присоединение коллекции к целевому Azure DevOps Server
    4. Удалите расширения поиска, такие как Code, Work item или Wiki для коллекции из локальной коллекции в Azure DevOps Server
    5. Установите расширение поиска для коллекции из локальной коллекции, перейдя к ней из целевого экземпляра Azure DevOps Server

Установка или обновление поиска на отдельном сервере

Чтобы установить или обновить поиск на отдельном или удаленном сервере, как правило, при наличии более 250 пользователей выполните следующие действия.

  1. При установке Azure DevOps Server на основном сервере установите и настройте флажок "Поиск" на странице поиска мастера настройки сервера.

  2. Выберите параметр "Использовать существующий служба ".

  3. Используйте ссылку на пакет служба , указанную в мастере, для доступа к набору файлов установщика поиска на локальном компьютере. Затем скопируйте эти файлы на удаленный сервер.

    Отдельная установка сервера

  4. Следуйте инструкциям в файлеReadme.txt, расположенном в наборе файлов установщика, чтобы установить или обновить служба на удаленном сервере.

  5. После завершения установки скопируйте полученный URL-адрес сервера поиска в поле "URL-адрес поиска" мастера настройки, работающего в экземпляре Azure DevOps Server.

  6. После завершения обеих установок настройте соответствующие параметры безопасности для обоих серверов.

В служба используется измененная версия Elasticsearch (термины "Поиск" и "Elasticsearch" используются взаимозаменяемо для остальной части этого раздела). Администраторы должны предоставить учетные данные независимо от того, находится ли служба на том же компьютере, что и Azure DevOps Server, или на отдельном компьютере. Это действие является частью настройки функции поиска с помощью сервера или мастера настройки поиска. Эти учетные данные являются новыми и не связаны с существующей учетной записью или учетными данными сервера. Они используются для настройки и подключения к служба . Эти новые наборы учетных данных обеспечивают обычную проверку подлинности в службе поиска.

Search credentials

Для обновления с TFS 2018 с обновлением 1.1 до TFS 2018 с обновлением 3 или для перенастройки поиска только данные пользователя автоматически заполняются, а администраторы должны предоставить учетные данные пароля. Администраторы могут указать другое имя пользователя и пароль, если они хотят. Если служба находится на том же компьютере, что и Azure DevOps Server, администраторы могут предоставить новый набор учетных данных в мастере настройки, чтобы настроить служба , если это необходимо. Однако если служба находится на удаленном компьютере, администраторы должны сначала предоставить новые учетные данные скрипту установки служба .

Примечание

  • Значения имени пользователя и пароля должны содержать от 8 до 64 символов. Хотя пароль можно присвоить любому значению, имя пользователя может содержать только буквенно-цифровые и символы подчеркивания.
  • Учетные данные поиска проходят проверку подлинности только пользователей и убедитесь, что пользователи, не прошедшие проверку подлинности, не могут получить доступ к конечной точке Elasticsearch. Однако Elasticsearch не поддерживает HTTPS, поэтому эти учетные данные отправляются по сети в виде строк в кодировке Base64. Если существует возможность промежуточного доступа к запросу, настройте соответствующие параметры безопасности на основе корпоративных требований к безопасности и соответствию требованиям.
  • Цель — ограничить доступ к поиску и индексации определенным пользователям или группам пользователей с помощью шифрования через IPSec, как описано ниже.

Рассмотрите следующие методы использования IPSec для защиты Elasticsearch на сервере Windows:

  • Настройте безопасность только с проверкой подлинности:

    • Гарантирует, что только авторизованные пользователи могут получить доступ к порту Elasticsearch. Для этого требуются только правила на стороне службы (правила брандмауэра только на сервере, на котором выполняется Elasticsearch).
    • Предварительные требования: Azure DevOps Server необходимо настроить с помощью учетной записи домена
    • Выполните действия, описанные в разделе "Создание правил брандмауэра, разрешающих трафик, защищенный IPsec"
  • Настройте безопасность с проверкой подлинности, защитой целостности и шифрованием:

    • Обеспечивает применение шифрования и защиты целостности вместе с проверкой подлинности. Для этого требуются как клиентские, так и служебные правила (правила брандмауэра на сервере, на котором выполняется Elasticsearch, и все серверы уровня приложений Azure DevOps Server).
    • Предварительные требования: Azure DevOps Server необходимо настроить с помощью учетной записи домена
    • Выполните действия, описанные в разделе "Изоляция сервера путем обязательного шифрования и членства в группах"
  • TFS 2017 с обновлением 1 включает обновленные компоненты поиска.

    • Если служба была настроена в TFS 2017 RTM во время обновления, служба компоненты обновляются автоматически, если служба был настроен в TFS, который обновляется.
    • Если поиск был настроен на удаленном сервере, следуйте инструкциям по его обновлению.
  • TFS 2017 с обновлением 2 включает поиск рабочих элементов. Он использует ту же служба , что и поиск кода.

    • Если служба была настроена в TFS 2017 RTM/Update1 во время обновления, компоненты служба обновляются автоматически, если служба настроен на обновляемом TFS.
    • Если поиск был настроен на удаленном сервере, следуйте инструкциям по его обновлению.
  • TFS 2018 с обновлением 2 включает обновленные компоненты поиска и вики-поиск.

    • Если служба была настроена в TFS 2017 RTM, Update1, Update2 или TFS 2018 RTM во время обновления, служба компоненты обновляются автоматически, если служба настроен на обновляемом 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 Server

  1. Удалите расширение поиска для каждой коллекции, в которой она установлена. Перейдите на страницу "Управление расширениями" каждой коллекции в экземпляре Azure DevOps Server:

    Снимок экрана: проверка установки расширения

    Снимок экрана: проверка установленного расширения

  2. Удалите функцию поиска:

    • Откройте консоль администрирования Azure DevOps Server
    • В области слева выберите имя сервера.
    • В правой области нажмите кнопку "Удалить компонент"
    • В диалоговом окне "Удалить компонент" выберите служба и нажмите кнопку "Удалить".
  3. Удалите службу Elasticsearch:

    • Открытие командной строки от имени администратора
    • Измените каталог:
      • Для TFS 2017 RTM cd "C:\Program Files\Microsoft Team Foundation Server 15.0\Search\ES\elasticsearch-1.7.1-SNAPSHOT\bin"
      • Для TFS 2017 с обновлением 1 cd "C:\Program Files\Microsoft Team Foundation Server 15.0\Search\ES\elasticsearch-2.4.1\bin"
      • Для TFS 2018 с обновлением 2 и далее, а также Azure DevOps Server,cd "C:\Program Files\Microsoft Team Foundation Server 15.0\Search\ES\elasticsearch-5.4.1\bin"
    • Удалите службу:
      • Для TFS 2017 "service.bat remove"
      • Для TFS 2018 и Azure DevOps Server"elasticsearch-service.bat remove"
  4. Удаление данных поиска:

    • Удаление содержимого расположения, описанного переменной среды SEARCH_ES_INDEX_PATH
  5. Удаление переменных среды:

    • Удаление переменной среды "SEARCH_ES_INDEX_PATH"
    • Удалите переменную среды (эта переменная "ES_HEAP_SIZE" среды устарела для TFS 2018 с обновлением 2 и более поздних версий и Azure DevOps Server)

Отмена настройки поиска при настройке на отдельном сервере

  1. Удалите расширение поиска, например code, Work item или Wiki, для каждой коллекции, в которой она установлена. Перейдите на страницу "Управление расширениями" каждой коллекции в экземпляре Azure DevOps Server.

    Снимок экрана: проверка установки расширения

    Снимок экрана: проверка установки расширения

  1. Удалите функцию поиска:

    • Открытие диалогового окна "Удалить компонент" консоли администрирования
    • В левой области выберите имя Azure DevOps Server
    • В правой области нажмите кнопку "Удалить компонент"
    • В диалоговом окне "Удалить компонент" выберите служба и нажмите кнопку "Удалить".
  2. Удалите службу Elasticsearch и данные:

    • Открытие PowerShell от имени администратора
    • Откройте папку "Настройка Search.ps1" вместе с остальными файлами, необходимыми для удаленной установки поиска.
    • Запустите скрипт еще раз с параметром удаления:
      • Для TFS 2017 RTM "Configure Search.ps1 -RemoveTFSSearch"
      • Для TFS 2017 с обновлением 1 и более поздних версий, а также Azure DevOps Server,"ConfigureTFSSearch.ps1 -remove"

Ограничения поиска

Поиск Azure DevOps Server имеет следующее ограничение:

  • Если вы выполняете операцию аварийного восстановления (DR) и перемещаете сервер обратно в более ранний моментальный снимок базы данных SQL, переиндексируйте все коллекции.