Поделиться через


Перемещение DevTest Labs и расписаний

Вы можете переместить DevTest Labs и связанные с ними расписания в другой регион или группу ресурсов. Группы ресурсов можно перемещать на портале Azure. Чтобы переместить лабораторию, создайте копию существующей лаборатории в другом регионе. При перемещении лаборатории и наличии виртуальной машины в целевом регионе можно переместить расписания лаборатории.

В этой статье вы узнаете, как:

  • Перемещение ресурсов в разные группы ресурсов.
  • Экспорт шаблона Azure Resource Manager (ARM) для вашей лаборатории.
  • Измените шаблон, добавив или обновив целевой регион и другие параметры.
  • Используйте шаблон для создания новой лаборатории в целевом регионе.
  • Настройте новую лабораторию.
  • Переместите данные в новую лабораторию.
  • Переместите расписания в новую лабораторию.
  • Удаление ресурсов в исходном регионе.

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

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

  • Если используются функции предварительного просмотра, убедитесь, что ваша подписка включена в список разрешённых для целевого региона.

  • DevTest Labs не сохраняет или не предоставляет пароли из экспортированного шаблона ARM. Вам нужно знать пароли и секреты:

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

Перемещение лаборатории

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

Расписание можно переместить без перемещения лаборатории, если у вас есть виртуальная машина в целевом регионе. Если вы хотите переместить расписание без перемещения лаборатории, см . раздел "Переместить расписание".

Перемещение групп ресурсов с помощью портала Azure

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

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

Щелкните гиперссылочный move текст, которая перенаправит вас на новую страницу, где можно переместить ресурс в любую другую группу ресурсов в той же подписке. Обратите внимание, что перемещение ресурса не изменит его расположение, даже если целевая группа ресурсов находится в другом расположении. Если вы не перемещаете ресурсы через портал Azure или передаете в группу ресурсов в другой подписке, альтернативные методы, использующие ARM, описаны ниже.

Перемещение лабораторий в другой регион

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

  • Подготовка виртуальной сети
  • Экспорт арм-шаблона лаборатории
  • Изменение шаблона
  • Развернуть шаблон, чтобы переместить лабораторию
  • Настройка новой лаборатории
  • Переключение дисков ОС виртуальных машин вычислений на новые виртуальные машины
  • Очистка исходной лаборатории

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

Чтобы приступить к работе, экспортируйте и измените шаблон Resource Manager.

  1. Войдите на портал Azure.

  2. Если у вас нет Группы ресурсов в целевом регионе, создайте ее.

  3. Переместите текущую виртуальная сеть в новый регион и группу ресурсов, выполнив действия, описанные в статье "Перемещение виртуальной сети Azure в другой регион".

    Кроме того, можно создать новую виртуальную сеть, если вам не нужно ничего делать с исходной.

Экспортировать лабораторный шаблон ARM

Затем вы экспортируете шаблон JSON, содержащий параметры, описывающие лабораторию.

Чтобы экспортировать шаблон с помощью портала Azure:

  1. Выберите Все ресурсы, а затем выберите группу ресурсов для лаборатории.

  2. Выберите Экспортировать шаблон.

  3. Выберите " Скачать " в шаблоне экспорта.

  4. Найдите скачанный c портала ZIP-файл и распакуйте его в любую выбранную папку.

    В ZIP-файле содержатся JSON-файлы, содержащие шаблон и скрипты для развертывания шаблона. Он содержит все ресурсы лаборатории, перечисленные в формате шаблона ARM, за исключением ресурсов общей коллекции образов.

Изменение шаблона

