Integrare DevTest Labs in Azure Pipelines

È possibile usare l'estensione Azure DevTest Labs Tasks per integrare Azure DevTest Labs nelle pipeline di integrazione e recapito continuo (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 con immagine dorata, l'esecuzione di un test specifico e l'eliminazione della macchina virtuale.

Questo articolo illustra come usare Azure DevTest Labs Tasks 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 si è ancora provato Azure? Creare un account Azure gratuito.

Si usa già Azure? Introduzione al primo lab in DevTest Labs: introduzione a 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 nel 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 artefatti 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. Selezionare OK e quindi 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 del 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

Successivamente, creare uno script per raccogliere i valori che le attività passaggi, ad esempio Copia file di Azure e PowerShell nei computer di destinazione usano per distribuire le app nelle macchine virtuali. 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.ps1e 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 Versioni pipeline>nel riquadro di spostamento a sinistra.
  2. Selezionare New pipeline (Nuova pipeline).
  3. Nel riquadro Selezionare un modello selezionareProcesso 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.
    • 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 archiviare.
  6. Selezionare Aggiungi.

Creare una macchina virtuale DevTest Labs

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

  1. Nella pagina della nuova 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 Crea macchina virtuale e selezionare Aggiungi.

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

  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 Azure Resource Manager endpoint di servizio.

    • Lab: selezionare il nome del lab devTest Labs.

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

    • Modello: selezionare 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 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 del 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

La pipeline esegue quindi 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 al 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 Azure PowerShell: FilePath.
  4. Nel riquadro destro completare il modulo come segue:
    • 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 rilascio, in modo da poterli fare riferimento in 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à per sviluppatori o eseguire test.

  1. Nella scheda Attività della pipeline di versione selezionare il segno + più accanto al processo agente.
  2. In Aggiungi attività selezionare Azure DevTest Labs Crea immagine personalizzata e selezionare Aggiungi.
  3. Nel riquadro sinistro selezionare l'attività Crea immagine personalizzata Azure DevTest Labs.
  4. Nel riquadro destro completare il modulo come segue:
    • Sottoscrizione di Azure RM: selezionare la connessione o la sottoscrizione del servizio.
    • Lab: selezionare il lab.
    • Nome immagine personalizzato: 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: è possibile modificare il nome della variabile ID immagine personalizzata predefinita, se necessario.

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 sperimentare solo la creazione di 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. Dopo aver eseguito le attività per sviluppatori o eseguire i test necessari nella macchina virtuale distribuita, è possibile eliminare normalmente la macchina virtuale.

  1. Nella scheda Attività della pipeline di versione selezionare il segno + più accanto al processo agente.
  2. In Aggiungi attività selezionare Azure DevTest Labs Elimina macchina virtuale e selezionare Aggiungi.
  3. Configurare le attività in questo modo:
    • Sottoscrizione di Azure RM: selezionare la connessione o la sottoscrizione del servizio.
    • Lab: selezionare il lab.
    • Macchina virtuale: immettere il valore come $(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 versione è 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