Agenti di Azure Pipelines

Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019

Per costruire il codice o distribuire il software utilizzando Azure Pipelines, è necessario almeno un agente. Man mano che si aggiungono codice e persone, può servirne più di uno.

Quando la pipeline viene eseguita, il sistema avvia uno o più processi. Un agente sta elaborando l'infrastruttura con software agente installato che esegue un processo alla volta.

Azure Pipelines offre diversi tipi di agenti.

Tipo di agente Descrizione Disponibilità
Agenti ospitati da Microsoft Agenti ospitati e gestiti da Microsoft Servizi di Azure DevOps
Agenti self-hosted Agenti configurati e gestiti, ospitati nelle macchine virtuali Azure DevOps Services, Azure DevOps Server
Agenti del set di scalabilità di macchine virtuali di Azure Una forma di agenti self-hosted, usando Azure set di scalabilità di macchine virtuali, che può essere ridimensionata automaticamente per soddisfare le esigenze Servizi di Azure DevOps

I processi possono essere eseguiti direttamente nel computer host dell'agente o in un contenitore.

Agenti ospitati da Microsoft

Se le pipeline si trovano in Azure Pipelines, è possibile eseguire i processi usando un agente ospitato da Microsoft. Con gli agenti ospitati da Microsoft, la manutenzione e gli aggiornamenti vengono presi in considerazione automaticamente. Si ottiene sempre la versione più recente dell'immagine della macchina virtuale specificata nella pipeline. Ogni volta che si esegue una pipeline, si ottiene una nuova macchina virtuale per ogni processo nella pipeline. La macchina virtuale viene rimossa dopo un processo ( ovvero qualsiasi modifica apportata da un processo al file system della macchina virtuale, ad esempio il estrazione del codice, non sarà disponibile per il processo successivo). Gli agenti ospitati da Microsoft possono eseguire processi direttamente nella macchina virtuale o in un contenitore.

Azure Pipelines offre un pool di agenti predefinito denominato Azure Pipelines con agenti ospitati da Microsoft.

Per molti team questo è il modo più semplice per eseguire i processi. È possibile provarlo per primo e verificare se funziona per la compilazione o la distribuzione. In caso contrario, è possibile usare agenti del set di scalabilità o un agente self-hosted.

Suggerimento

È possibile provare un agente ospitato da Microsoft senza alcun addebito.

Altre informazioni sugli agenti ospitati da Microsoft.

Agenti self-hosted

Un agente configurato e gestito autonomamente per eseguire i processi è un agente self-hosted. È possibile usare gli agenti self-hosted in Azure Pipelines o Azure DevOps Server, denominato in precedenza Team Foundation Server (TFS). Gli agenti self-hosted offrono un maggiore controllo per l'installazione del software dipendente necessario per le compilazioni e le distribuzioni. Inoltre, le cache a livello di computer e la configurazione vengono mantenute dall'esecuzione all'esecuzione, che possono aumentare la velocità.

Nota

Anche se è possibile installare più agenti per computer, è consigliabile installare un solo agente per computer. L'installazione di due o più agenti potrebbe influire negativamente sulle prestazioni e sul risultato delle pipeline.

Suggerimento

Prima di installare un agente self-hosted, è possibile verificare se un pool di agenti ospitato da Microsoft funzionerà automaticamente. In molti casi questo è il modo più semplice per andare avanti. Prova.

L'agente può essere installato in computer Linux, macOS o Windows, ma anche in un contenitore Docker. Per altre informazioni sull'installazione di un agente self-hosted, vedere:

Nota

In macOS è necessario cancellare l'attributo speciale nell'archivio di download per impedire la visualizzazione della protezione gatekeeper per ogni assembly nel file tar quando ./config.sh viene eseguito. Il comando seguente cancella l'attributo esteso nel file:

xattr -c vsts-agent-osx-x64-V.v.v.tar.gz  ## replace V.v.v with the version in the filename downloaded.

# then unpack the gzip tar file normally:

tar xvfz vsts-agent-osx-x64-V.v.v.tar.gz

Dopo aver installato l'agente in un computer, è possibile installarvi qualsiasi altro software richiesto dai processi.

Nota

Gli agenti sono ampiamente compatibili con le versioni precedenti. Qualsiasi versione dell'agente deve essere compatibile con qualsiasi versione di Azure DevOps, purché Azure DevOps non richieda una versione successiva dell'agente.

Supportiamo solo la versione più recente dell'agente, poiché questa è l'unica versione garantita per avere tutte le patch aggiornate e le correzioni di bug.

Versioni di Node Runner

L'agente viene fornito con diverse versioni delle librerie NodeJS per supportare le attività di destinazione che usano gestori di nodi diversi.

Tutte le attività ufficiali di Azure DevOps usano Node 10 come gestore universale, ma i clienti potrebbero comunque usare attività personalizzate che usano la libreria Node 6 obsoleta. Per supportare la compatibilità con le versioni precedenti con Node che ha raggiunto la fine della vita, vengono forniti i metodi self-service seguenti per installare manualmente lo strumento di esecuzione del nodo designato.

  • Installare manualmente lo strumento di esecuzione node 6. Per altre informazioni sull'installazione manuale dello strumento di esecuzione del nodo 6, vedere Supporto del nodo 6 per altri dettagli.

  • Usare l'attività NodeTaskRunnerInstaller@0 nelle pipeline che richiedono la libreria Node 6 obsoleta.

  • Installare un pacchetto dell'agente che include Node 6.

    Azure Pipelines offre due versioni dei pacchetti dell'agente.

    • I pacchetti vsts-agent-* supportano Node 6.
    • i pacchetti pipelines-agent-* non supportano node 6. Questa versione del pacchetto diventerà il pacchetto dell'agente predefinito in futuro.

    Se si sa che non si usano attività dipendenti del nodo 6 e non si vuole che il nodo 6 sia installato nel computer agente, è possibile installare l'agente dalla sezione Download dell'agente alternativo da https://github.com/microsoft/azure-pipelines-agent/releases.

Agenti del set di scalabilità di macchine virtuali di Azure

Gli agenti del set di scalabilità di macchine virtuali di Azure sono una forma di agenti self-hosted che possono essere ridimensionati automaticamente per soddisfare le esigenze. Questa elasticità riduce la necessità di eseguire sempre agenti dedicati. A differenza degli agenti ospitati da Microsoft, è possibile scegliere in modo flessibile le dimensioni e l'immagine dei computer in cui vengono eseguiti gli agenti.

È possibile specificare un set di scalabilità di macchine virtuali, un numero di agenti da mantenere in standby, un numero massimo di macchine virtuali nel set di scalabilità e Azure Pipelines gestisce automaticamente il ridimensionamento degli agenti.

Per altre informazioni, vedere Agenti del set di scalabilità di macchine virtuali di Azure.

Processi in parallelo

I processi paralleli rappresentano il numero di processi che è possibile eseguire contemporaneamente nell'organizzazione. Se l'organizzazione ha un singolo processo parallelo, è possibile eseguire un singolo processo alla volta nell'organizzazione, con eventuali processi simultanei aggiuntivi accodati fino al completamento del primo processo. Per eseguire due processi contemporaneamente, sono necessari due processi paralleli. In Azure Pipelines è possibile eseguire processi paralleli nell'infrastruttura ospitata da Microsoft o nell'infrastruttura (self-hosted) personalizzata.

Microsoft offre un livello gratuito di servizio per impostazione predefinita in ogni organizzazione che include almeno un processo parallelo. A seconda del numero di pipeline simultanee da eseguire, potrebbero essere necessari più processi paralleli per usare più agenti ospitati da Microsoft o self-hosted contemporaneamente. Per altre informazioni sui processi paralleli e sui diversi livelli gratuiti del servizio, vedere Processi paralleli in Azure Pipelines.

Potrebbero essere necessari più processi paralleli per usare più agenti contemporaneamente:

Importante

A partire da Azure DevOps Server 2019, non è necessario pagare per i processi simultanei self-hosted nelle versioni. L'utente è limitato solo dal numero di agenti disponibili.

Funzionalità

Ogni agente self-hosted ha un set di funzionalità che indicano cosa può fare. Le funzionalità sono coppie nome-valore che vengono individuate automaticamente dal software agente, nel qual caso vengono chiamate funzionalità di sistema o quelle definite dall'utente, nel qual caso vengono chiamate funzionalità utente.

Il software agente determina automaticamente varie funzionalità di sistema, ad esempio il nome del computer, il tipo di sistema operativo e le versioni di determinati software installati nel computer. Inoltre, le variabili di ambiente definite nel computer vengono visualizzate automaticamente nell'elenco delle funzionalità di sistema.

Nota

L'archiviazione delle variabili di ambiente come funzionalità significa che quando viene eseguito un agente, i valori delle funzionalità archiviate vengono usati per impostare le variabili di ambiente. Inoltre, tutte le modifiche apportate alle variabili di ambiente apportate mentre l'agente è in esecuzione non verranno prelevate e usate da alcuna attività. Se sono presenti variabili di ambiente sensibili che cambiano e non si vuole che vengano archiviate come funzionalità, è possibile ignorarle impostando la VSO_AGENT_IGNORE variabile di ambiente, con un elenco delimitato da virgole di variabili da ignorare. Ad esempio, PATH è una variabile critica che può essere utile ignorare se si installa il software.

Quando si crea una pipeline, si specificano determinate richieste dell'agente. Il sistema invia il processo solo agli agenti con funzionalità corrispondenti alle richieste specificate nella pipeline. Di conseguenza, le funzionalità dell'agente consentono di indirizzare i processi a agenti specifici.

Nota

Le richieste e le funzionalità sono progettate per l'uso con agenti self-hosted in modo che i processi possano essere confrontati con un agente che soddisfi i requisiti del processo. Quando si usano agenti ospitati da Microsoft, si seleziona un'immagine per l'agente che soddisfa i requisiti del processo, quindi anche se è possibile aggiungere funzionalità a un agente ospitato da Microsoft, non è necessario usare le funzionalità con gli agenti ospitati da Microsoft.

Configurare le richieste

Per aggiungere una richiesta alla pipeline di compilazione YAML, aggiungere la demands: riga alla pool sezione .

pool:
  name: Default
  demands: SpecialSoftware # exists check for SpecialSoftware

È possibile verificare l'esistenza di una funzionalità o eseguire un confronto con il valore di una funzionalità. Per altre informazioni, vedere Schema YAML - Richieste.

Configurare le funzionalità dell'agente

È possibile visualizzare i dettagli di un agente, incluse le relative funzionalità di sistema e versione, e gestire le funzionalità utente, passando a Pool di agenti e selezionando la scheda Funzionalità per l'agente desiderato.

  1. Nel Web browser passare a Pool di agenti:

    1. Accedere all'organizzazione (https://dev.azure.com/{yourorganization}).

    2. Scegliere Azure DevOps, Impostazioni organizzazione.

      Scegliere Impostazioni organizzazione.

    3. Scegliere Pool di agenti.

      Scegliere la scheda Pool di agenti.

    1. Accedere alla raccolta di progetti (http://your-server/DefaultCollection).

    2. Scegliere Azure DevOps, Impostazioni raccolta.

      Scegliere Impostazioni raccolta.

    3. Scegliere Pool di agenti.

      Scegliere Pool di agenti.

    1. Scegliere Azure DevOps, Impostazioni raccolta.

      Impostazioni raccolta, 2019.

    2. Scegliere Pool di agenti.

      Scegliere Pool di agenti, 2019.

  2. Passare alla scheda funzionalità:

    1. Nella scheda Pool di agenti selezionare il pool di agenti desiderato.

      In Pool di agenti selezionare il pool di agenti desiderato.

    2. Selezionare Agenti e scegliere l'agente desiderato.

      Selezionare Agenti e scegliere l'agente.

    3. Scegliere la scheda Funzionalità .

      Scegliere la scheda Funzionalità.

      Nota

      Gli agenti ospitati da Microsoft non visualizzano le funzionalità di sistema. Per un elenco del software installato in agenti ospitati da Microsoft, vedere Usare un agente ospitato da Microsoft.

    1. Nella scheda Pool di agenti selezionare il pool desiderato.

      Selezionare il pool desiderato.

    2. Selezionare Agenti e scegliere l'agente desiderato.

      Selezionare Agenti e scegliere l'agente desiderato.

    3. Scegliere la scheda Funzionalità .

      Scheda Funzionalità agente.

    1. Nella scheda Pool di agenti selezionare il pool desiderato.

      Selezionare la scheda desiderata, 2019.

    2. Selezionare Agenti e scegliere l'agente desiderato.

      Scegliere l'agente desiderato, 2019.

    3. Scegliere la scheda Funzionalità .

      Scegliere la scheda Funzionalità, 2019.

  3. Per registrare una nuova funzionalità con l'agente, scegliere Aggiungi una nuova funzionalità.

Suggerimento

Dopo aver installato il nuovo software in un agente self-hosted, è necessario riavviare l'agente per visualizzare la nuova funzionalità. Per altre informazioni, vedere Riavviare l'agente Windows, Riavviare l'agente Linux e Riavviare l'agente Mac.

Comunicazione

Comunicazione con Azure Pipelines

Comunicazione con Azure DevOps Server

L'agente comunica con Azure Pipelines o Azure DevOps Server per determinare quale processo deve eseguire e per segnalare i log e lo stato del processo. Questa comunicazione viene sempre avviata dall'agente. Tutti i messaggi dall'agente ad Azure Pipelines o Azure DevOps Server vengono inviati tramite HTTP o HTTPS, a seconda della modalità di configurazione dell'agente. Questo modello pull consente di configurare l'agente in topologie diverse, come illustrato di seguito.

Topologie dell'agente nelle installazioni locali.

Topologie dell'agente in Azure DevOps Services.

Di seguito è descritto un modello di comunicazione comune tra l'agente e Azure Pipelines o Azure DevOps Server.

  1. L'utente registra un agente con Azure Pipelines o Azure DevOps Server aggiungendolo a un pool di agenti. È necessario essere un amministratore del pool di agenti per registrare un agente nel pool di agenti. L'identità dell'amministratore del pool di agenti è necessaria solo al momento della registrazione, non viene salvata in modo permanente nell'agente né viene usata in altre comunicazioni tra l'agente e Azure Pipelines o Azure DevOps Server. Al termine della registrazione, l'agente scarica un token OAuth del listener e lo usa per ascoltare la coda del processo.

  2. L'agente è in ascolto per verificare se è stata inviata una nuova richiesta di processo nella coda di processi in Azure Pipelines/Azure DevOps Server usando un polling HTTP lungo. Quando un processo è disponibile, l'agente scarica il processo e un token OAuth specifico del processo. Questo token viene generato da Azure Pipelines/Azure DevOps Server per l'identità con ambito specificata nella pipeline. Tale token è di breve durata e viene usato dall'agente per accedere alle risorse (ad esempio, il codice sorgente) o modificare le risorse (ad esempio, caricare i risultati dei test) in Azure Pipelines o Azure DevOps Server nell'ambito di tale processo.

  3. Al termine del processo, l'agente rimuove il token OAuth specifico del processo e torna a verificare se è presente una nuova richiesta di processo usando il token OAuth del listener.

Il payload dei messaggi scambiati tra l'agente e Azure Pipelines/Azure DevOps Server è protetto tramite la crittografia asimmetrica. Ogni agente dispone di una coppia di chiavi pubblica e privata e la chiave pubblica viene scambiata con il server durante la registrazione. Il server usa la chiave pubblica per crittografare il payload del processo prima di inviarlo all'agente. L'agente decrittografa la password tramite la chiave privata. Questo è il modo in cui i segreti archiviati nelle pipeline o nei gruppi di variabili vengono protetti quando vengono scambiati con l'agente.

Nota

L'agente fornisce il supporto per l'output di codifica client UTF-8. Tuttavia, se il sistema ha una codifica diversa da UTF-8, potrebbero verificarsi alcuni problemi con l'output dei log. Ad esempio, i log potrebbero contenere caratteri non riconosciuti dalla codifica del sistema in modo che vengano visualizzati come simboli incomprensibili o mancanti.

Comunicazione per la distribuzione nei server di destinazione

Quando si usa l'agente per distribuire gli artefatti in un set di server, è necessario disporre della connettività "line-of-sight" a tali server. Per impostazione predefinita, i pool di agenti ospitati da Microsoft hanno connettività a siti Web e server di Azure in esecuzione in Azure.

Nota

Se le risorse di Azure sono in esecuzione in un Rete virtuale di Azure, è possibile ottenere gli intervalli IP dell'agente in cui vengono distribuiti gli agenti ospitati da Microsoft in modo da configurare le regole del firewall per la rete virtuale di Azure per consentire l'accesso dall'agente.

Se gli ambienti locali non dispongono di connettività a un pool di agenti ospitati da Microsoft (il che avviene in genere a causa di firewall intermedi), è necessario configurare manualmente un agente self-hosted nei computer locali. Gli agenti devono avere connettività agli ambienti locali di destinazione e accedere a Internet per connettersi ad Azure Pipelines o a Team Foundation Server, come illustrato nello schema seguente.

Connettività dell'agente per ambienti locali

Autenticazione

Per registrare un agente, è necessario essere un membro del ruolo di amministratore nel pool di agenti. L'identità dell'amministratore del pool di agenti è necessaria solo al momento della registrazione, non viene salvata in modo permanente nell'agente e non viene usata nelle successive comunicazioni tra l'agente e Azure Pipelines o Azure DevOps Server. È inoltre necessario essere un amministratore locale nel server per configurare l'agente.

Quando si registra un agente, scegliere tra i tipi di autenticazione seguenti e l'installazione dell'agente richiede le informazioni aggiuntive specifiche necessarie per ogni tipo di autenticazione. Per altre informazioni, vedere Opzioni di autenticazione dell'agente self-hosted.

Gli agenti Windows hanno le due opzioni di autenticazione aggiuntive seguenti in Azure DevOps Server.

  • Negoziare Connessione ad Azure DevOps Server come utente diverso dall'utente connesso tramite uno schema autenticazione di Windows, ad esempio NTLM o Kerberos. Dopo aver selezionato Negozia, verranno richieste le credenziali.
  • Integrato (impostazione predefinita) Connessione un agente Windows a Azure DevOps Server usando le credenziali dell'utente connesso tramite uno schema autenticazione di Windows, ad esempio NTLM o Kerberos. Non verrà richiesto di immettere le credenziali dopo aver scelto questo metodo.

Importante

Il server deve essere configurato per supportare il metodo di autenticazione per l'uso dell'autenticazione alternativa, negotiate o integrata.

Il metodo di autenticazione usato per registrare l'agente viene usato solo durante la registrazione dell'agente. Per altre informazioni su come gli agenti comunicano con Azure Pipelines dopo la registrazione, vedere Comunicazione con Azure Pipelines o Azure DevOps Server.

Processo interattivo o servizio

È possibile eseguire un agente self-hosted come servizio o come processo interattivo. Dopo aver configurato l'agente, è consigliabile provarlo prima in modalità interattiva per assicurarsi che funzioni. In seguito, per l'uso in ambienti di produzione, è consigliabile eseguire l'agente in una delle modalità seguenti in modo che rimanga in uno stato di esecuzione affidabile. Queste modalità assicurano anche che l'agente venga avviato automaticamente in caso di riavvio del computer.

  1. Come servizio. È possibile usare il gestore dei servizi del sistema operativo per gestire il ciclo di vita dell'agente. Inoltre, l'esperienza per l'aggiornamento automatico dell'agente è migliore quando viene eseguita come servizio.

  2. Come processo interattivo con l'accesso automatico abilitato. In alcuni casi, potrebbe essere necessario eseguire l'agente in modo interattivo per l'uso in produzione, ad esempio per eseguire i test dell'interfaccia utente. Quando l'agente è configurato per l'esecuzione in questa modalità, viene disabilitato anche lo screen saver. Alcuni criteri di dominio potrebbero impedire l'abilitazione dell'accesso automatico o la disabilitazione dello screen saver. In questi casi, potrebbe essere necessario richiedere un'esenzione dai criteri di dominio oppure eseguire l'agente in un computer del gruppo di lavoro in cui i criteri di dominio non si applicano.

    Nota

    Ci sono rischi per la sicurezza quando si abilita l'accesso automatico o si disabilita lo screen saver perché si consente ad altri utenti di accedere al computer e di usare l'account che accede automaticamente. Se si configura l'agente per l'esecuzione in questo modo, è necessario assicurarsi che il computer sia fisicamente protetto, ad esempio installato in una struttura sicura. Se si usa Desktop remoto per accedere al computer in cui è in esecuzione un agente con accesso automatico, chiudendo semplicemente Desktop remoto il computer viene bloccato e i test dell'interfaccia utente eseguiti su questo agente potrebbero non riuscire. Per evitare questo problema, usare il comando tscon per disconnettersi da Desktop remoto. Ad esempio:

    %windir%\System32\tscon.exe 1 /dest:console

Account agente

Sia che si esegua un agente come servizio o in modo interattivo, è possibile scegliere l'account computer usato per eseguire l'agente. Si noti che questa operazione è diversa dalle credenziali usate quando si registra l'agente con Azure Pipelines o Azure DevOps Server. La scelta dell'account agente dipende esclusivamente dalle esigenze delle attività in esecuzione nei processi di compilazione e distribuzione.

Ad esempio, per eseguire attività che usano autenticazione di Windows per accedere a un servizio esterno, è necessario eseguire l'agente usando un account con accesso a tale servizio. Tuttavia, se si eseguono test dell'interfaccia utente come Selenium o test codificati dell'interfaccia utente che richiedono un browser, il browser viene avviato nel contesto dell'account agente.

In Windows è consigliabile usare un account del servizio, ad esempio servizio di rete o servizio locale. Questi account hanno autorizzazioni limitate e le relative password non scadono, il che significa che l'agente richiede meno gestione nel tempo.

Versione e aggiornamenti dell'agente

Il software agente viene aggiornato ogni poche settimane in Azure Pipelines. Viene indicata la versione dell'agente nel formato {major}.{minor}. Ad esempio, se la versione dell'agente è 2.1, la versione principale è 2 e la versione secondaria è 1.

Gli agenti ospitati da Microsoft vengono sempre aggiornati. Se la versione più recente dell'agente è diversa solo nella versione secondaria, gli agenti self-hosted possono in genere essere aggiornati automaticamente (configurare questa impostazione nei pool di agenti, selezionare l'agente, Impostazioni - l'impostazione predefinita è abilitata) da Azure Pipelines. Viene richiesto un aggiornamento quando una funzionalità della piattaforma o una delle attività usate nella pipeline richiede una versione più recente dell'agente.

Se si esegue un agente self-hosted in modo interattivo o se è disponibile una versione principale più recente dell'agente, potrebbe essere necessario aggiornare manualmente gli agenti. È possibile eseguire questa operazione facilmente dalla scheda Pool di agenti nell'organizzazione. Le pipeline non verranno eseguite finché non potranno essere destinate a un agente compatibile.

Per aggiornare gli agenti self-hosted

  1. Passare a Impostazioni progetto, Pool di agenti.

    Impostazioni del progetto, pool di agenti

  2. Selezionare il pool di agenti e scegliere Aggiorna tutti gli agenti.

    Aggiornare tutti gli agenti

    È anche possibile aggiornare gli agenti singolarmente scegliendo Aggiorna agente dal menu ... .

    Aggiornare l'agente

  3. Selezionare Aggiorna per confermare l'aggiornamento.

    Conferma di tutti gli agenti

  4. Una richiesta di aggiornamento viene accodata per ogni agente nel pool e viene eseguita al termine di qualsiasi processo in esecuzione. L'aggiornamento richiede in genere solo alcuni istanti: tempo sufficiente per scaricare la versione più recente del software agente (circa 200 MB), decomprimerlo e riavviare l'agente con la nuova versione. È possibile monitorare lo stato degli agenti nella scheda Agenti .

Il software agente viene aggiornato con ogni aggiornamento in Azure DevOps Server. Viene indicata la versione dell'agente nel formato {major}.{minor}. Ad esempio, se la versione dell'agente è 2.1, la versione principale è 2 e la versione secondaria è 1.

Quando Azure DevOps Server ha una versione più recente dell'agente e tale agente più recente è diverso solo nella versione secondaria , in genere può essere aggiornato automaticamente. Viene richiesto un aggiornamento quando una funzionalità della piattaforma o una delle attività usate nella pipeline richiede una versione più recente dell'agente. A partire da Azure DevOps Server 2019, non è necessario attendere una nuova versione del server. È possibile caricare una nuova versione dell'agente nel livello applicazione e tale versione verrà offerta come aggiornamento.

Se si esegue l'agente in modo interattivo o se è disponibile una versione principale più recente dell'agente, potrebbe essere necessario aggiornare manualmente gli agenti. È possibile eseguire questa operazione facilmente dalla scheda Pool di agenti nella raccolta di progetti. Le pipeline non verranno eseguite finché non potranno essere destinate a un agente compatibile.

È possibile visualizzare la versione di un agente passando a Pool di agenti e selezionando la scheda Funzionalità per l'agente desiderato, come descritto in Configurare le funzionalità dell'agente.

Per attivare l'aggiornamento dell'agente a livello di codice, è possibile usare l'API di aggiornamento di Agent come descritto nella sezione Come attivare gli aggiornamenti dell'agente a livello di codice per un pool di agenti specifico?

Nota

Per i server senza accesso a Internet, copiare manualmente il file ZIP dell'agente nella cartella seguente da usare come file locale. Creare la cartella Agents se non è presente.

  • Windows: %ProgramData%\Microsoft\Azure DevOps\Agents
  • Linux: usr/share/Microsoft/Azure DevOps/Agents
  • macOS: usr/share/Microsoft/Azure DevOps/Agents

Creare la cartella Agents se non è presente.

Domande frequenti

Ricerca per categorie assicurarsi di avere la versione più recente dell'agente v2?

  1. Passare alla scheda Pool di agenti:

    1. Accedere all'organizzazione (https://dev.azure.com/{yourorganization}).

    2. Scegliere Azure DevOps, Impostazioni organizzazione.

      Scegliere Impostazioni organizzazione.

    3. Scegliere Pool di agenti.

      Scegliere la scheda Pool di agenti.

    1. Accedere alla raccolta di progetti (http://your-server/DefaultCollection).

    2. Scegliere Azure DevOps, Impostazioni raccolta.

      Scegliere Impostazioni raccolta.

    3. Scegliere Pool di agenti.

      Scegliere Pool di agenti.

    1. Scegliere Azure DevOps, Impostazioni raccolta.

      Impostazioni raccolta, 2019.

    2. Scegliere Pool di agenti.

      Scegliere Pool di agenti, 2019.

  2. Fare clic sul pool che contiene l'agente.

  3. Assicurarsi che l'agente sia abilitato.

  4. Passare alla scheda funzionalità:

    1. Nella scheda Pool di agenti selezionare il pool di agenti desiderato.

      In Pool di agenti selezionare il pool di agenti desiderato.

    2. Selezionare Agenti e scegliere l'agente desiderato.

      Selezionare Agenti e scegliere l'agente.

    3. Scegliere la scheda Funzionalità .

      Scegliere la scheda Funzionalità.

      Nota

      Gli agenti ospitati da Microsoft non visualizzano le funzionalità di sistema. Per un elenco del software installato in agenti ospitati da Microsoft, vedere Usare un agente ospitato da Microsoft.

    1. Nella scheda Pool di agenti selezionare il pool desiderato.

      Selezionare il pool desiderato.

    2. Selezionare Agenti e scegliere l'agente desiderato.

      Selezionare Agenti e scegliere l'agente desiderato.

    3. Scegliere la scheda Funzionalità .

      Scheda Funzionalità agente.

    1. Nella scheda Pool di agenti selezionare il pool desiderato.

      Selezionare la scheda desiderata, 2019.

    2. Selezionare Agenti e scegliere l'agente desiderato.

      Scegliere l'agente desiderato, 2019.

    3. Scegliere la scheda Funzionalità .

      Scegliere la scheda Funzionalità, 2019.

  5. Cercare la Agent.Version funzionalità. È possibile controllare questo valore rispetto alla versione più recente dell'agente pubblicato. Vedere Agente di Azure Pipelines e controllare la pagina relativa al numero di versione più alto elencato.

  6. Ogni agente si aggiorna automaticamente quando esegue un'attività che richiede una versione più recente dell'agente. Per aggiornare manualmente alcuni agenti, fare clic con il pulsante destro del mouse sul pool e selezionare Aggiorna tutti gli agenti.

È possibile aggiornare gli agenti v2 che fanno parte di un pool di Azure DevOps Server?

Sì. A partire da Azure DevOps Server 2019, è possibile configurare il server per cercare i file del pacchetto dell'agente in un disco locale. Questa configurazione eseguirà l'override della versione predefinita fornito con il server al momento del rilascio. Questo scenario si applica anche quando il server non ha accesso a Internet.

  1. Da un computer con accesso a Internet scaricare la versione più recente dei file del pacchetto dell'agente (in .zip o .tar.gz modulo) dalla pagina Azure Pipelines Agent GitHub Releases (Versioni gitHub dell'agente di Azure Pipelines).

  2. Trasferire i file del pacchetto scaricati in ogni livello applicazione del server Azure DevOps usando un metodo di propria scelta, ad esempio unità USB, trasferimento di rete e così via. Posizionare i file dell'agente nella %ProgramData%\Microsoft\Azure DevOps\Agents cartella . Creare la cartella Agents se non è presente.

  3. Accesso completato. Il server Azure DevOps userà ora i file locali ogni volta che gli agenti vengono aggiornati. Ogni agente si aggiorna automaticamente quando esegue un'attività che richiede una versione più recente dell'agente. Tuttavia, se si desidera aggiornare manualmente alcuni agenti, fare clic con il pulsante destro del mouse sul pool e quindi scegliere Aggiorna tutti gli agenti.

Gli agenti self-hosted presentano vantaggi rispetto agli agenti ospitati da Microsoft in termini di prestazioni?

In molti casi, sì. In particolare:

  • Se si usa un agente self-hosted, è possibile eseguire compilazioni incrementali. Ad esempio, se si definisce una pipeline che non pulisce il repository e non esegue una compilazione pulita, le compilazioni vengono in genere eseguite più velocemente. Quando si usa un agente ospitato da Microsoft, non si ottengono questi vantaggi (a meno che non si usino funzionalità come la memorizzazione nella cache) perché l'agente viene eliminato definitivamente dopo il completamento della pipeline di compilazione o versione.

  • Con un agente ospitato da Microsoft l'avvio della compilazione può richiedere più tempo. Anche se l'assegnazione del processo a un agente ospitato da Microsoft richiede spesso pochi secondi, può richiedere alcuni minuti prima che un agente venga allocato a seconda del carico del sistema.

È possibile installare più agenti self-hosted nello stesso computer?

Sì. Questo approccio può funzionare bene per gli agenti che eseguono processi che non utilizzano molte risorse condivise. Ad esempio, è possibile provarlo per agenti che eseguono versioni che orchestrano principalmente le distribuzioni e non eseguono molte operazioni sull'agente stesso.

Si potrebbe notare che in altri casi non si ottiene molta efficienza eseguendo più agenti nello stesso computer. Ad esempio, potrebbe non essere utile per gli agenti che eseguono compilazioni che utilizzano molto disco e risorse di I/O.

È anche possibile riscontrare problemi se i processi di compilazione paralleli usano la stessa distribuzione dello strumento singleton, ad esempio i pacchetti npm. Ad esempio, una compilazione potrebbe aggiornare una dipendenza mentre ne è in corso un'altra compilazione e questo potrebbe causare risultati inaffidabili ed errori.

Qual è il comportamento degli agenti quando i processi della pipeline vengono annullati?

Per gli agenti ospitati da Microsoft, l'agente viene eliminato e restituito al pool di Azure Pipelines.

Per gli agenti self-hosted:

Quando una pipeline viene annullata, l'agente invia una sequenza di comandi al processo che esegue il passaggio corrente. Il primo comando viene inviato con un timeout di 7,5 secondi. Se il processo non è terminato, viene inviato un secondo comando con un timeout di 2,5 secondi. Se il processo non è stato terminato, l'agente invia un comando per terminare il processo. Se il processo non rispetta le due richieste di terminazione iniziali, verrà terminato. Dalla richiesta iniziale alla terminazione sono necessari circa 10 secondi.

I comandi rilasciati al processo per annullare la pipeline differiscono in base al sistema operativo dell'agente.

  • macOS e Linux: i comandi inviati sono SIGINT, seguiti da SIGTERM, seguiti da SIGKILL.
  • Windows: i comandi inviati al processo sono CTRL+C, seguiti da CTRL+INTERR, seguiti da Process.Kill.

Come è possibile attivare gli aggiornamenti dell'agente a livello di codice per un pool di agenti specifico?

È possibile attivare gli aggiornamenti dell'agente per il pool usando l'API seguente:

POST https://dev.azure.com/{organization}/_apis/distributedtask/pools/{poolId}/messages?agentId={agentId}&api-version=6.0
POST https://{server url}/tfs/{collection}/_apis/distributedtask/pools/{poolId}/messages?agentId={agentId}&api-version=6.0

Nota

Per altre informazioni sul mapping delle versioni dell'API e di Azure DevOps Server, vedere Mapping delle versioni dell'API e di Azure DevOps Server

Parametri dell'URI

Nome Tra Richiesto Type Descrizione
agentId query Falso string Agente da aggiornare. Se non specificato, l'aggiornamento verrà attivato per tutti gli agenti.
organization path Vero string Nome dell'organizzazione di Azure DevOps.
poolId path Vero integer int32 Pool di agenti da usare
api-version query Falso string Versione dell'API da usare. Deve essere impostato su '6.0' per usare questa versione dell'API.

Per attivare l'aggiornamento dell'agente, il corpo della richiesta deve essere vuoto.

Nota

L'agente di Azure Pipelines è open source in GitHub.

Altre informazioni

Per altre informazioni sugli agenti, vedere i moduli seguenti nel percorso di apprendimento Compilare applicazioni con Azure DevOps .