Condividi tramite


Gestire le risorse delle macchine virtuali negli ambienti

Azure DevOps Services | Azure DevOps Server 2022 | Azure DevOps Server 2020

Questo articolo descrive come usare le risorse delle macchine virtuali (VM) negli ambienti per gestire le distribuzioni di Azure Pipelines in più computer. È anche possibile installare agenti nei propri server per le distribuzioni in sequenza.

Le risorse delle macchine virtuali possono esistere in ambienti, ad esempio Sviluppo, Test o Produzione. Dopo aver definito un ambiente, è possibile aggiungere macchine virtuali alla destinazione con le distribuzioni. La cronologia di distribuzione dell'ambiente fornisce la tracciabilità da ogni macchina virtuale alla pipeline.

Prerequisiti

  • Accesso a un repository di origine connesso alla pipeline.
  • Accesso e autorizzazione per scaricare ed eseguire script eseguibili nelle macchine virtuali da connettere all'ambiente.
  • Autorizzazioni amministratore progetto o amministratore di compilazione nel progetto Azure DevOps che contiene l'ambiente. Per altre informazioni, vedere Risorse di sicurezza della pipeline.
  • Ruolo di amministratore per il pool di distribuzione o set di server di destinazione disponibili per l'organizzazione. Per altre informazioni, vedere Autorizzazioni di ambiente e pool di distribuzione.

Nota

Per configurare un agente del gruppo di distribuzione o se viene visualizzato un errore durante la registrazione di una risorsa dell'ambiente vm, assicurarsi di impostare l'ambito del token di accesso personale su Tutte le organizzazioni accessibili.

Creare l'ambiente

Usare la procedura seguente per aggiungere una risorsa vm a un ambiente. È possibile usare lo stesso processo per configurare i computer fisici.

Aggiungere una risorsa macchina virtuale

  1. Nel progetto Azure DevOps passare ad Ambienti pipeline>e quindi selezionare Crea ambiente o Nuovo ambiente.

  2. Nella prima schermata Nuovo ambiente aggiungere un nome e una descrizione facoltativa.

  3. In Risorsa selezionare Macchine virtuali e quindi avanti.

    Screenshot che mostra l'aggiunta di un ambiente.

Copiare lo script di registrazione

Gli script dell'agente per le risorse della macchina virtuale sono simili agli script per gli agenti self-hosted e usano gli stessi comandi. Gli script includono un token di accesso personale di Azure DevOps per l'utente connesso, che scade tre ore dopo la generazione dello script.

  1. Nella schermata successiva Nuovo ambiente scegliere Linux in Sistema operativo.

  2. Copiare lo script di registrazione di Linux.

    Screenshot che mostra l'aggiunta di una macchina virtuale.

Lo script è lo stesso per tutte le macchine virtuali Linux aggiunte all'ambiente. Per altre informazioni sull'installazione dello script dell'agente, vedere Agenti Linux self-hosted.

Eseguire lo script copiato

  1. Selezionare Chiudi e notare che viene creato il nuovo ambiente. Per copiare di nuovo lo script, ad esempio se il pat scade, selezionare Aggiungi risorsa.

    Screenshot del messaggio creato nel nuovo ambiente.

  2. Eseguire lo script copiato in ogni macchina virtuale di destinazione da registrare nell'ambiente.

    Nota

    Se nella macchina virtuale è già in esecuzione un altro agente, specificare un nome univoco per l'agente da registrare nell'ambiente.

Dopo aver registrato la macchina virtuale, viene visualizzata come risorsa nella scheda Risorse dell'ambiente.

Screenshot della scheda Risorse.

Usare le macchine virtuali nelle pipeline

Nella pipeline YAML è possibile specificare come destinazione le macchine virtuali facendo riferimento al proprio ambiente. Per impostazione predefinita, il processo è destinato a tutte le macchine virtuali registrate per l'ambiente resourceName.

Nota

Quando si ritenta una fase, la distribuzione viene rieseguita in tutte le macchine virtuali, non solo in destinazioni non riuscite.

trigger: 
- main

pool: 
   vmImage: ubuntu-latest

jobs:
- deployment: VMDeploy
  displayName: Deploy to VM
  environment: 
   name: VMenv
   resourceName: VMenv
   resourceType: virtualMachine
  strategy:
     runOnce:
        deploy:   
          steps:
            - script: echo "Hello world"

Nota

I valori come virtualMachine fanno distinzione tra maiuscole e resourceType minuscole. L'uso di maiuscole e minuscole non è corretto non viene trovata alcuna risorsa corrispondente.

È possibile eseguire la distribuzione in macchine virtuali specifiche nell'ambiente specificandole in resourceName. L'esempio seguente viene distribuito solo nella risorsa vm denominata RESOURCE-PC nell'ambiente VMenv .

trigger: 
- main

pool: 
   vmImage: ubuntu-latest

jobs:
- deployment: VMDeploy
  displayName: Deploy to VM
  environment: 
    name: VMenv
    resourceType: virtualMachine
    resourceName: RESOURCE-PC # only deploy to the VM resource named RESOURCE-PC
  strategy:
    runOnce:
      deploy:   
          steps:
          - script: echo "Hello world"

Per altre informazioni sui processi di distribuzione della pipeline YAML, vedere lo schema delle pipeline YAML.

Aggiungere e gestire tag

I tag sono un modo per specificare come destinazione un set specifico di macchine virtuali in un ambiente per la distribuzione. I tag sono limitati a 256 caratteri ciascuno. Non esiste alcun limite al numero di tag che è possibile usare.

È possibile aggiungere tag o rimuovere tag per le macchine virtuali nello script di registrazione interattivo o tramite l'interfaccia utente selezionando Altre azioni per una risorsa macchina virtuale.

Screenshot che mostra l'impostazione dei tag della macchina virtuale.

Se si specificano più tag, la pipeline usa solo le macchine virtuali che includono tutti i tag. L'esempio seguente è destinato solo alle macchine virtuali con tag windows e prod . Le macchine virtuali con solo uno o nessuno dei tag non sono destinate.

trigger: 
- main

pool: 
   vmImage: ubuntu-latest

jobs:
- deployment: VMDeploy
  displayName: Deploy to VM
  environment: 
    name: VMenv
    resourceType: virtualMachine
    tags: windows,prod # only deploy to VMs with both windows and prod tags
  strategy:
    runOnce:
      deploy:   
          steps:
          - script: echo "Hello world"

Applicare la strategia di distribuzione

È possibile applicare una distribuzione strategy per definire come implementare l'applicazione. Le macchine virtuali supportano sia le runOnce strategie che le rolling strategie. Per altre informazioni sulle strategie di distribuzione e sugli hook del ciclo di vita, vedere Strategie di distribuzione.

Visualizza cronologia di distribuzione

Selezionare la scheda Distribuzioni per la tracciabilità completa dei commit e degli elementi di lavoro e una cronologia di distribuzione tra pipeline per ambiente e risorsa.

Screenshot che mostra la visualizzazione Distribuzioni vm.

Rimuovere una macchina virtuale da un ambiente

Per rimuovere una macchina virtuale da un ambiente Linux, eseguire il comando seguente in ogni computer.

./config.sh remove