Ambiente - risorsa macchina virtuale

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

Usare le risorse della macchina virtuale per gestire le distribuzioni tra più computer con pipeline YAML. Le risorse delle macchine virtuali consentono di installare gli agenti nei propri server per le distribuzioni in sequenza.

Le risorse della macchina virtuale si connettono agli ambienti. Dopo aver definito un ambiente, è possibile aggiungere macchine virtuali alla destinazione con le distribuzioni. La visualizzazione della cronologia di distribuzione in un ambiente fornisce la tracciabilità dalla macchina virtuale alla pipeline.

Prerequisiti

È necessario avere almeno una licenza Basic e accedere alle aree seguenti:

  • il repository connesso alla pipeline
  • la macchina virtuale che si vuole connettere all'ambiente

Per altre informazioni sulla sicurezza per Azure Pipelines, vedere Risorse di sicurezza della pipeline.

Per aggiungere una macchina virtuale a un ambiente, è necessario avere il ruolo Amministrazione istrator per il pool di distribuzione corrispondente. Un pool di distribuzione è un set di server di destinazione disponibili per l'organizzazione. Altre informazioni sulle autorizzazioni di ambiente e pool di distribuzione.

Nota

Se si sta configurando un agente del gruppo di distribuzione o se viene visualizzato un errore durante la registrazione di una risorsa di ambiente vm, è necessario impostare l'ambito pat su Tutte le organizzazioni accessibili.

Creare una risorsa vm

Nota

È possibile usare questo stesso processo per configurare i computer fisici con uno script di registrazione.

Il primo passaggio per l'aggiunta di una risorsa vm consiste nel definire un ambiente.

Definire un ambiente

  1. Selezionare Crea ambiente o Nuovo ambiente, a seconda che si tratti del primo ambiente.
  2. Aggiungere un nome (obbligatorio) per l'ambiente e una descrizione.
  3. Salvare il nuovo ambiente.

Aggiungere una risorsa

  1. Selezionare l'ambiente e scegliere Aggiungi risorsa.

  2. Selezionare Macchine virtuali per il tipo di risorsa . Quindi seleziona Avanti.

    Add an environment.

  3. Scegliere Windows o Linux per il sistema operativo.

  4. Copiare lo script di registrazione. Lo script sarà uno script di PowerShell se è stato selezionato Windows e uno script Linux se è stato selezionato Linux.

    Add a virtual machine.

  5. Eseguire lo script copiato in ognuna delle macchine virtuali di destinazione da registrare in questo ambiente.

    • Se si installa in Windows, è necessario eseguire lo script come amministratore di PowerShell.
    • Se si esegue l'installazione in Linux, sarà necessario disporre dell'autorizzazione per scaricare ed eseguire script eseguibili.

    Nota

    • Il token di accesso personale (PAT) per l'utente connesso viene incluso nello script. Il token di accesso personale scade il giorno in cui si genera lo script.
    • Se nella macchina virtuale è già in esecuzione un altro agente, specificare un nome univoco per l'agente da registrare nell'ambiente.
    • Per altre informazioni sull'installazione dello script dell'agente, vedere Agenti Linux self-hosted e agenti Windows self-hosted. Gli script dell'agente per le risorse della macchina virtuale sono simili agli script per gli agenti self-hosted ed è possibile usare gli stessi comandi.
  6. Dopo aver registrato la macchina virtuale, viene visualizzata come risorsa di ambiente nella scheda Risorse dell'ambiente.

  7. Per aggiungere altre macchine virtuali, copiare di nuovo lo script. Selezionare Aggiungi macchine virtuali risorsa>. Gli script Windows e Linux sono gli stessi per tutte le macchine virtuali aggiunte all'ambiente.

  8. Quando lo script della macchina virtuale viene installato correttamente, la macchina virtuale viene visualizzata nell'elenco delle risorse per l'ambiente.

    View resources.

Usare la macchina virtuale nelle pipeline

Le macchine virtuali di destinazione nella pipeline fanno riferimento all'ambiente. Per impostazione predefinita, il processo della pipeline viene eseguito per tutte le macchine virtuali definite per un ambiente con .resourceName

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 fanno distinzione tra maiuscole e resourceType minuscole. Se si specifica la combinazione di maiuscole e minuscole non vengono trovate risorse corrispondenti nell'ambiente. Per altre informazioni, vedere lo schema YAML.

È possibile selezionare una macchina virtuale specifica dall'ambiente per ricevere solo la distribuzione specificandola da resourceName. Ad esempio, per impostare come destinazione la distribuzione solo nella risorsa macchina virtuale denominata USHAN-PC nell'ambiente VMenv , aggiungere il resourceName parametro e assegnargli il valore di USHAN-PC.

trigger: 
- main

pool: 
   vmImage: ubuntu-latest

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

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

Aggiungere e gestire tag

I tag consentono di specificare come destinazione un set di macchine virtuali specifiche in un ambiente per la distribuzione. È possibile aggiungere tag alla macchina virtuale come parte dello script di registrazione interattivo o tramite l'interfaccia utente. I tag sono limitati a 256 caratteri. Non esiste alcun limite al numero di tag che è possibile usare.

Aggiungere o rimuovere tag nell'interfaccia utente dalla visualizzazione risorse selezionando Altre azioni per una risorsa macchina virtuale.

Set VM tags.

Quando si selezionano più tag, le macchine virtuali che includono tutti i tag vengono usati nella pipeline. Ad esempio, questa pipeline è destinata alle macchine virtuali con tag windows e prod . Se una macchina virtuale ha solo uno di questi tag, non è destinata.

trigger: 
- main

pool: 
   vmImage: ubuntu-latest

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

Applicare la strategia di distribuzione

Applicare una strategia di distribuzione per definire la modalità di implementazione dell'applicazione. La runOnce strategia e la rolling strategia per le macchine virtuali sono entrambe supportate. Per altre informazioni sulle strategie di distribuzione e sugli hook del ciclo di vita, vedere Processi di distribuzione/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.

VMDeployments_view

Rimuovere una macchina virtuale da un ambiente

Ambiente Windows

Per rimuovere le macchine virtuali da un ambiente Windows, eseguire il comando seguente. Assicurarsi di eseguire le attività seguenti:

  • Eseguire il comando da un prompt dei comandi di PowerShell amministratore
  • Eseguire il comando in ogni computer
  • Eseguire il comando nello stesso percorso della cartella in cui è stato eseguito il comando di registrazione dell'ambiente
./config.cmd remove

Ambiente Linux

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

./config.sh remove

Limitazioni note

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