Чтобы шаблон ARM был правильно развернут в новом регионе, необходимо изменить несколько его частей.

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

  1. На портале Azure выберите Создать ресурс.

  2. В строке Поиск в Marketplace введите развертывание шаблона и нажмите клавишу ВВОД.

  3. Выберите Развертывание шаблона.

    Снимок экрана, показывающий Azure Marketplace с выбранной разверткой шаблона.

  4. Нажмите кнопку создания.

  5. Выберите Создать собственный шаблон в редакторе.

  6. Выберите Загрузить файл и следуйте инструкциям, чтобы загрузить файл template.json, скачанный в предыдущем разделе.

  7. В редакторе внесите следующие изменения в файл template.json:

    1. Замените оригинал location на новый регион, в котором требуется выполнить развертывание, например westus2 , southeastasia и т. д. Чтобы получить коды расположения регионов, см. раздел Расположения Azure. Код региона — это имя региона без пробелов, например Центральная часть США = centralus.

      "variables": {},
      "resources": [
        {
          "type": "microsoft.devtestlab/labs",
          "location": "centralus",
      
    2. Если у вас есть параметр "Все виртуальные машины в одной группе ресурсов" в разделе "Параметры лаборатории", также обновите следующие значения в шаблоне ARM:

      • Измените значение apiVersion ресурса microsoft.devtestlab/labs на 2018-10-15-preview.
      • Добавьте vmCreationResourceGroupId в раздел properties.
      "variables": {},
      "resources": [
        {
          "type": "microsoft.devtestlab/labs",
          "apiVersion": "2018-10-15-preview",
          "name": "[parameters('labs_lj_dtl_rgsettings_name')]",
          "location": "<regionName>",
          "properties": {
            "vmCreationResourceGroupId": "/subscriptions/<subscriptionID>/resourceGroups/<myResourceGroup>",
            "labStorageType": "Premium",
      
    3. Найдите ресурс "type": "microsoft.devtestlab/labs/users". Удалите весь раздел secretStore, включая параметры keyVaultld и keyVaultUri.

      secretStore": {
        "keyVaultUri": "<vaultvalue>"
        "keyVaultld": "<id>"
      }
      
    4. Найдите ресурс "type": "microsoft.devtestlab/labs/virtualnetworks". Если вы создали виртуальную сеть ранее на этих этапах, необходимо добавить фактическое имя подсети в /subnets/[SUBNET_NAME]. Если вы решили переместить виртуальную сеть в новый регион, пропустите этот шаг.

    5. Найдите ресурс "type": "microsoft.devtestlab/labs/virtualmachines".

      1. В разделе "Свойства" добавьте "password": "RANDOM_PASSWORD"

        Примечание.

        Для создания новой виртуальной машины требуется свойство "пароль". Мы вводим случайный пароль, так как в дальнейшем мы заменим диск ОС на исходную виртуальную машину.

      2. Для виртуальных машин с общим IP-адресом добавьте этот фрагмент кода в раздел "properties.networkInterface",

        Виртуальная машина Windows с RDP:

        "networkInterface": {
          "sharedPublicIpAddressConfiguration": {
            "inboundNatRules": [
              {
                "transportProtocol": "tcp",
                "backendPort": 3389
              }
            ]
          }
        }
        

        Виртуальная машина Linux с SSH:

         "networkInterface": {
            "sharedPublicIpAddressConfiguration": {
              "inboundNatRules": [
                {
                  "transportProtocol": "tcp",
                  "backendPort": 22
                }
              ]
            }
          }
        
    6. В разделе ресурсов microsoft.devtestlab/labs/users/secrets ниже приведен параметр "свойства". заменив YOUR_STORED_PASSWORD собственным паролем;

      Внимание

      Используйте secureString для значений паролей.

      "value": "YOUR_STORED_PASSWORD"
      
    7. В ресурсах microsoft.devtestlab/labs/artifactsources указан следующий параметр: "свойства". заменив YOUR_STORED_PASSWORD собственным паролем; Снова используйте secureString для значений паролей.

      "securityToken": "YOUR_PAT_TOKEN_VALUE"
      
    8. В редакторе сохраните шаблон.

Развернуть шаблон, чтобы переместить лабораторию

Используйте шаблон для создания новой лаборатории в целевом регионе.

  1. На странице Настраиваемое развертывание обновите все параметры с соответствующими значениями, определенными в шаблоне.

  2. Введите следующие значения:

    Имя. Значение
    Подписка Выберите подписку Azure.
    Группа ресурсов Выберите имя группы ресурсов, созданной в предыдущем разделе.
    Местонахождение Выберите расположение для лаборатории. Например, центральная часть США.
    Имя лаборатории Имя должно быть другим.
    Идентификатор виртуальной сети Должно быть, тот, который был перемещен, или новый, который вы создали.
  3. Выберите Просмотреть и создать.

  4. Нажмите кнопку создания.

  5. Чтобы просмотреть состояние развертывания, щелкните значок колокольчика (уведомления) в верхней части экрана. Появится уведомление Выполняется развертывание. Подождите, пока развертывание завершится.

Настройка новой лаборатории

Хотя большинство ресурсов лаборатории были реплицированы в новом регионе с помощью шаблона ARM, некоторые изменения по-прежнему нужно перемещать вручную.

  1. Добавьте Compute Gallery обратно в лабораторию, если они есть в исходной версии.
  2. Добавьте политики "Виртуальные машины на пользователя", "Виртуальные машины на лабораторию" и "Разрешенные размеры виртуальных машин" обратно в перемещенную лабораторию.

Переключение дисков ОС виртуальных машин вычислений на новые виртуальные машины

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

  1. Создайте пустой диск в новом регионе.

    • Найдите имя целевого диска ОС виртуальной машины в новой лаборатории. Вы можете найти виртуальную машину вычислений и его диск в группе ресурсов на странице виртуальной машины лаборатории.

    • Используйте AzCopy, чтобы скопировать старое содержимое диска в новые или пустые диски в новом регионе. Вы можете выполнять команды PowerShell из Dev Box или из Azure Cloud Shell.

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

      # Fill in the source/target disk names and their resource group names
      $sourceDiskName = "SOURCE_DISK"
      $sourceRG = "SOURCE_RG"
      $targetDiskName = "TARGET_DISK"
      $targetRG = "TARGET_RG"
      $targetRegion = "TARGET_LOCATION"
      
      # Create an empty target disk from the source disk
      $sourceDisk = Get-AzDisk -ResourceGroupName $sourceRG -DiskName $sourceDiskName
      $targetDiskconfig = New-AzDiskConfig -SkuName $sourceDisk.Sku.Name -UploadSizeInBytes $($sourceDisk.DiskSizeBytes+512) -Location $targetRegion -OsType $sourceDisk.OsType -CreateOption 'Upload'
      $targetDisk = New-AzDisk -ResourceGroupName $targetRG -DiskName $targetDiskName -Disk $targetDiskconfig
      
      # Copy the disk content from source to target
      $sourceDiskSas = Grant-AzDiskAccess -ResourceGroupName $sourceRG -DiskName $sourceDiskName -DurationInSecond 1800 -Access 'Read'
      $targetDiskSas = Grant-AzDiskAccess -ResourceGroupName $targetRG -DiskName $targetDiskName -DurationInSecond 1800 -Access 'Write'
      azcopy copy $sourceDiskSas.AccessSAS $targetDiskSas.AccessSAS --blob-type PageBlob
      Revoke-AzDiskAccess -ResourceGroupName $sourceRG -DiskName $sourceDiskName
      Revoke-AzDiskAccess -ResourceGroupName $targetRG -DiskName $targetDiskName
      

      После этого в новом регионе появится новый диск.

    1. Замените диск ОС виртуальной машины в новой лаборатории на новый диск. Дополнительные сведения см. в статье "Изменение диска ОС, используемого виртуальной машиной Azure, с помощью PowerShell".

Перемещение расписания

Существуют следующие два способа переноса расписания.

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

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

  1. Войдите на портал Azure.

  2. Перейдите в исходную группу ресурсов, которая содержала виртуальные машины.

  3. На странице Обзор группы ресурсов в разделе Ресурсы выберите Показать скрытые типы.

  4. Выберите все ресурсы с типом microsoft.devtestlab/schedules.

  5. Выберите Экспортировать шаблон.

    Снимок экрана: скрытые ресурсы в группе ресурсов с выбранными расписаниями.

  6. На странице Экспортировать шаблон группы ресурсов выберите Развернуть.

  7. На странице Пользовательское развертывание выберите Изменить шаблон.

  8. В коде шаблона измените все экземпляры "location": "<old location>" на "location": "<new location>" и нажмите кнопку Сохранить.

  9. На странице Пользовательское развертывание введите значения, соответствующие целевой виртуальной машине:

    Имя. Значение
    Подписка Выберите подписку Azure.
    Группа ресурсов Выберите имя группы ресурсов.
    Регион Выберите расположение для расписания лаборатории. Например, центральная часть США.
    Имя расписания Должно быть глобально уникальное имя.
    VirtualMachine_xxx_externalId Должна быть целевая виртуальная машина.

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

    Внимание

    Каждое расписание должно иметь глобально уникальное имя; необходимо изменить имя расписания для нового расположения.

  10. Выберите Проверить и создать, чтобы выполнить развертывание.

  11. После завершения развертывания убедитесь, что новое расписание правильно настроено на новой виртуальной машине.

Отмена или очистка

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

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

Чтобы удалить лабораторию с помощью портала Azure:

  1. На портале Azure разверните меню слева, чтобы открыть меню служб, и выберите Лаборатории DevTest, чтобы просмотреть список лабораторий.

  2. Найдите целевую лабораторию, которую нужно удалить, и щелкните правой кнопкой мыши кнопку Дополнительно (...) справа от списка.

  3. Выберите Удалить и подтвердите действие.

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

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

В этой статье вы переместили DevTest Labs из одного региона в другой и очистили исходные ресурсы. Дополнительные сведения о перемещении ресурсов между регионами и аварийном восстановлении в Azure см. по следующей ссылке: