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

Службы Azure DevOps

Прежде чем использовать ELM, убедитесь, что в службах Azure DevOps и GitHub Enterprise Cloud с размещением данных выполняются следующие требования.

Замечание

Настройка предварительных требований использует как портал Azure DevOps, так и интерфейс GitHub (для однократных задач, таких как создание подключения к службе, регистрация агента и создание маркера PAT), а также командную строку (для установки инструментов). Каждый раздел помечен так, чтобы вы знали, где работать.

Требования к исходному и целевому репозиторию

  • Миграция должна происходить из служб Azure DevOps (dev.azure.com). Azure DevOps Server не поддерживается.
  • Целевая организация GitHub Enterprise Cloud с локализацией данных уже должна существовать.
  • Целевое GitHub имя репозитория не должно использоваться.

Чтобы получить GUID репозитория Azure DevOps, выберите одну из следующих вкладок:

az repos show --repository <repo-name> --query id -o tsv

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

Требования к доступу

Службы Azure DevOps

Требование Сведения
Разрешение на корпоративную миграцию в реальном времени Для разрешения Enterprise Live Migrations: Manage Migrations должно быть установлено значение Allow на уровне репозитория. Чтобы проверить, перейдите в раздел Project Settings>Repositories>Security и убедитесь, что ваша группа или учетная запись пользователя имеют это разрешение. Если вы этого не сделали, обратитесь к администратору коллекции Project (PCA) или администратору Project (PA), чтобы запросить доступ. Дополнительные сведения см. в разделе "Настройка разрешений репозитория Git".
Доступность локального агента Linux Если нет доступного собственного агента Linux, PCA или пользователь, имеющий разрешение на администрирование очереди агентов, должен создать и зарегистрировать его.
Разрешение на создание подключения службы Пользователь с соответствующими разрешениями должен создать подключение службы, использующее GitHub PAT.

GitHub Enterprise Cloud с локализацией данных

  • Администратор GitHub Enterprise должен создать личный маркер доступа (PAT) и создать подключение к службе в Azure DevOps. Затем администратор предоставляет идентификатор подключения службы пользователю, выполняющему миграцию.

Настройка проверки подлинности

Создайте два PAT в GitHub:

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

Создание подключения службы PAT и подключения к службе

  1. На GitHub перейдите в раздел Settings>Developer Settings и выберите Личные токены доступа.

  2. В качестве администратора GitHub Enterprise создайте классический PAT со следующими разрешениями:

    • repo (все)
    • workflow
    • read:org
    • read:user
    • admin:enterprise (все)
  3. Скопируйте PAT и сохраните его безопасно.

  4. Выберите Настроить единый вход (SSO), чтобы предоставить PAT доступ к целевой организации.

  5. Войдите в организацию Azure DevOps.

  6. Перейдите к параметру Project Settings>Pipelines>Service connections.

  7. Выберите Новое подключение службы, выберите GitHub Enterprise Server, а затем выберите Далее.

    Снимок экрана: форма подключения службы enterprise Server GitHub в диалоговом окне подключения службы Azure DevOps.

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

  9. Введите URL-адрес GitHub Enterprise и вставьте GitHub PAT из шага 3.

  10. Проверьте и сохраните подключение к службе.

  11. Откройте подключение службы и скопируйте идентификатор. Этот идентификатор требуется при запуске миграции.

Создайте личный PAT для миграции в GitHub (в портале GitHub)

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

  1. На GitHub перейдите в раздел Settings>Developer Settings и выберите Личные токены доступа.

  2. Создайте классический PAT со следующими областями:

    • repo (полностью)
    • workflow
    • admin:org
    • user:email
  3. Скопируйте PAT и сохраните его безопасно.

Обязательные инструменты

Действия, описанные в этом разделе, используют командную строку. Установите Azure CLI и расширение cli Azure DevOps на компьютере, используемом для выполнения команд миграции.

  1. Установите Azure CLI. Дополнительные сведения см. в статье "Установка Azure CLI".

    Например, откройте Visual Studio Code и выполните следующую команду:

    winget install -e --id Microsoft.AzureCLI
    
  2. Установите расширение Azure DevOps CLI. Дополнительные сведения см. в статье Начало работы с Azure DevOps CLI:

    az extension add -n azure-devops
    

    Команды az devops migrations входят в состав стандартного расширения azure-devops. Нет отдельного расширения ELM, которое нужно устанавливать.

  3. Проверьте загруженное расширение:

    az devops migrations --help
    
  4. Чтобы обновить существующую установку, выполните приведенные действия.

    az extension update -n azure-devops
    
  5. (Рекомендуется) Задайте для организации Azure DevOps значение по умолчанию, чтобы каждая команда migrations предназначена для правильного узла:

    az devops configure --defaults organization=https://dev.azure.com/<org>
    

    Если пропустить этот шаг и выполнять команды из папки, где удалённый репозиторий git указывает на другую организацию, CLI при автоопределении выберет этот удалённый репозиторий вместо значения --org. Чтобы принудительно отключить его для отдельной команды, добавьте --detect false.

