Agenti di Azure Pipelines
Azure DevOps Services | Azure DevOps Server 2020 | Azure DevOps Server 2019 | TFS 2018
Nota
In Microsoft Team Foundation Server (TFS) 2018 e versioni precedenti, le pipeline di compilazione e versione sono denominate definizioni, le esecuzioni sono denominate compilazioni, le connessioni al servizio sono denominate endpoint di servizio, le fasi sono denominate ambienti e i processi vengono chiamati fasi.
Per compilare il codice o distribuire il software usando Azure Pipelines, è necessario almeno un agente. Man mano che si aggiungono più codice e persone, alla fine saranno necessari altri elementi.
Quando la pipeline viene eseguita, il sistema avvia uno o più processi. Un agente sta calcolando l'infrastruttura con software agente installato che esegue un processo alla volta.
I processi possono essere eseguiti direttamente nel computer host dell'agente o in un contenitore.
Agenti ospitati da Microsoft
Se le pipeline sono in Azure Pipelines, è possibile eseguire i processi usando un agente ospitato da Microsoft. Con gli agenti ospitati da Microsoft, le operazioni di manutenzione e di aggiornamento vengono eseguite automaticamente. Ogni volta che si esegue una pipeline, si ottiene una nuova macchina virtuale per ogni processo nella pipeline. La macchina virtuale viene eliminata 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 fornisce 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 e verificare se funziona per la propria compilazione o distribuzione. In caso contrario, si può usare un agente self-hosted.
Suggerimento
È possibile provare un agente ospitato da Microsoft senza alcun addebito.
Agenti self-hosted
Un agente configurato e gestito autonomamente per l'esecuzione dei processi è un agente self-hosted. È possibile usare agenti self-hosted in Azure Pipelines o Azure DevOps Server, denominati in precedenza Team Foundation Server (TFS). Gli agenti self-hosted offrono un maggiore controllo per installare il software dipendente necessario per le compilazioni e le distribuzioni. Inoltre, le cache a livello di computer e la configurazione vengono mantenute dall'esecuzione per l'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 può influire negativamente sulle prestazioni e sul risultato delle pipeline.
Suggerimento
Prima di installare un agente self-hosted, è possibile verificare se un pool di agenti ospitati 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, È anche possibile installare un agente in un contenitore Docker. Per altre informazioni sull'installazione di un agente self-hosted, vedere:
- Agente macOS
- Agente Linux (x64, ARM, ARM64, RHEL6)
- agente Windows (x64, x86)
- Agente Docker
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 installare qualsiasi altro software nel computer in base alle esigenze dei processi.
Nota
Gli agenti sono ampiamente compatibili con le versioni precedenti. Qualsiasi versione dell'agente deve essere compatibile con qualsiasi versione Azure DevOps, purché Azure DevOps non richieda una versione più recente dell'agente.
È supportata solo la versione più recente dell'agente perché questa è l'unica versione garantita per avere tutte le patch e le correzioni di bug aggiornate.
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 avere flessibilità rispetto alle dimensioni e all'immagine dei computer in cui vengono eseguiti gli agenti.
Si specifica 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 nella propria infrastruttura (self-hosted).
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 contemporaneamente più agenti ospitati da Microsoft o self-hosted. Per altre informazioni sui processi paralleli e sui diversi livelli gratuiti di 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 individuate automaticamente dal software dell'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 eseguite 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 funzionalità dell'agente
È possibile visualizzare i dettagli di un agente, incluse le relative funzionalità di versione e sistema, e gestire le relative funzionalità utente, passando a Pool di agenti e selezionando la scheda Funzionalità per l'agente desiderato.
Nel Web browser passare a Pool di agenti:
Scegliere Azure DevOps, Impostazioni organizzazione.

Scegliere Pool di agenti.

Scegliere Azure DevOps, Impostazioni raccolta.

Scegliere Pool di agenti.

Scegliere Azure DevOps, Impostazioni raccolta.

Scegliere Pool di agenti.

Passare al progetto e scegliere Impostazioni (icona a forma di ingranaggio) >Code agente.

Scegliere Gestisci pool.

Passare alla scheda delle funzionalità:
Nella scheda Pool di agenti selezionare il pool di agenti desiderato.

Selezionare Agenti e scegliere l'agente desiderato.

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.
Nella scheda Pool di agenti selezionare il pool desiderato.

Selezionare Agenti e scegliere l'agente desiderato.

Scegliere la scheda Funzionalità .

Nella scheda Pool di agenti selezionare il pool desiderato.

