Condividi tramite


Importare macchine virtuali da un lab a un altro

Questo articolo descrive la funzionalità di importazione per Azure DevTest Labs e come importare macchine virtuali (VM) da un lab di origine a un lab di destinazione. Il processo di importazione è attualmente supportato per PowerShell e l'API REST.

Alcuni scenari in cui è possibile importare macchine virtuali da un lab a un altro includono:

  • Un utente passa a un nuovo team e vuole portare il desktop dello sviluppatore nel lab del nuovo team.
  • Un team raggiunge la quota a livello di sottoscrizione e vuole supportare l'appartenenza usando più sottoscrizioni di Azure.
  • Una società passa ad Azure ExpressRoute o ad altre topologie di rete e un team vuole spostare le macchine virtuali nella nuova infrastruttura.

Prerequisiti

  • È necessario essere il proprietario della macchina virtuale (VM) nel lab di origine.
  • È necessario essere il proprietario del lab di destinazione.
  • Le macchine virtuali nel lab di origine non possono trovarsi in uno stato richiedibile . Per altre informazioni, vedere Creare e gestire macchine virtuali richiedibili in Azure DevTest Labs.
  • Per importare macchine virtuali tra sottoscrizioni e aree diverse, tutte le sottoscrizioni devono essere associate allo stesso tenant di Microsoft Entra.

Esplorare il processo di importazione

Il processo di importazione è un'operazione di copia , non un'operazione di spostamento. DevTest Labs importa le macchine virtuali dal lab di origine al lab di destinazione.

L'importazione copia tutte le dipendenze per le macchine virtuali nel lab di destinazione, inclusi dischi, pianificazioni e impostazioni di rete. Durante il processo, è possibile specificare nuovi nomi per le macchine virtuali nel lab di destinazione.

Il completamento dell'importazione può richiedere del tempo. Il tempo totale dipende in parte dai fattori seguenti:

  • Numero e dimensioni dei dischi collegati al computer di origine
  • Distanza tra le aree di origine e di destinazione

Al termine dell'importazione, il processo arresta la macchina virtuale di origine e avvia la nuova macchina virtuale nel lab di destinazione.

Usare uno script di PowerShell

È possibile usare PowerShell per importare una o tutte le macchine virtuali nel lab di origine nel lab di destinazione.

Seguire questa procedura per usare uno script di PowerShell:

  1. Scaricare ed eseguire lo script ImportVirtualMachines.ps1 dal repository di Azure DevTest Labs in GitHub.

    Lo script consente di importare una singola macchina virtuale o tutte le macchine virtuali da un lab di origine specificato in un lab di destinazione designato.

  2. Raccogliere le informazioni seguenti da usare con lo script:

    • SourceDevTestLabName: nome del lab di origine.
    • SourceSubscriptionId: ID sottoscrizione lab di origine.
    • SourceVirtualMachineName: nome della macchina virtuale nel lab di origine da importare nel lab di destinazione.
    • DestinationDevTestLabName: nome del lab di destinazione.
    • DestinationSubscriptionId: ID sottoscrizione lab di destinazione.
    • DestinationVirtualMachineName: (Facoltativo) Nome della macchina virtuale dopo l'importazione nel lab di destinazione.

    Nota

    Quando si esegue lo script, se non si specifica un nuovo nome per la macchina virtuale (DestinationVirtualMachineName) nel lab di destinazione, l'importazione usa il nome della macchina virtuale nel lab di origine.

  3. Eseguire lo script e sostituire i valori con le <placeholder> informazioni:

    ./ImportVirtualMachines.ps1 -SourceSubscriptionId "<ID of the subscription that contains the source lab>"`
                             -SourceDevTestLabName "<Name of the source lab>"`
                             -SourceVirtualMachineName "<Name of the VM to import from the source lab>" `
                             -DestinationSubscriptionId "<ID of the subscription that contains the destination lab>"`
                             -DestinationDevTestLabName "<Name of the destination lab>"`
                             -DestinationVirtualMachineName "<Optional: Specify a new name for the imported VM in the destination lab>"
    

    Nota

    Quando si esegue lo script, se non si specifica un nome di macchina virtuale di origine (SourceVirtualMachineName), il processo importa tutte le macchine virtuali nel lab di origine nel lab di destinazione. In questo caso, il processo usa i nomi delle macchine virtuali nel lab di origine per denominare le macchine virtuali nel lab di destinazione.

Usare l'API REST

È facile usare l'API REST per completare l'importazione. L'operazione viene eseguita nella risorsa lab di destinazione.

Questo approccio è simile al processo per il comando di PowerShell. Specificare le informazioni per identificare le risorse di origine e di destinazione. Per la chiamata API, è anche necessario specificare il gruppo di risorse per entrambi i lab.

Per completare il processo di importazione, seguire questa procedura chiamando l'API REST:

  1. Raccogliere le informazioni seguenti da usare con l'API:

    • <SourceLab>: nome del lab di origine.
    • <SourceSubscriptionID>: ID sottoscrizione lab di origine.
    • <SourceResourceGroup>: gruppo di risorse per il lab di origine.
    • <NameofVMTobeImported>: nome della macchina virtuale nel lab di origine da importare nel lab di destinazione.
    • <DestinationLab>: nome del lab di destinazione.
    • <DestinationSubscriptionID>: ID sottoscrizione lab di destinazione.
    • <DestinationResourceGroup>: gruppo di risorse per il lab di destinazione.
    • <NewNameForImportedVM>: (Facoltativo) Nome della macchina virtuale dopo l'importazione nel lab di destinazione.
  2. Chiamare l'API REST HTTP come indicato di seguito e sostituire i valori con le <placeholder> informazioni:

    POST https://management.azure.com/subscriptions/<DestinationSubscriptionID>/resourceGroups/<DestinationResourceGroup>/providers/Microsoft.DevTestLab/labs/<DestinationLab>/ImportVirtualMachine?api-version=2017-04-26-preview
    {
       sourceVirtualMachineResourceId: "/subscriptions/<SourceSubscriptionID>/resourcegroups/<SourceResourceGroup>/providers/microsoft.devtestlab/labs/<SourceLab>/virtualmachines/<NameofVMTobeImported>",
       destinationVirtualMachineName: "<NewNameForImportedVM>"
    }