Настройка локального агента Linux

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

  1. В Параметры проекта перейдите в Пулы агентов в разделе Конвейеры, выберите пул, который вы хотите использовать для миграции, и сохраните имя пула.

  2. Если у вас нет пула для использования, создайте локальный агент Linux. Дополнительные сведения см. в разделе Развертывание агента Azure Pipelines в Linux. Короткая версия:

    1. Убедитесь, что у вас есть разрешение на регистрацию агента. Если вы являетесь PCA, у вас уже есть доступ.
    2. В параметрах организации Azure DevOps перейдите к Pipelines>Agent pools.
    3. Выберите пул по умолчанию или локальный пул.
    4. Откройте вкладку "Агенты" и выберите "Создать агент".
    5. В диалоговом окне "Получение агента" выберите Linux и скачайте агент.
    6. На компьютере Linux распакуйте агент в выбранный каталог и перейдите в этот каталог.
    7. Запустите ./config.sh и затем ./run.sh.

Important

Необходимо использовать агент на основе Linux. агенты на основе Windows и macOS не поддерживаются.

Включите аудит

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

Необязательная настройка для гибридных сценариев

Используйте этот раздел, если вы планируете использовать Azure DevOps с GitHub после миграции.

Установка Azure Boards на GitHub

Если вы планируете продолжать использовать Azure Boards после миграции, администратор предприятия GitHub предприятия должен установить приложение Azure Boards в организации GitHub перед началом миграции. Это приложение позволяет ELM создать подключение Boards, чтобы команды могли связывать коммиты GitHub и запросы на вытягивание с рабочими элементами Azure DevOps.

Чтобы проверить установку, перейдите на страницу https://<enterpriseUrl>/organizations/<orgName>/settings/installations и убедитесь, что Azure Boards отображается в списке. Если Azure Boards отсутствует в списке, попросите администратора предприятия GitHub установить приложение Azure Boards в каталоге приложений предприятия.

Создайте подключение к службе для перенастройки конвейера

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

  1. Убедитесь, что приложение Azure Pipelines установлено в GitHub предприятияhttps://<enterpriseUrl>/organizations/<orgName>/settings/installations.
  2. Если Azure Pipelines отсутствует в списке, попросите администратора предприятия GitHub установить приложение: https://<enterprise>.ghe.com/apps/external-app/azure-pipelines Выберите "Настроить " и убедитесь, что для доступа к репозиторию задано значение "Все репозитории".
  3. В Azure DevOps в разделе "Параметры Project" выберите "Подключения службы".
  4. Выберите Новое подключение службы и выберите GitHub Enterprise Cloud с хранением данных в определённом регионе.
  5. Добавьте GitHub URL-адрес и имя организации, а затем нажмите кнопку "Авторизовать".
  6. Добавьте имя подключения к службе и нажмите кнопку "Сохранить".
  7. Откройте созданное соединение службы и скопируйте идентификатор. Этот идентификатор нужен для перенастройки конвейера.

Значения для сбора при миграции с использованием CLI

Используйте этот контрольный список, если планируется начать миграцию и управлять ими с помощью команд cli Azure DevOps вместо пользовательского интерфейса Azure DevOps.

Поле Example Ваше значение
URL-адрес организации Azure DevOps https://dev.azure.com/myorg
имя проекта Azure DevOps MyProject
имя репозитория Azure DevOps my-repo
GUID репозитория Azure DevOps xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
URL-адрес целевой GitHub организации https://contoso.ghe.com/MyOrg
Имя целевого репозитория MyProject-MyRepo
Идентификатор подключения службы cd32d354-xxxx-xxxx-xxxx-xxxx
Идентификатор подключения к конвейеру 9f6aa94e-xxxx-xxxx-xxxx-xxxx
Имя пула агентов Linux с локальным размещением Default

Следующий шаг