Selezionare Agenti e scegliere l'agente desiderato.

Scegliere la scheda Funzionalità .

Selezionare l'agente desiderato e scegliere la scheda Funzionalità .

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'agenteMac.
Comunicazione
Comunicazione con Azure Pipelines
Comunicazione con TFS
L'agente comunica con Azure Pipelines o Azure DevOps Server per determinare quale processo deve essere eseguito e per segnalare i log e lo stato del processo. Questa comunicazione viene sempre avviata dall'agente. Tutti i messaggi dell'agente per Azure Pipelines o Azure DevOps Server vengono eseguiti tramite HTTP o HTTPS, a seconda della modalità di configurazione dell'agente. Questo modello di pull consente di configurare l'agente in topologie diverse, come illustrato di seguito.


Ecco un modello di comunicazione comune tra l'agente e Azure Pipelines o Azure DevOps Server.
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 e non viene mantenuta 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 dei processi.
L'agente ascolta se una nuova richiesta di processo è stata pubblicata nella coda dei processi in Azure Pipelines/Azure DevOps Server usando un polling lungo HTTP. Quando è disponibile un processo, 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, codice sorgente) o modificare le risorse (ad esempio, caricare i risultati dei test) in Azure Pipelines o Azure DevOps Server all'interno di tale processo.
Al termine del processo, l'agente ignora 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 sono protetti usando la crittografia asimmetrica. Ogni agente ha una coppia di chiavi pubblica 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 il contenuto del processo usando la chiave privata. Questo è il modo in cui i segreti archiviati nelle pipeline o nei gruppi di variabili vengono protetti man mano che vengono scambiati con l'agente.
Comunicazione da distribuire nei server di destinazione
Quando si usa l'agente per distribuire gli artefatti in un set di server, deve avere la connettività "line of sight" a tali server. Per impostazione predefinita, i pool di agenti ospitati da Microsoft dispongono di connettività ai siti Web e ai 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 agente in cui vengono distribuiti gli agenti ospitati da Microsoft in modo che sia possibile 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 (che in genere è dovuto a 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 a Azure Pipelines o Team Foundation Server , come illustrato nello schema seguente.

Authentication
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 e non viene mantenuta nell'agente e non viene usata in alcuna comunicazione successiva tra l'agente e Azure Pipelines o Azure DevOps Server. Inoltre, è necessario essere un amministratore locale nel server per configurare l'agente.
L'agente può eseguire l'autenticazione in Azure Pipelines usando il metodo seguente:
L'agente può eseguire l'autenticazione in Azure DevOps Server o TFS usando uno dei metodi seguenti:
Token di accesso personale (PAT):
Generare e usare un pat per connettere un agente con Azure Pipelines o TFS 2017 e versioni successive. PAT è l'unico schema che funziona con Azure Pipelines. Il pat deve disporre di pool di agenti (lettura, gestione) ( per un agente del gruppo di distribuzione , il pat deve avere un ambito di distribuzione ( lettura, gestione) e mentre un singolo pat può essere usato per la registrazione di più agenti, il pat viene usato solo al momento della registrazione dell'agente e non per la comunicazione successiva. Per altre informazioni, vedere la sezione Autentica con un token di accesso personale (PAT) negli articoli Windows, Linux o macOS self-hosted agent.
Per usare un pat con Azure DevOps Server, è necessario configurare il server con HTTPS. Vedere Impostazioni e sicurezza del sito Web.
Integrato
Connessione un agente di Windows a TFS usando le credenziali dell'utente connesso tramite uno schema di autenticazione di Windows, ad esempio NTLM o Kerberos.
Per usare questo metodo di autenticazione, è prima necessario configurare il server TFS.
Accedere al computer in cui si esegue TFS.
Avviare Gestione Internet Information Services (IIS). Selezionare il sito TFS e assicurarsi che l'autenticazione Windows sia abilitata con un provider valido, ad esempio NTLM o Kerberos.


Negotiate
Connessione a TFS come utente diverso dall'utente connesso tramite uno schema autenticazione di Windows, ad esempio NTLM o Kerberos.
Per usare questo metodo di autenticazione, è prima necessario configurare il server TFS.
Accedere al computer in cui si esegue TFS.
Avviare Gestione Internet Information Services (IIS). Selezionare il sito TFS e assicurarsi che l'autenticazione Windows sia abilitata con il provider Di negoziazione e con un altro metodo, ad esempio NTLM o Kerberos.


