Перемещение или клонирование с одного оборудования на другое для локальной среды Azure DevOps

Azure DevOps Server 2022 г. | Azure DevOps Server 2020 г. | Azure DevOps Server 2019 г.

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

Чтобы клонировать Azure DevOps Server развертывание, выполните те же действия, что и перемещение, а также несколько дополнительных действий.

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

Важно!

В некоторых случаях может потребоваться изменить домен Azure DevOps Server развертывания, а также его оборудование. Изменение домена — это перемещение на базе среды. Сочетать эти два типа перемещения не следует. Сначала выполните перемещение оборудования, а затем измените среду.

Проверить свои разрешения

Для успешного перемещения Azure DevOps Server необходимо быть администратором обоих наборов оборудования (старого и нового). Кроме того, вам потребуется быть администратором (или иметь эквивалентные разрешения) для Azure DevOps Server и всего программного обеспечения, от которого зависит развертывание: SQL Server, отчетов и любого другого программного обеспечения, с которым взаимодействует развертывание, например Project Server.

Убедитесь, что вы являетесь участником следующих групп:

  • Серверы: администраторы (локальная группа «Администраторы» или эквивалент)
  • Azure DevOps Server: администраторы Team Foundation и пользователи консоли Администратор
  • SQL Server: системный администратор

Если вы не входите в одну или несколько из этих групп, получите разрешения.

Резервное копирование баз данных и ключа шифрования

  1. Откройте консоль администрирования для Azure DevOps Server и на странице Запланированные резервные копии создайте полную резервную копию. В резервную копию будет включено все, что настроено для резервного копирования в плане копирования, однако сделано это будет немедленно, а не в соответствии с графиком из плана. Если в развертывании используется отчетность, можно создать резервную копию ключа шифрования в рамках этого набора резервных копий.

    На время выполнения задания окно можно закрыть

    (Если резервное копирование не настроено, необходимо создать план , прежде чем можно будет создать полную резервную копию.)

  2. После создания резервной копии убедитесь, что резервная копия доступна на устройстве хранения или в общей сетевой папке и что есть доступ к этой резервной копии с нового оборудования.

Установка и настройка SQL Server на новом сервере уровня данных

  • Установите SQL Server на новом сервере и убедитесь, что он работает. Если в предыдущем развертывании использовалась отчетность, не забудьте включить компоненты служб отчетов и служб анализа. Необходимо установить версию и выпуск, которые использовались ранее, включая пакеты обновления и накопительные пакеты обновления.

    Установка SQL Server 2008 R2 — компоненты

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

    Дополнительные сведения о вариантах установки и настройки SQL Server см. здесь.

    После установки SQL Server, если развертывание включает отчетность, откройте SQL Server Management Studio и отсоедините базы данных ReportServer и ReportServerTempDB. В противном случае вы не сможете восстановить эти базы данных с помощью резервной копии, созданной для Azure DevOps Server баз данных.

    Существующие базы данных перед восстановлением необходимо отсоединить

Установка и настройка программного обеспечения на новом сервере уровня приложений

Чтобы настроить новый сервер или серверы для Azure DevOps Server, необходимо сначала установить и настроить программное обеспечение, необходимое для его поддержки. Это программное обеспечение включает следующие компоненты:

  • поддерживаемая конфигурацией развертывания операционная система;

  • Установите и настройте Windows, IIS (если они не настроены по умолчанию) и убедитесь, что сервер и его программное обеспечение работают. 

    Дополнительные сведения см. в разделе Требования к системе для Azure DevOps Server.

Восстановление баз данных Azure DevOps Server

Чтобы восстановить Azure DevOps Server базы данных с помощью средства восстановления, необходимо установить, но не настроить Azure DevOps Server на новом сервере уровня данных, а затем использовать функцию восстановления в узле Запланированные резервные копии.

Если вы хотите восстановить Azure DevOps Server базы данных вручную с помощью SQL Server средств восстановления, это возможно, но это более сложная процедура. Кроме того, потребуется вручную «разморозить» базы данных в новом развертывании. Мастер восстановления в Azure DevOps Server автоматически выполняет это в процессе восстановления, но эта функция не является частью средств восстановления SQL Server.

  1. Запустите установочный носитель Azure DevOps Server. На странице Программа установки Team Foundation Server нажмите кнопку Установить.

  2. После завершения установки откроется центр конфигурации Team Foundation Server . Закройте его.

    Консоль администрирования открывается автоматически в ненастроенном состоянии. Это ожидаемое поведение.

  3. Чтобы запустить мастер восстановления, откройте консоль администрирования для Azure DevOps Server и откройте запланированные резервные копии.

    Запуск мастера восстановления

  4. Укажите путь к набору резервных копий и выберите набор, созданный после остановки предыдущего развертывания.

    Выберите сетевой путь, а затем набор для восстановления

  5. Завершите работу мастера и восстановите базы данных в новом экземпляре SQL Server.

    Базы данных восстанавливаются на новом сервере

