Загрузите виртуальный жесткий диск после запуска sysprep в Azure в лабораториях DevTest

Я запустил артефакт sysprep на своей виртуальной машине в лаборатории DevTest с помощью команды az lab vm apply-artifacts .

После этого, когда я запускаю az lab vm show, я получаю computeId, который содержит идентификатор ресурса.

идентификатор вычислений выглядит так: "computeId": "/subscriptions/#####/resourceGroups/###/providers/Microsoft.Compute/virtualMachines/####".

Как мне получить путь к диску из этого. Меня больше интересует ключ SAS, который я могу использовать в AzCopy для загрузки файла vhd, связанного с этой виртуальной машиной.


person Pranav Raj    schedule 25.09.2017    source источник


Ответы (1)


На данный момент Azure не поддерживает использование Azcopy для загрузки VHD из лаборатории devtest.

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

Затем мы можем использовать эту PowerShell для копирования этого снимка. Вот сценарий:

#Provide the subscription Id of the subscription where snapshot is created
$subscriptionId = "yourSubscriptionId"

#Provide the name of your resource group where snapshot is created
$resourceGroupName ="yourResourceGroupName"

#Provide the snapshot name 
$snapshotName = "yourSnapshotName"

#Provide Shared Access Signature (SAS) expiry duration in seconds e.g. 3600.
#Know more about SAS here: https://docs.microsoft.com/en-us/azure/storage/storage-dotnet-shared-access-signature-part-1
$sasExpiryDuration = "3600"

#Provide storage account name where you want to copy the snapshot. 
$storageAccountName = "yourstorageaccountName"

#Name of the storage container where the downloaded snapshot will be stored
$storageContainerName = "yourstoragecontainername"

#Provide the key of the storage account where you want to copy snapshot. 
$storageAccountKey = 'yourStorageAccountKey'

#Provide the name of the VHD file to which snapshot will be copied.
$destinationVHDFileName = "yourvhdfilename"


# Set the context to the subscription Id where Snapshot is created
Select-AzureRmSubscription -SubscriptionId $SubscriptionId

#Get the snapshot using name and resource group
$snapshot = Get-AzureRmSnapshot -ResourceGroupName $ResourceGroupName -SnapshotName $SnapshotName 

#Generate the SAS for the snapshot 
$sas = Grant-AzureRmSnapshotAccess -ResourceGroupName $ResourceGroupName -SnapshotName $SnapshotName  -DurationInSecond $sasExpiryDuration -Access Read 

#Create the context for the storage account which will be used to copy snapshot to the storage account 
$destinationContext = New-AzureStorageContext –StorageAccountName $storageAccountName -StorageAccountKey $storageAccountKey  

#Copy the snapshot to the storage account 
Start-AzureStorageBlobCopy -AbsoluteUri $sas.AccessSAS -DestContainer $storageContainerName -DestContext $destinationContext -DestBlob $destinationVHDFileName

Дополнительную информацию об этом скрипте можно найти в ссылка.


Обновление:

Мы можем через портал Azure создать образ, например:

введите здесь описание изображения

person Jason Ye    schedule 26.09.2017
comment
Я до сих пор не уверен, как создание пользовательского образа (az lab vm custom-image) приведет к созданию снимка. Разве они не разные? - person Pranav Raj; 28.09.2017
comment
@PranavRaj, мы также можем использовать портал для создания изображения, я обновлю свой ответ, проверьте его. - person Jason Ye; 28.09.2017