Alternativo
Connessione a TFS usando l'autenticazione di base. Per usare questo metodo, è prima necessario configurare HTTPS in TFS.
Per usare questo metodo di autenticazione, è necessario configurare il server TFS come indicato di seguito:
Accedere al computer in cui si esegue TFS.
Configurare l'autenticazione di base. Vedere Uso
tfxper Team Foundation Server 2015 usando l'autenticazione di base.
Interattivo e servizio
È possibile eseguire l'agente self-hosted come servizio o un processo interattivo. Dopo aver configurato l'agente, è consigliabile provare prima di tutto in modalità interattiva per assicurarsi che funzioni. Quindi, per l'uso di produzione, è consigliabile eseguire l'agente in una delle modalità seguenti in modo che rimanga in modo affidabile in uno stato in esecuzione. Queste modalità garantiscono anche che l'agente venga avviato automaticamente se il computer viene riavviato.
Come servizio. È possibile sfruttare il service manager 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.
Come processo interattivo con accesso automatico abilitato. In alcuni casi, potrebbe essere necessario eseguire l'agente in modo interattivo per l'uso di produzione, ad esempio per eseguire test dell'interfaccia utente. Quando l'agente è configurato per l'esecuzione in questa modalità, lo screen saver è disabilitato. Alcuni criteri di dominio possono impedire di abilitare l'accesso automatico o disabilitare lo screen saver. In questi casi, potrebbe essere necessario richiedere un'esenzione dai criteri di dominio o eseguire l'agente in un computer del gruppo di lavoro in cui i criteri di dominio non si applicano.
Nota
Ci sono rischi di sicurezza quando si abilita l'accesso automatico o si disabilita lo screen saver perché si abilitano altri utenti per accedere al computer e usare l'account che accede automaticamente. Se si configura l'agente da eseguire in questo modo, è necessario assicurarsi che il computer sia fisicamente protetto; ad esempio, situato in una struttura sicura. Se si usa Desktop remoto per accedere al computer in cui un agente è in esecuzione con l'accesso automatico, la chiusura del desktop remoto causa il blocco del computer e gli eventuali 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
Se si esegue un agente come servizio o in modo interattivo, è possibile scegliere l'account computer usato per eseguire l'agente. Si noti che è diverso 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 che ha accesso a tale servizio. Tuttavia, se si eseguono test dell'interfaccia utente, ad esempio i test dell'interfaccia utente selenio o codificati che richiedono un browser, il browser viene avviato nel contesto dell'account dell'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 dell'agente viene aggiornato ogni poche settimane in Azure Pipelines.
Indicare la versione dell'agente nel formato {major}.{minor}.
Ad esempio, se la versione dell'agente è , la versione principale è 2.12 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 - il valore predefinito è abilitato) per 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
Passare a impostazioni Project, pool di agenti.

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

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

Selezionare Aggiorna per confermare l'aggiornamento.

Una richiesta di aggiornamento viene accodata per ogni agente nel pool, che viene eseguita quando tutti i processi attualmente in esecuzione vengono completati. L'aggiornamento richiede in genere solo alcuni momenti : abbastanza lungo 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 e TFS.
Indicare la versione dell'agente nel formato {major}.{minor}.
Ad esempio, se la versione dell'agente è , la versione principale è 2.12 e la versione secondaria è 1.
Quando il server Azure DevOps Server o TFS ha una versione più recente dell'agente e che l'agente più recente è diverso solo in versione secondaria, può in genere 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 dell'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 agente 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 ai 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 dell'agente 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 da C:\ProgramData\Microsoft\Azure DevOps\Agents\ usare come file locale.
Domande frequenti
Ricerca per categorie assicurarsi di avere la versione più recente dell'agente v2?
Passare alla scheda Pool di agenti :
Scegliere Azure DevOps, Impostazioni organizzazione.

Scegliere Pool di agenti.

Scegliere Azure DevOps, Impostazioni raccolta.

Scegliere Pool di agenti.

Scegliere Azure DevOps, Impostazioni raccolta.

Scegliere Pool di agenti.

Passare al progetto e scegliere Impostazioni (icona a forma di ingranaggio) >Code dell'agente.

Scegliere Gestisci pool.

Fare clic sul pool contenente l'agente.
Assicurarsi che l'agente sia abilitato.
Passare alla scheda funzionalità:
Nella scheda Pool di agenti selezionare il pool di agenti desiderato.

Selezionare Agenti e scegliere l'agente desiderato.

Scegliere la scheda Funzionalità .

Nota
Gli agenti ospitati da Microsoft non visualizzano le funzionalità di sistema. Per un elenco di software installato in agenti ospitati da Microsoft, vedere Usare un agente ospitato da Microsoft.
Nella scheda Pool di agenti selezionare il pool desiderato.

Selezionare Agenti e scegliere l'agente desiderato.

Scegliere la scheda Funzionalità .

Nella scheda Pool di agenti selezionare il pool desiderato.

Selezionare Agenti e scegliere l'agente desiderato.

Scegliere la scheda Funzionalità .

Selezionare l'agente desiderato e scegliere la scheda Funzionalità .

Cercare la
Agent.Versionfunzionalità. È possibile controllare questo valore rispetto alla versione più recente dell'agente pubblicato. Vedere Azure Pipelines Agent e controllare la pagina relativa al numero di versione più alto elencato.Ogni agente si aggiorna automaticamente quando esegue un'attività che richiede una versione più recente dell'agente. Se si desidera 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 fornita con il server al momento della versione. Questo scenario si applica anche quando il server non ha accesso a Internet.
Da un computer con accesso a Internet scaricare la versione più recente dei file del pacchetto dell'agente (in formato .zip o tar.gz) dalla pagina Azure Pipelines Agent GitHub Release.
Trasferire i file di pacchetto scaricati in ogni Azure DevOps Server livello applicazione usando un metodo scelto,ad esempio unità USB, trasferimento di rete e così via. Posizionare i file dell'agente nella
%ProgramData%\Microsoft\Azure DevOps\Agentscartella.Sei tutto impostato! Il Azure DevOps Server 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 scegliere Aggiorna tutti gli agenti.
Gli agenti self-hosted presentano vantaggi per le prestazioni rispetto agli agenti ospitati da Microsoft?
In molti casi, sì. In particolare:
Se si usa un agente self-hosted, è possibile eseguire build incrementali. Ad esempio, se si definisce una pipeline che non pulisce il repository e non esegue una compilazione pulita, le compilazioni verranno in genere eseguite più velocemente. Quando si usa un agente ospitato da Microsoft, non si ottengono questi vantaggi perché l'agente viene eliminato dopo il completamento della pipeline di compilazione o versione.
Un agente ospitato da Microsoft può richiedere più tempo per avviare la compilazione. Anche se spesso richiede solo pochi secondi per l'assegnazione del processo a un agente ospitato da Microsoft, a volte può richiedere diversi minuti per l'allocazione di un agente a seconda del carico nel sistema.
È possibile installare più agenti self-hosted nello stesso computer?
Sì. Questo approccio può funzionare bene per gli agenti che eseguono processi che non usano molte risorse condivise. Ad esempio, è possibile provarlo per gli agenti che eseguono versioni che orchestrano principalmente le distribuzioni e non funzionano molto sull'agente stesso.
Si potrebbe scoprire 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 build che usano molto disco e risorse di I/O.
È anche possibile che si verifichino problemi se i processi di compilazione paralleli usano la stessa distribuzione dello strumento singleton, ad esempio pacchetti npm. Ad esempio, una compilazione potrebbe aggiornare una dipendenza mentre un'altra compilazione si trova al centro dell'uso, che potrebbe causare risultati e errori non affidabili.
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 è terminato, l'agente invia un comando per uccidere il processo. Se il processo non rispetta le due richieste di terminazione iniziale, verrà ucciso. Dalla richiesta iniziale alla terminazione sono necessari circa 10 secondi.
I comandi emessi al processo sono diversi 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+Break, 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 successiva:
POST https://dev.azure.com/{organization}/_apis/distributedtask/pools/{poolId}/messages?agentId={agentId}&api-version=6.0
Parametri dell'URI
| Nome | In | Obbligatorio | Tipo | Descrizione |
|---|---|---|---|---|
agentId |
query | False | string | Agente da aggiornare. Se non specificato, l'aggiornamento verrà attivato per tutti gli agenti. |
organization |
path | True | string | Nome dell'organizzazione di Azure DevOps. |
poolId |
path | True | integer int32 | Pool di agenti da usare |
api-version |
query | False | string | Versione dell'API da usare. Questa opzione deve essere impostata su '6.0' per usare questa versione dell'API. |
Per attivare l'aggiornamento dell'agente: il corpo della richiesta deve essere vuoto.
Nota
Azure Pipelines Agent è open source in GitHub.
Altre informazioni
Per altre informazioni sugli agenti, vedere i moduli seguenti dal percorso di apprendimento Compilazione applicazioni con Azure DevOps percorso di apprendimento.