Spostare DevTest Labs e pianificazioni

È possibile spostare DevTest Labs e le pianificazioni associate in un'altra area o in un altro gruppo di risorse. È possibile spostare i gruppi di risorse tramite il portale di Azure. Per spostare un lab, creare una copia di un lab esistente in un'altra area. Dopo aver spostato il lab e aver creato una macchina virtuale (VM) nell'area di destinazione, è possibile spostare le pianificazioni del lab.

In questo articolo vengono illustrate le operazioni seguenti:

  • Spostare le risorse in gruppi di risorse diversi.
  • Esportare un modello di Azure Resource Manager (ARM) del lab.
  • Modificare il modello aggiungendo o aggiornando l'area di destinazione e altri parametri.
  • Distribuire il modello per creare il nuovo lab nell'area di destinazione.
  • Configurare il nuovo lab.
  • Spostare i dati nel nuovo lab.
  • Spostare le pianificazioni nel nuovo lab.
  • Eliminare le risorse nell'area di origine.

Prerequisiti

  • Assicurarsi che i servizi e le funzionalità usati dall'account siano supportati nell'area di destinazione.

  • Per le funzionalità di anteprima, assicurarsi che la sottoscrizione sia consentita per l'area di destinazione.

  • DevTest Labs non archivia o espone le password dal modello arm esportato. È necessario conoscere le password o i segreti per:

    • le macchine virtuali
    • segreti archiviati
    • Token PAT del repository dell'artefatto privato per spostare i repository privati insieme al lab.
  • Quando si sposta una pianificazione del lab, verificare che nell'area di destinazione esista una macchina virtuale di calcolo.

Spostare un lab

La sezione seguente descrive come spostare le risorse in un gruppo di risorse diverso e creare e personalizzare un modello di Resource Manager per spostare un lab da un'area a un'altra.

È possibile spostare una pianificazione senza spostare un lab, se si dispone di una macchina virtuale nell'area di destinazione. Per spostare una pianificazione senza spostare un lab, vedere Spostare una pianificazione.

Spostare gruppi di risorse usando il portale di Azure

Lo spostamento delle risorse tra gruppi di risorse in posizioni diverse è ora abilitato facilmente in DevTest Labs. È possibile trasferire facilmente qualsiasi risorsa da un gruppo a un altro all'interno della stessa sottoscrizione.

Per iniziare, selezionare la risorsa da spostare. Nella pagina Panoramica della risorsa è disponibile il gruppo di risorse corrente visualizzato nella parte superiore. Accanto al nome del gruppo di risorse, verrà visualizzata la parola (move) tra parentesi.

Fare clic sul testo con move collegamento ipertestuale, che consente di passare a una nuova pagina in cui è possibile spostare la risorsa in qualsiasi altro gruppo di risorse all'interno della stessa sottoscrizione. Si noti che lo spostamento della risorsa non cambierà la posizione, anche se il gruppo di risorse di destinazione si trova in una posizione diversa. Se non si spostano risorse tramite il portale di Azure o se si esegue il trasferimento a un gruppo di risorse in una sottoscrizione diversa, i metodi alternativi che usano ARM sono descritti di seguito.

Spostare lab in un'area diversa

Quando si sposta un lab, è necessario eseguire alcuni passaggi per preparare lo spostamento. Dovrai:

  • Preparare la rete virtuale
  • Esportare un modello di Resource Manager del lab
  • Modificare il modello
  • Distribuire il modello per spostare il lab
  • Configurare il nuovo lab
  • Scambiare i dischi del sistema operativo delle macchine virtuali di calcolo nelle nuove macchine virtuali
  • Pulire il lab originale

Preparare il Rete virtuale

Per iniziare, esportare e modificare un modello di Resource Manager.

  1. Accedere al portale di Azure.

  2. Se il gruppo di risorse non è presente nell'area di destinazione, crearne uno ora.

  3. Spostare il Rete virtuale corrente nella nuova area e nel gruppo di risorse seguendo i passaggi inclusi nell'articolo "Spostare una rete virtuale di Azure in un'altra area".

    In alternativa, è possibile creare una nuova rete virtuale, se non è necessario mantenere quella originale.

Esportare un modello di Resource Manager del lab

Si esporta quindi un modello JSON contenente le impostazioni che descrivono il lab.

Per esportare un modello con il portale di Azure:

  1. Selezionare Tutte le risorse e quindi selezionare il gruppo di risorse per il lab.

  2. Selezionare Esporta modello.

  3. Scegliere Scarica in Esporta modello.

  4. Individuare il file .zip scaricato dal portale e decomprimere il file in una cartella di propria scelta.

    Questo file ZIP contiene i file .json che includono il modello e gli script per distribuire il modello. Contiene tutte le risorse nel lab elencate in formato modello di Resource Manager, ad eccezione delle risorse Raccolta immagini condivise.

Modificare il modello

Affinché il modello di Resource Manager venga distribuito correttamente nella nuova area, è necessario modificare alcune parti del modello.

