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
Nel progetto Azure DevOps passare ad Ambienti pipeline>e quindi selezionare Crea ambiente o Nuovo ambiente.
Nella prima schermata Nuovo ambiente aggiungere un nome e una descrizione facoltativa.
In Risorsa selezionare Macchine virtuali e quindi avanti.
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.
Nella schermata successiva Nuovo ambiente scegliere Linux in Sistema operativo.
Copiare lo script di registrazione di Linux.
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
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.
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.
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.
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.
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