Перемещение из одной среды в другую для локальной среды 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, ее нельзя удалить или сопоставить с ней другую учетную запись. Например, при перемещении domainA/UserA в DomainB/UserB команда удостоверений будет работать для переноса пользователя только в том случае, если domainB/UserB еще нет в Azure DevOps Server.
  • Так как члены локальной группы администраторов автоматически добавляются в Azure DevOps Server, перед изменением домена или среды удалите все учетные записи, которые вы хотите перенести из этой группы.

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

Мы рассмотрим действия по изменению среды развертывания Azure DevOps Server в следующих разделах:

  1. Проверка разрешений и учетных записей
  2. Остановка служб Azure DevOps Server
  3. Резервное копирование данных
  4. Присоединение Azure DevOps Server к новому домену
  5. Перемещение Azure DevOps Server учетных записей пользователей и служб
  6. Настройка служб Reporting и Analysis Services
  7. Перезапуск служб Azure DevOps Server

Проверка разрешений и учетных записей

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

Проверка разрешений уровня администратора

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

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

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

Удаление переносимых учетных записей из локальной группы "Администраторы"

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

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

Совет

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

Проверка удостоверений

  1. На сервере уровня приложений для Azure DevOps откройте окно командной строки с правами администратора, перейдите в папку %ProgramFiles%\Microsoft Visual Studio 12.0 Team Foundation Server\Tools и выполните следующую команду, чтобы просмотреть текущие удостоверения в системе:

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

Остановка служб

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

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

  2. Введите следующую команду TFSServiceControl :

    TFSServiceControl quiesce

Создание резервных копий баз данных и ключа шифрования служб отчетов SQL Server

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

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

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

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

Присоединение сервера уровня приложений к новому домену

  1. На каждом сервере откройте свойства компьютера.

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

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

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

    Примечание

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

Перемещение учетных записей пользователей и учетных записей служб

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

Если имена учетных записей одинаковы в обоих доменах, и единственное отличие состоит в имени домена, можно использовать пакетный режим команды Identities в TFSConfig, чтобы изменить сразу все удостоверения. В противном случае необходимо изменить удостоверения по отдельности с указанием другого целевого имени учетной записи, как описано ниже.

  1. На сервере уровня приложений для Azure DevOps откройте окно командной строки с разрешениями администратора, перейдите в папку %ProgramFiles%\Microsoft Visual Studio 12.0 Team Foundation Server\Tools и выполните следующую команду, чтобы изменить идентификаторы служб (SID) для учетной записи службы на новый домен:

    TFSConfig identities /change /fromdomain:OldComputerorDomainName /todomain:NewDomainName /account:OldTFSServiceAccount /toaccount:NewTFSServiceAccount
    

    Предупреждение

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

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

    TFSConfig Identities /change /fromdomain:OldDomainName /todomain:NewDomainName
    

    При этом учетные записи будут обработаны пакетным образом.

  3. Если вы новый домен содержит одно или несколько удостоверений, в которых имя изменяется между средами, необходимо вручную обновить идентификаторы безопасности для каждого из этих удостоверений. Например, если учетная запись пользователя Christie Church в старой среде была Fabrikam\CChurch, а в новой среде будет NewFabrikam\ChristieC, ее идентификатор SID необходимо обновить вручную. Для каждой учетной записи, для которой необходимо это сделать, введите следующую команду:

    TFSConfig Identities /change /fromdomain:OldDomainName /todomain:NewDomainName /account:OldAccountName /toaccount:NewAccountName
    
  4. Теперь выполните следующую команду, чтобы обновить учетную запись службы:

    TFSConfig Accounts /change /AccountType:ApplicationTier /account:AccountName /password:Password
    
  5. Если в развертывании используется отчетность, выполните следующую команду для обновления учетной записи источника данных, используемой для отчетов:

    TFSConfig Accounts /change /AccountType:ReportingDataSource /account:AccountName /password:Password
    
  6. Если в развертывании используется прокси-сервер Azure DevOps, выполните следующую команду, чтобы обновить учетную запись службы, используемую для прокси-сервера:

    TFSConfig Accounts /change /AccountType:Proxy /account:AccountName /password:Password
    

    Примечание

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

  7. Если среда развертывания интегрирована с Project Server, может потребоваться выполнить дополнительные действия, чтобы настроить необходимые для работы разрешения для учетных записей служб. Дополнительные сведения см. в разделах Назначение разрешений для поддержки интеграции TFS-Project Server и Настройка интеграцииTFS-Project Server.

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

Если в развертывании не используются отчеты, можно пропустить эту процедуру.

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

  1. Откройте консоль администрирования Для Azure DevOps, перейдите в узел Отчеты и измените параметры.

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

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

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

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

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

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

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

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

Перезапуск служб

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

  1. На Azure DevOps Server компьютере уровня приложения откройте окно командной строки с разрешениями администратора и измените каталоги на Диск:\%programfiles%\TFS 12.0\Tools.

  2. Введите следующую команду TFSServiceControl :

    TFSServiceControl unquiesce

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

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

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