(Вариант для клонирования) Изменение настройки идентификаторов серверов и повторное сопоставление баз данных

Примечание

Метод PrepareClone рекомендуется использовать перед созданием нового Azure DevOps Server развертывания с использованием резервной копии базы данных, уже существующей в рабочей среде на другом сервере. Эта команда больше не требуется, так как мы включили ее функции в сценарии предварительного обновления и клонирования в мастере настройки.

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

  1. Откройте окно командной строки от имени администратора и измените каталоги на Диск:%programfiles%\TFS 12.0\Tools. Откройте окно командной строки и введите следующее:

  2. Выполните команду TFSConfig PrepareClone , чтобы удалить сведения о запланированных резервных копиях и ресурсах отчетов.

    TFSConfig PrepareClone /SQLInstance:ServerName /DatabaseName:DatabaseName /notificationURL: ApplicationTierURL
    
  3. Выполните команду TFSConfig ChangeServerID , чтобы изменить идентификаторы GUID сервера, связанные с базами данных. Идентификаторы GUID должны быть уникальными в Azure DevOps Server развертывании.

    TFSConfig ChangeServerID /SQLInstance:ServerName] /DatabaseName:ConfigurationDatabaseName [/ProjectCollectionsOnly] [/ConfigDBOnly] [/usesqlalwayson]
    
  4. Выполните команду TFSConfig RemapDBs, чтобы перенаправить клонированные Azure DevOps Server в базы данных.

    TFSConfig RemapDBs /DatabaseName:ServerName;DatabaseName /SQLInstances:ServerName1,erverName2 [/AnalysisInstance:ServerName] [/AnalysisDatabaseName:DatabaseName] [/review] [/continue] [/usesqlalwayson]
    

Настройка сервера уровня приложений

  1. В консоли администрирования для Azure DevOps Server выберите Настроить установленные компоненты, чтобы запустить центр конфигурации.

  2. Запустите мастер "Только Application-Tier" и в поле Базы данных укажите новый экземпляр SQL Server, в котором восстановлены базы данных Azure DevOps Server. Выберите в списке базу данных Tfs_Configuration.

    Выбор резервного набора данных SQL Server и базы данных

  3. Прежде чем закрыть последнюю страницу мастера, поищите символ «i». Он указывает на сведения, которые могут потребоваться в дальнейшем. Последняя страница также содержит расположение журнала конфигурации.

    Обратите внимание на проблемы (если есть) и расположение файла журнала

Обновление URL-адресов Azure DevOps Server

  1. Перейдите к узлу уровня приложения и просмотрите уведомление и URL-адреса веб-портала. Обратите внимание, что они по-прежнему указывают на расположение старого развертывания. Обновите их.

    Уведомление и URL-адреса устарели

  2. После обновления URL-адресов в соответствии с именем нового сервера, проверьте сведения.

    В URL-адресе сервера по-прежнему используется localhost

Обновление всех учетных записей служб

Необходимо обновить учетную запись службы для Azure DevOps Server (TFSService) и учетной записи источников данных (TFSReports). Чтобы обеспечить соответствие удостоверений и формата учетных записей на новом сервере, необходимо обновить данные, даже если эти учетные записи не менялись.

  1. Откройте окно командной строки от имени администратора и измените каталоги на Диск:\%programfiles%\TFS 12.0\Tools.

  2. В командной строке введите следующую команду, чтобы добавить учетную запись службы для Azure DevOps, где DatabaseName — это имя базы данных конфигурации (по умолчанию TFS_Configuration):

    TfsConfig Accounts /add /AccountType:ApplicationTier /account:AccountName/SQLInstance:ServerName/DatabaseName:DatabaseName

  3. В командной строке введите следующую команду, чтобы добавить учетную запись источника данных:

    TfsConfig Accounts /add /AccountType:ReportingDataSource /account:AccountName/SQLInstance:ServerName/DatabaseName:DatabaseName

    Дополнительные сведения см. в разделе Команда учетных записей.

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

Теперь необходимо перенаправить серверы сборки, чтобы они указывали на перемещенную Azure DevOps Server развертывание.

  1. На всех серверах сборок откройте консоли администрирования и остановите службы сборок.

  2. В свойствах службы сборки обновите свойства взаимодействия.

    Остановите службу, затем внесите изменения

Настройка служб отчетов и служб Analysis Services

Если в развертывании используется сервер отчетов, необходимо перенаправить Azure DevOps Server в его расположение, перезапустить хранилище и вручную перестроить базу данных для служб Analysis Services. Если отчеты не используются, пропустите эту процедуру.

  1. Перейдите к узлу «Отчеты». Перечислены старые значения сервера отчетов. Их нужно обновить.

    Отчеты по-прежнему указывают на старый сервер

  2. Измените значения на всех трех вкладках, чтобы они указывали на новый сервер. Убедитесь, что предоставлена правильная информация для учетной записи источников данных в новом развертывании.

    Проверьте правильность информации на всех трех вкладках

  3. Выберите Запустить задания , чтобы перезапустить отчеты.

  4. Нажмите кнопку Начать перестроение , чтобы перестроить хранилище.

Проверка разрешений для учетных записей пользователей, групп и служб

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

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

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

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

Не знаете, какие здесь должны быть группы и разрешения? Дополнительные сведения см. в разделах Добавление пользователей в проекты, Настройка разрешений администратора для коллекций проектов, Установка разрешений администратора для Azure DevOps Server и Учетные записи служб и зависимости в Azure DevOps Server.

Обновление кэша данных на клиентских компьютерах

Уведомить пользователей

Теперь, когда вы переместили Azure DevOps Server, необходимо сообщить пользователям, как подключиться к перемещенной среде. В частности, необходимо сообщить им следующее:

  • Имя нового сервера и URL-адрес веб-портала, чтобы они могли повторно подключиться к своим проектам.

  • Новые имена базы данных для отчетов, если развертывание подразумевает отчеты.

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

    git remote set-url <remote name> <new URL>
    

    Пользователи могут просмотреть URL-адрес для каждого клона, просматривая проект на вкладке Обозреватель.

    Копирование URL-адреса, по которому репозиторий будет клонирован вручную

Настройка резервного копирования.

Для старого развертывания были запланированы резервные копии, однако эти запланированные резервные копии не изменились в соответствии с перемещенным развертыванием. Их необходимо настроить.

  • В консоли администрирования перейдите к узлу Запланированные резервные копии и перенастройте запланированные резервные копии для резервного копирования Azure DevOps Server баз данных на новом сервере. Дополнительные сведения см. в статье Создание расписания и плана резервного копирования.

Вопросы и ответы

Вопрос. Мне нужно изменить домены, а не физические серверы. Можно ли это сделать?

Ответ. Да. Это называется перемещением на основе среды, и шаги можно найти здесь. Не пытайтесь объединить перемещение на основе среды с перемещением на основе оборудования. Сначала выполните перемещение оборудования, а затем измените среду.

Вопрос: Я только что понял, что я хочу продолжать использовать свои старые Azure DevOps Server после перехода на новое оборудование. Можно ли это сделать?

A: Да, но очень важно сразу же выполнить дополнительные действия. В идеале эти действия нужно было выполнить в ходе перемещения или клонирования. Это лучший способ избежать риска повреждения одного или обоих развертываний. Если оба сервера работают, это может привести к повреждению, особенно если они указывают на одни и те же ресурсы отчетов.

Для устранения этой проблемы:

  1. Выполнение команды TFSConfig PrepareClone на новом сервере

  2. Выполнение команды TFSConfig ChangeServerID на новом сервере

  3. Выполнение команды TFSConfig RemapDBs на новом сервере

Вопрос. У меня есть развертывание, интегрированное с Project Server. Нужно ли выполнять какие-либо дополнительные действия, чтобы заставить его работать с перемещенными Azure DevOps Server?

A: Да, после завершения перемещения оборудования необходимо использовать команду TFSAdmin ProjectServer/RegisterPWA с параметрами /tfs, /force и /pwa, чтобы повторно зарегистрировать Azure DevOps Server в Project Server. Дополнительные сведения об интеграции Azure DevOps Server с Project Server см. здесь.