Per aggiornare il modello usando portale di Azure:

  1. Nel portale di Azure selezionare Crea una risorsa.

  2. In Cerca nel Marketplace digitare distribuzione modelli e quindi premere INVIO.

  3. Selezionare Distribuzione modello.

    Screenshot che mostra Azure Marketplace con la distribuzione del modello selezionata.

  4. Seleziona Crea.

  5. Selezionare Creare un modello personalizzato nell'editor.

  6. Selezionare Carica file e quindi seguire le istruzioni per caricare il file template.json scaricato nell'ultima sezione.

  7. Nell'editor apportare le modifiche seguenti al file template.json :

    1. Sostituire l'originale location con la nuova area in cui si vuole distribuire, ad esempio westus2, southeastasiae così via. Per ottenere i codici di località dell'area, vedere Località di Azure. Il codice per un'area è il nome dell'area senza spazi, Stati Uniti = centralus centrali.

      "variables": {},
      "resources": [
        {
          "type": "microsoft.devtestlab/labs",
          "location": "centralus",
      
    2. Se sono impostate "Tutte le macchine virtuali in un gruppo di risorse" nelle "Impostazioni lab", aggiornare anche i valori seguenti nel modello di Resource Manager:

      • Aggiornare l'oggetto apiVersion della microsoft.devtestlab/labs risorsa a 2018-10-15-preview.
      • Aggiungere vmCreationResourceGroupId alla sezione 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. Trovare la "type": "microsoft.devtestlab/labs/users" risorsa. Rimuovere l'intera secretStore sezione, inclusi i keyVaultld parametri e keyVaultUri .

      secretStore": {
        "keyVaultUri": "<vaultvalue>"
        "keyVaultld": "<id>"
      }
      
    4. Trovare la "type": "microsoft.devtestlab/labs/virtualnetworks" risorsa. Se in precedenza in questi passaggi è stata creata una nuova rete virtuale, è necessario aggiungere il nome effettivo della subnet in /subnets/[SUBNET_NAME]. Se si sceglie di spostare la rete virtuale in una nuova area, ignorare questo passaggio.

    5. Trovare la "type": "microsoft.devtestlab/labs/virtualmachines" risorsa.

      1. Sotto le "proprietà", aggiungere "password": "RANDOM_PASSWORD"

        Nota

        Per creare una nuova macchina virtuale, è necessaria una proprietà "password". Verrà immessa una password casuale perché in un secondo momento il disco del sistema operativo verrà scambiato con la macchina virtuale originale.

      2. Per Macchine virtuali IP condivisi, aggiungere questo frammento di codice in "properties.networkInterface",

        Vm Windows con RDP:

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

        Vm Linux con SSH:

         "networkInterface": {
            "sharedPublicIpAddressConfiguration": {
              "inboundNatRules": [
                {
                  "transportProtocol": "tcp",
                  "backendPort": 22
                }
              ]
            }
          }
        
    6. microsoft.devtestlab/labs/users/secrets Nelle risorse, il parametro seguente è "proprietà". Sostituire YOUR_STORED_PASSWORD con la password.

      Importante

      Usare secureString per i valori delle password.

      "value": "YOUR_STORED_PASSWORD"
      
    7. microsoft.devtestlab/labs/artifactsources Nelle risorse, il parametro seguente è "proprietà". Sostituire YOUR_STORED_PASSWORD con la password. Anche in questo caso, usare secureString per i valori delle password.

      "securityToken": "YOUR_PAT_TOKEN_VALUE"
      
    8. Nell'editor salvare il modello.

Distribuire il modello per spostare il lab

Distribuire il modello per creare un nuovo lab nell'area di destinazione.

  1. Nella pagina Distribuzione personalizzata aggiornare tutti i parametri con i valori corrispondenti definiti nel modello.

  2. Immettere i valori seguenti:

    Nome Valore
    Abbonamento Selezionare una sottoscrizione di Azure.
    Gruppo di risorse Selezionare il nome di gruppo di risorse creato nella sezione precedente.
    Location Selezionare un percorso per il lab. Ad esempio Stati Uniti centrali.
    Nome lab Deve essere un nome diverso.
    ID rete virtuale Deve essere quello spostato o quello nuovo creato.
  3. Selezionare Rivedi e crea.

  4. Seleziona Crea.

  5. Selezionare l'icona a forma di campana delle notifiche nella parte superiore della schermata per visualizzare lo stato della distribuzione. Verrà visualizzato lo stato Distribuzione in corso. Attendere il completamento della distribuzione.

Configurare il nuovo lab

Anche se la maggior parte delle risorse lab è stata replicata nella nuova area usando il modello di Resource Manager, è comunque necessario spostare manualmente alcune modifiche.

  1. Aggiungere nuovamente la raccolta di calcolo al lab, se presente nell'ambiente originale.
  2. Aggiungere i criteri "Macchine virtuali per utente", "Macchine virtuali per lab" e "Dimensioni consentite delle macchine virtuali" al lab spostato

Scambiare i dischi del sistema operativo delle macchine virtuali di calcolo nelle nuove macchine virtuali

Si noti che le macchine virtuali nel nuovo lab hanno le stesse specifiche delle macchine virtuali del lab precedente. L'unica differenza è che i dischi del sistema operativo.

  1. Creare un disco vuoto nella nuova area.

    • Ottenere il nome del disco del sistema operativo della macchina virtuale di calcolo di destinazione nel nuovo lab. È possibile trovare la macchina virtuale di calcolo e il relativo disco nel gruppo di risorse nella pagina Macchina virtuale del lab.

    • Usare AzCopy per copiare il contenuto del disco precedente nei dischi nuovi/vuoti nella nuova area. È possibile eseguire i comandi di PowerShell da Dev Box o da Azure Cloud Shell.

      AzCopy è lo strumento preferito per spostare i dati. È ottimizzato per le prestazioni. Un modo in cui è più veloce, è che i dati vengono copiati direttamente, quindi AzCopy non usa la larghezza di banda di rete del computer. Usare AzCopy nella riga di comando o come parte di uno script personalizzato. Vedere Introduzione ad 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
      

      Successivamente, si avrà un nuovo disco nella nuova area.

    1. Scambiare il disco del sistema operativo della macchina virtuale di calcolo nel nuovo lab con il nuovo disco. Per informazioni su come, vedere l'articolo "Modificare il disco del sistema operativo usato da una macchina virtuale di Azure con PowerShell".

Spostare una pianificazione

Esistono due modi per spostare una pianificazione:

  • Ricreare manualmente le pianificazioni nelle macchine virtuali spostate. Questo processo può richiedere molto tempo e può essere soggetto a errori. Questo approccio è più utile quando sono presenti alcune pianificazioni e macchine virtuali.
  • Esportare e ridistribuire le pianificazioni usando i modelli di Resource Manager.

Usare la procedura seguente per esportare e ridistribuire la pianificazione in un'altra area di Azure usando un modello di Resource Manager:

  1. Accedere al portale di Azure.

  2. Passare al gruppo di risorse di origine che ha mantenuto le macchine virtuali.

  3. Nella pagina Panoramica del gruppo di risorse, in Risorse selezionare Mostra tipi nascosti.

  4. Selezionare tutte le risorse con il tipo microsoft.devtestlab/schedules.

  5. Selezionare Esporta modello.

    Screenshot che mostra le risorse nascoste in un gruppo di risorse, con pianificazioni selezionate.

  6. Nella pagina Esporta modello di gruppo di risorse selezionare Distribuisci.

  7. Nella pagina Distribuzione personalizzata selezionare Modifica modello.

  8. Nel codice del modello modificare tutte le istanze di "location": "<old location>" in "location": "<new location>" e quindi selezionare Salva.

  9. Nella pagina Distribuzione personalizzata immettere i valori corrispondenti alla macchina virtuale di destinazione:

    Nome Valore
    Abbonamento Selezionare una sottoscrizione di Azure.
    Gruppo di risorse Selezionare il nome del gruppo di risorse.
    Area Selezionare un percorso per la pianificazione del lab. Ad esempio Stati Uniti centrali.
    Nome pianificazione Deve essere un nome univoco globale.
    VirtualMachine_xxx_externalId Deve essere la macchina virtuale di destinazione.

    Screenshot che mostra la pagina di distribuzione personalizzata, con i nuovi valori di posizione per le impostazioni pertinenti.

    Importante

    Ogni pianificazione deve avere un nome univoco globale; sarà necessario modificare il nome della pianificazione per la nuova posizione.

  10. Selezionare Rivedi e crea per creare la distribuzione.

  11. Al termine della distribuzione, verificare che la nuova pianificazione sia configurata correttamente nella nuova macchina virtuale.

Eliminare o pulire

Dopo la distribuzione, se si vuole ricominciare, è possibile eliminare il lab di destinazione e ripetere i passaggi descritti nelle sezioni Preparazione e spostamento di questo articolo.

Per eseguire il commit delle modifiche e completare lo spostamento, è necessario eliminare il lab originale.

Per rimuovere un lab usando il portale di Azure:

  1. Nella portale di Azure espandere il menu a sinistra per aprire il menu dei servizi e scegliere DevTest Labs per visualizzare l'elenco dei lab.

  2. Individuare il lab di destinazione da eliminare e fare clic con il pulsante destro del mouse sul pulsante Altro (...) sul lato destro dell'elenco.

  3. Selezionare Elimina e confermare.

È anche possibile scegliere di pulire le pianificazioni originali se non vengono più usate. Passare al gruppo di risorse di pianificazione originale (in cui sono stati esportati modelli nel passaggio 5 precedente) ed eliminare la risorsa di pianificazione.

Passaggi successivi

In questo articolo è stato spostato DevTest Labs da un'area a un'altra ed è stata eseguita la pulizia delle risorse di origine. Per altre informazioni sullo spostamento di risorse tra aree e sul ripristino di emergenza in Azure, vedere: