Condividi tramite


Integrare DevTest Labs in Azure Pipelines

È possibile usare l'estensione Azure DevTest Labs Tasks per integrare Azure DevTest Labs in pipeline di integrazione e recapito continue (CI/CD) di Azure Pipelines. L'estensione installa diverse attività in Azure Pipelines, tra cui:

  • Creare una macchina virtuale (VM)
  • Creare un'immagine personalizzata da una macchina virtuale
  • Eliminare una macchina virtuale

Queste attività semplificano, ad esempio, la distribuzione rapida di una macchina virtuale di immagini di riferimento, l'esecuzione di un test specifico e l'eliminazione della macchina virtuale.

Questo articolo illustra come usare Attività di Azure DevTest Labs per creare e distribuire una macchina virtuale, creare un'immagine personalizzata e quindi eliminare la macchina virtuale, tutte in una pipeline di versione. In genere, queste attività vengono eseguite separatamente nelle pipeline di compilazione, test e distribuzione.

Introduzione ad Azure DevTest Labs

Non hai ancora provato Azure? Creare un account Azure gratuito.

Si usa già Azure? Creare il primo lab e iniziare a usare Azure DevTest Labs in pochi minuti.

Prerequisiti

Creare un modello per creare una macchina virtuale lab

Creare prima di tutto un modello di Azure Resource Manager (ARM) che crea una macchina virtuale lab su richiesta.

  1. Nel lab nella portale di Azure selezionare Aggiungi nella barra dei menu in alto.
  2. Nella schermata Scegliere una base selezionare un'immagine di base di Windows per la macchina virtuale.
  3. Nella schermata Crea risorsa lab, in Artefatti, selezionare Aggiungi o Rimuovi artefatti.
  4. Nella schermata Aggiungi elementi cercare winrm e quindi selezionare la freccia accanto a Configura WinRM.
  5. Nel riquadro Aggiungi artefatto immettere un nome di dominio completo (FQDN) per la macchina virtuale, ad esempio contosolab00000000000000.westus3.cloudapp.azure.com. Seleziona OK e quindi seleziona di nuovo OK.
  6. Selezionare la scheda Impostazioni avanzate e per Indirizzo IP selezionare Pubblico.

    Nota

    Se si usa l'artefatto WinRM con un indirizzo IP condiviso, è necessario aggiungere una regola NAT (Network Address Translation) per eseguire il mapping di una porta esterna alla porta WinRM. Se si crea la macchina virtuale con un indirizzo IP pubblico, non è necessaria la regola NAT. Per questa procedura dettagliata, creare la macchina virtuale con un indirizzo IP pubblico.

  7. Selezionare Visualizza modello di Resource Manager.
  8. Copiare il codice del modello e salvarlo come file denominato CreateVMTemplate.json nel ramo di controllo del codice sorgente locale.
  9. Archiviare il modello nel sistema di controllo del codice sorgente del progetto.

Per altre informazioni e dettagli, vedere Usare un modello di Resource Manager.

Creare uno script per ottenere le proprietà della macchina virtuale

Creare quindi uno script per raccogliere i valori che vengono distribuiti nelle macchine virtuali, ad esempio Copia file di Azure e PowerShell nei computer di destinazione. In genere si usano queste attività per distribuire le proprie app nelle macchine virtuali di Azure. Le attività richiedono valori come il nome del gruppo di risorse della macchina virtuale, l'indirizzo IP e il nome di dominio completo.

Nota

È consigliabile usare il modulo Azure Az PowerShell per interagire con Azure. Per iniziare, vedere Installare Azure PowerShell. Per informazioni su come eseguire la migrazione al modulo AZ PowerShell, vedere Eseguire la migrazione di Azure PowerShell da AzureRM ad Az.

Salvare lo script seguente con un nome come GetLabVMParams.ps1 e archiviarlo nel sistema di controllo del codice sorgente del progetto.

Param( [string] $labVmId)

$labVmComputeId = (Get-AzResource -Id $labVmId).Properties.ComputeId

# Get lab VM resource group name
$labVmRgName = (Get-AzResource -Id $labVmComputeId).ResourceGroupName

# Get the lab VM Name
$labVmName = (Get-AzResource -Id $labVmId).Name

# Get lab VM public IP address
$labVMIpAddress = (Get-AzPublicIpAddress -ResourceGroupName $labVmRgName -Name $labVmName).IpAddress

# Get lab VM FQDN
$labVMFqdn = (Get-AzPublicIpAddress -ResourceGroupName $labVmRgName -Name $labVmName).DnsSettings.Fqdn

# Set a variable labVmRgName to store the lab VM resource group name
Write-Host "##vso[task.setvariable variable=labVmRgName;]$labVmRgName"

# Set a variable labVMIpAddress to store the lab VM Ip address
Write-Host "##vso[task.setvariable variable=labVMIpAddress;]$labVMIpAddress"

# Set a variable labVMFqdn to store the lab VM FQDN name
Write-Host "##vso[task.setvariable variable=labVMFqdn;]$labVMFqdn"

Creare una pipeline di versione in Azure Pipelines

Creare quindi la pipeline di versione in Azure Pipelines. Le attività della pipeline usano i valori assegnati alla macchina virtuale al momento della creazione del modello di Resource Manager.

  1. Nella pagina del progetto Azure DevOps Services selezionare Pipelines Releases (Versioni pipeline>) nel riquadro di spostamento a sinistra.
  2. Selezionare New pipeline (Nuova pipeline).
  3. Nel riquadro Selezionare un modello selezionare Processo vuoto.
  4. Chiudere il riquadro Fase .
  5. Nella pagina Nuova pipeline di versione selezionare la scheda Variabili .
  6. Selezionare Aggiungi e immettere le coppie Nome e Valore seguenti, selezionando Aggiungi dopo l'aggiunta di ognuna di esse.
    • vmName: nome della macchina virtuale assegnato nel modello di Resource Manager.
    • userName: nome utente per accedere alla macchina virtuale.
    • password: password per il nome utente. Selezionare l'icona di blocco per nascondere e proteggere la password.

Aggiungere un elemento

  1. Nella scheda Pipeline della nuova pipeline di versione selezionare Aggiungi un artefatto.
  2. Nel riquadro Aggiungi un artefatto selezionare Repository di Azure.
  3. Nell'elenco Progetto selezionare il progetto DevOps.
  4. Nell'elenco Origine (repository) selezionare il repository di origine.
  5. Nell'elenco Ramo predefinito selezionare il ramo da controllare.
  6. Selezionare Aggiungi.

Creare una macchina virtuale DevTest Labs

Il passaggio successivo crea una macchina virtuale di immagine di riferimento da usare per le distribuzioni future. Questo passaggio usa l'attività Crea macchina virtuale di Azure DevTest Labs.

  1. Nella nuova pagina della pipeline di versione, nella scheda Pipeline selezionare il testo con collegamento ipertestuale nella fase 1.

  2. Nel riquadro sinistro selezionare il segno + più accanto a Processo di Agent.

  3. In Aggiungi attività nel riquadro destro cercare e selezionare Azure DevTest Labs Create VM (Crea macchina virtuale) e selezionare Aggiungi.

  4. Nel riquadro sinistro selezionare l'attività Crea macchina virtuale di Azure DevTest Labs.

  5. Nel riquadro destro completare il modulo come segue:

    • Sottoscrizione di Azure RM: selezionare la connessione al servizio o la sottoscrizione dall'elenco a discesa e selezionare Autorizza , se necessario.

      Nota

      Per informazioni sulla creazione di una connessione con autorizzazioni più limitate alla sottoscrizione di Azure, vedere Endpoint del servizio Azure Resource Manager.

    • Lab: selezionare il nome del lab DevTest Labs.

    • Nome macchina virtuale: la variabile specificata per il nome della macchina virtuale: $vmName.

    • Modello: passare a e selezionare il file modello archiviato nel repository del progetto.

    • File di parametri: se è stato controllato un file di parametri nel repository, passare a e selezionarlo.

    • Override dei parametri: immettere -newVMName '$(vmName)' -userName '$(userName)' -password '$(password)'.

    • A discesa Variabili di output e in Nome riferimento immettere la variabile per l'ID macchina virtuale del lab creato. Immettere vm per Nome riferimento per semplicità. labVmId sarà un attributo di questa variabile e verrà indicato più avanti come $vm.labVmId. Se si usa un altro nome, ricordarsi di usarlo di conseguenza nelle attività successive.

      L'ID macchina virtuale lab sarà nel formato seguente: /subscriptions/{subscription Id}/resourceGroups/{resource group Name}/providers/Microsoft.DevTestLab/labs/{lab name}/virtualMachines/{vmName}.

Raccogliere i dettagli della macchina virtuale DevTest Labs

Successivamente, la pipeline esegue lo script creato per raccogliere i dettagli della macchina virtuale DevTest Labs.

  1. Nella scheda Attività della pipeline di versione selezionare il segno + più accanto a Processo di Agent.
  2. In Aggiungi attività nel riquadro destro cercare e selezionare Azure PowerShell e selezionare Aggiungi.
  3. Nel riquadro sinistro selezionare l'attività Script di Azure PowerShell: FilePath .
  4. Nel riquadro destro compilare il modulo nel modo seguente:
    • Sottoscrizione di Azure: selezionare la connessione al servizio o la sottoscrizione.
    • Tipo di script: selezionare Percorso file script.
    • Percorso script: passare a e selezionare lo script di PowerShell archiviato nel repository del codice sorgente. È possibile usare le proprietà predefinite per semplificare il percorso, ad esempio : $(System.DefaultWorkingDirectory/Scripts/GetLabVMParams.ps1.
    • Argomenti script: immettere il valore come -labVmId $(vm.labVmId).

Lo script raccoglie i valori necessari e li archivia nelle variabili di ambiente all'interno della pipeline di versione, quindi è possibile farvi riferimento nei passaggi successivi.

Creare un'immagine di macchina virtuale dalla macchina virtuale DevTest Labs

L'attività successiva crea un'immagine della macchina virtuale appena distribuita nel lab. È possibile usare l'immagine per creare copie della macchina virtuale su richiesta per eseguire attività di sviluppo o eseguire test.

  1. Nella scheda Attività della pipeline di versione selezionare il segno + più accanto a Processo di Agent.
  2. In Aggiungi attività selezionare Azure DevTest Labs Crea immagine personalizzata e selezionare Aggiungi.
  3. Nel riquadro sinistro selezionare l'attività Azure DevTest Labs Create Custom Image (Crea immagine personalizzata in Azure DevTest Labs).
  4. Nel riquadro destro compilare il modulo nel modo seguente:
    • Sottoscrizione di Azure RM: selezionare la connessione al servizio o la sottoscrizione.
    • Lab: selezionare il lab.
    • Nome immagine personalizzata: immettere un nome per l'immagine personalizzata.
    • Descrizione: immettere una descrizione facoltativa per semplificare la selezione dell'immagine corretta.
    • Macchina virtuale lab di origine: labVmId di origine. Immettere il valore come $(vm.labVmId).
    • Variabili di output: se necessario, è possibile modificare il nome della variabile personalizzata di ID immagine personalizzata predefinita.

Distribuire l'app nella macchina virtuale DevTest Labs (facoltativo)

È possibile aggiungere attività per distribuire l'app nella nuova macchina virtuale DevTest Labs. Se si vuole provare solo a creare una macchina virtuale DevTest Labs e un'immagine personalizzata, senza distribuire un'app, è possibile ignorare questo passaggio.

Le attività usate in genere per distribuire le app sono Copia file di Azure e PowerShell nei computer di destinazione. È possibile trovare le informazioni sulla macchina virtuale necessarie per i parametri dell'attività in tre variabili di configurazione denominate labVmRgName, labVMIpAddress e labVMFqdn all'interno della pipeline di versione.

Eliminare la macchina virtuale

L'attività finale consiste nell'eliminare la macchina virtuale distribuita nel lab. In genere si elimina la macchina virtuale dopo aver eseguito le attività di sviluppo o aver eseguito i test necessari nella macchina virtuale distribuita.

  1. Nella scheda Attività della pipeline di versione selezionare il segno + più accanto a Processo di Agent.
  2. In Aggiungi attività selezionare Azure DevTest Labs Delete VM (Elimina macchina virtuale) e selezionare Aggiungi.
  3. Configurare l'attività come indicato di seguito:
    • Sottoscrizione di Azure RM: selezionare la connessione al servizio o la sottoscrizione.
    • Lab: selezionare il lab.
    • Macchina virtuale: immettere il valore $ (vm.labVmId).
    • Variabili di output: in Nome riferimento, se è stato modificato il nome predefinito della variabile labVmId , immetterlo qui. Il valore predefinito è $(labVmId).

Salvare la pipeline di versione

Per salvare la nuova pipeline di versione:

  1. Selezionare Nuova pipeline di versione nella parte superiore della pagina della pipeline di versione e immettere un nuovo nome per la pipeline.
  2. Selezionare Salva in alto a destra.

Creare ed eseguire una versione

Per creare ed eseguire una versione usando la nuova pipeline:

  1. Nella pagina della pipeline di versione selezionare Crea versione in alto a destra.
  2. In Artefatti selezionare la build più recente e quindi selezionare Crea.

In ogni fase di rilascio è possibile aggiornare la visualizzazione del lab nella portale di Azure per visualizzare la creazione della macchina virtuale, la creazione di immagini e l'eliminazione della macchina virtuale.

È possibile usare l'immagine personalizzata per creare macchine virtuali ogni volta che sono necessarie.

Passaggi successivi