2014-01-29 5 views
0

У меня есть новая подписка на Azure, но у вас есть существующие виртуальные машины в предварительной подписке. Какой самый простой/лучший способ переместить мои виртуальные машины в новую подписку?Переместить виртуальную машину на новую подписку

Спасибо за чтение.

ответ

1

Я не знаю, есть еще один вариант, но вы можете сделать это с помощью PowerShell:

# Copy a virtual machine to a different subscription (no VNET) 
    .\vmcopy.ps1 -SourceSubscription "source subscription" ` 
      -DestinationSubscription "destination subscription" ` 
      -VirtualMachineName "existingvmname" ` 
      -SourceServiceName "sourcecloudservice" ` 
      -DestinationServiceName "destinationcloudservice" ` 
      -DestinationStorageAccount "destinationstorageaccount" ` 
      -Location "West US" 


    # Copy a virtual machine to a different subscription and specify an existing virtual network and subnet. 
    .\vmcopy.ps1 -SourceSubscription "source subscription" ` 
       -DestinationSubscription "destination subscription" ` 
       -VirtualMachineName "existingvmname" ` 
       -SourceServiceName "sourcecloudservice" ` 
       -DestinationServiceName "destinationcloudservice" ` 
       -DestinationStorageAccount "destinationstorageaccount" ` 
       -VNETName "DestinationVNET" ` 
       -SubnetName "DestinationSubnet" 

Источник/подробнее

http://michaelwasham.com/2014/01/21/copy-a-windows-azure-virtual-machine-between-subscriptions/

0

Для тех, кто задается вопросом, есть ли лучший вариант: Да, есть. Если вы хотите move вместо copy (как это было предложено Тьяго), вы должны сделать следующее: Создайте файл в формате JSON с этим содержимым:

{ 
    "targetResourceGroup": "/subscriptions/<TARGET-SUBSCRIPTION-ID>/resourceGroups/<TARGET-RESOURCEGROUP-NAME>", 
    "resources": [ 
    "<SOURCE-RESOURCE-ID>" 
    ] 
} 

Заметим, что вы можете иметь несколько ресурсов, которые принадлежит к VM: VM , cloudervice, учетная запись хранилища, VNet, зарезервированный IP, ... Вам необходимо добавить идентификаторы ресурсов всех этих ресурсов в JSON выше.

Тогда вы можете запустить:

armclient post https://management.azure.com/subscriptions/<SOURCE-SUBSCRIPTION-ID>/resourceGroups/<SOURCE-RESOURCEGROUP>/moveResources?api-version=2015-01-01 @<PAHT_TO_JSON> -verbose 

на командной строке. Вы можете ввести armclient, который вы можете установить с помощью choco:

choco install armclient 
Смежные вопросы