Как переместить или клонировать виртуальную машину Microsoft Azure?

Tags: Azure, Microsoft, виртуальная машина

Вы когда-нибудь пытались изменить конфигурацию своей  виртуальной машины Microsoft Azure? Задачи, подобные изменению виртуальной сети или перемещение виртуальной машины в другое местоположение, осуществить не так просто, а порой даже невозможно.

Сегодня Azure Portal упростил перемещение виртуальной машины (и ее ресурсов) в другую группу ресурсов или даже подписку. Однако, это перемещение, к примеру, не позволит нам изменить связанную виртуальную сеть.

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

Подтверждаем запрос переместить виртуальную машину Microsoft Azure в другую группу ресурсов и назначить виртуальную машину другой виртуальной сети или подсети. Бегло просмотрев Azure Portal, находим эту волшебную кнопку:

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

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

 

  • Учетная запись
    • Диски
  • Сетевая плата (NIC)
    • Виртуальная сеть
      • Подсеть
    • IP-адрес
      • Общий
      • Частный
    • Группа безопасности сети (NSG)

Копирование виртуальной машины

Эта стратегия может быть реализована тремя шагами:

1. Выключите оригинальную виртуальную машину и сделайте копию диска ОС (файл vhd).

  • Вы можете сделать это с помощью AzCopy, Azure Storage Explorer или PowerShell.
  • Убедитесь, что вы копируете машину на нужную учетную запись хранилища в правильной локации.
  • Вам нужно будет отключить виртуальную машину, чтобы иметь возможность скопировать файл.
  • Если ваша виртуальная машина использует управляемые диски, вам нужно будет экспортировать диск ОС, получить сгенерированный URI и использовать этот метод для копирования файла.

2. Создайте новую виртуальную машину на основе старой конфигурации виртуальной машины и копии диска ОС.

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

Чтобы завершить второй шаг, можно использовать PowerShell. Прежде всего, убедитесь, что у вас установлен необходимый модуль AzureRM:

Install-Module AzureRM.Compute -RequiredVersion 2.6.0

Полный сценарий прилагается к статье, но вот несколько ключевых моментов:

Первым шагом является получение информации о текущей виртуальной машине:

$vm = Get-AzureRmVM -Name $vmName -ResourceGroupName $resourceGroupName

Поскольку исходная виртуальная машина имеет управляемый диск, нам нужно экспортировать его, чтобы получить URI. Благодаря этому, мы сможем скопировать vhd из указанного URI в учетную запись целевого хранилища. Для этого можно использовать командлет Start-AzureStorageBlobCopy.

$storageAccount = Get-AzureRmStorageAccount -ResourceGroupName $newResourceGroupName -StorageAccountName $storageAccountName
$ctx = $storageAccount.Context
Start-AzureStorageBlobCopy -AbsoluteUri $sourceUrl `
-DestContainer $destinationContainer `
-DestBlob $newFileName `
-DestContext $ctx

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


$rules = (Get-AzureRmNetworkSecurityGroup -Name $networkSecurityGroupName -ResourceGroupName $resourceGroupName).SecurityRules
$networkSecurityGroup = New-AzureRmNetworkSecurityGroup -Name $networkSecurityGroupName -ResourceGroupName $newResourceGroupName -Location $newLocation -SecurityRules $rules





No Comments

Add a Comment