Condividi tramite


Agenti macOS autogestiti

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

Questo articolo fornisce indicazioni per l'uso del software agente 3.x con Azure DevOps Services e le versioni correnti di Azure DevOps Server. Per un elenco delle versioni di Azure DevOps Server che supportano l'agente 3.x, vedere Does Azure DevOps Server support the 3.x agent.

Per compilare e distribuire app Xcode, è necessario almeno un agente macOS. Questo agente può anche compilare e distribuire app Java e Android.

Nota

Questo articolo descrive come configurare un agente autogestito . Se si usa Azure DevOps Services e un agente ospitato da Microsoft soddisfa le proprie esigenze, è possibile ignorare la configurazione di un agente macOS self-hosted.

Informazioni sugli agenti

Se si conosce già cos'è un agente e come funziona, è possibile passare direttamente alle sezioni seguenti. Tuttavia, se desideri ulteriori informazioni su cosa fanno e come funzionano, vedere agenti di Azure Pipelines.

Verificare i prerequisiti

  • Sistemi operativi supportati
    • x64
      • macOS 10.15 "Catalina"
      • macOS 11.0 "Big Sur"
      • macOS 12.0 "Monterey"
      • macOS 13.0 "Ventura"
      • macOS 14.0 "Sonoma"
    • ARM64
      • macOS 11.0 "Big Sur"
      • macOS 12.0 "Monterey"
      • macOS 13.0 "Ventura"
      • macOS 14.0 "Sonoma"
  • Git - Git 2.9.0 o versione successiva (versione più recente consigliata. È possibile eseguire facilmente l'installazione con Homebrew)
  • .NET: il software agente viene eseguito in .NET 6, ma installa la propria versione di .NET in modo che non esista alcun prerequisito .NET.
  • TFVC, se stai eseguendo la compilazione da un repository TFVC, vedere i prerequisiti di TFVC .

Preparare le autorizzazioni

Se si esegue la compilazione da un repository Subversion, è necessario installare il client Subversion nel computer.

È consigliabile eseguire manualmente l'installazione dell'agente la prima volta. Dopo aver appreso il funzionamento degli agenti o se si vuole automatizzare la configurazione di molti agenti, è consigliabile usare configurazione automatica.

Sicurezza delle informazioni per gli agenti ospitati internamente

L'utente che configura l'agente ha bisogno delle autorizzazioni di amministratore del pool, ma l'utente che esegue l'agente non ne ha bisogno.

Le cartelle controllate dall'agente devono essere limitate al minor numero possibile di utenti perché contengono segreti che potrebbero essere decrittografati o esfiltrati.

L'agente di Azure Pipelines è un prodotto software progettato per eseguire il codice scaricato da origini esterne. È intrinsecamente un obiettivo per gli attacchi di esecuzione di codice remota (RCE).

È quindi importante considerare il modello di minaccia che circonda ogni singolo utilizzo degli agenti pipeline per eseguire il lavoro e decidere quali sono le autorizzazioni minime che possono essere concesse all'utente che esegue l'agente, al computer in cui viene eseguito l'agente, agli utenti che dispongono dell'accesso in scrittura alla definizione della pipeline, ai repository Git in cui è archiviato il yaml, o il gruppo di utenti che controllano l'accesso al pool per le nuove pipeline.

È consigliabile che l'identità che esegue l'agente sia diversa dall'identità con le autorizzazioni per connettere l'agente al pool. L'utente che genera le credenziali (e altri file correlati all'agente) è diverso dall'utente che deve leggerli. Pertanto, è più sicuro considerare attentamente l'accesso concesso al computer agente stesso e alle cartelle dell'agente che contengono file sensibili, come ad esempio i log e gli elementi.

È opportuno concedere l'accesso alla cartella dell'agente solo agli amministratori DevOps e all'identità utente che esegue il processo dell'agente. Gli amministratori potrebbero dover esaminare il file system per comprendere gli errori di compilazione o ottenere i file di log per poter segnalare gli errori di Azure DevOps.

Decidi quale utente utilizzerai

Come passaggio una tantum, è necessario registrare l'agente. Un utente con l'autorizzazione per amministrare la coda dell'agente deve completare questi passaggi. L'agente non userà le credenziali di questa persona nel funzionamento quotidiano, ma è necessario completare la registrazione. Maggiori informazioni su come comunicano gli agenti.

Verificare che l'utente disponga dell'autorizzazione

Assicurarsi che l'account utente che si intende usare abbia l'autorizzazione per registrare l'agente.

L'utente è proprietario dell'organizzazione di Azure DevOps o TFS o amministratore di Azure DevOps Server? Fermati qui, si dispone dell'autorizzazione.

Altrimenti:

  1. Aprire un browser e passare alla scheda pool di agenti per l'organizzazione di Azure Pipelines o il server Azure DevOps Server o TFS:

    1. Accedi alla tua organizzazione (https://dev.azure.com/{yourorganization}).

    2. Scegliere Azure DevOpsImpostazioni dell'organizzazione.

      Scegliere le impostazioni dell'organizzazione.

    3. Scegliere pool di agenti .

      Scegliere la scheda Pool di agenti.

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

    2. Scegliere Azure DevOps, Impostazioni della raccolta.

      Scegliere le impostazioni della raccolta.

    3. Scegliere pool di agenti .

      Scegliere pool di agenti.

    1. Scegliere Azure DevOps, Impostazioni della raccolta.

      Impostazioni della raccolta, 2019.

    2. Scegliere pool di agenti .

      Seleziona i pool di agenti, 2019.

  2. Selezionare il pool sul lato destro della pagina e quindi fare clic su Sicurezza.

  3. Se l'account utente che si intende usare non viene visualizzato, contatta un amministratore per farlo aggiungere. L'amministratore può essere un amministratore del pool di agenti, un proprietario dell'organizzazione Azure DevOps , o un amministratore di TFS o Azure DevOps Server .

    Se si tratta di un gruppo di distribuzione agente, l'amministratore può essere un amministratore del gruppo di distribuzione, un proprietario dell'organizzazione di Azure DevOpso un amministratore TFS o Azure DevOps Server.

    È possibile aggiungere un utente al ruolo di amministratore del gruppo di distribuzione nella scheda sicurezza nella pagina gruppi di distribuzione in Azure Pipelines.

Nota

Se viene visualizzato un messaggio simile al seguente: Spiacenti, non è stato possibile aggiungere l'identità. Provare un'identità diversa., è probabile che sia stata seguita la procedura precedente per un proprietario dell'organizzazione o un amministratore di TFS o di Azure DevOps Server. Non hai bisogno di fare niente; si dispone già dell'autorizzazione per amministrare il pool di agenti.

Scaricare e configurare l'agente

Azure Pipelines

  1. Accedere al computer usando l'account per cui sono state preparate le autorizzazioni, come illustrato nella sezione precedente.

  2. Nel Web browser accedere ad Azure Pipelines e passare alla scheda Pool di agenti:

    1. Accedere alla tua organizzazione (https://dev.azure.com/{yourorganization}).

    2. Scegliere Azure DevOps, impostazioni dell'organizzazione .

      Scegliere le impostazioni dell'organizzazione.

    3. Scegliere pool di agenti .

      Scegli la scheda pool di agenti.

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

    2. Scegliere Azure DevOps, Impostazioni della raccolta.

      Scegliere le impostazioni della raccolta.

    3. Scegliere pool di agenti .

      Scegliere pool di agenti.

    1. Scegliere Azure DevOps, Impostazioni della raccolta.

      Impostazioni della raccolta, 2019.

    2. Scegliere pool di agenti .

      Scegliere pool di agenti, 2019.

  3. Selezionare il pool predefinito, selezionare la scheda agenti e scegliere Nuovo agente.

  4. Nella finestra di dialogo Ottenere l'agente fare clic su macOS.

  5. Fare clic sul pulsante Download.

  6. Seguire le istruzioni nella pagina.

  7. Cancellare l'attributo esteso nel file tar: xattr -c vsts-agent-osx-x64-V.v.v.tar.gz.

  8. Decomprimere l'agente nella directory di tua scelta. cd a tale directory ed eseguire ./config.sh. Assicurarsi che il percorso della directory non contenga spazi perché gli strumenti e gli script non sempre utilizzano spazi di escape appropriati.

URL del server

Azure Pipelines: https://dev.azure.com/{your-organization}

Azure DevOps Server: https://{your_server}/tfs

Tipo di autenticazione

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.

  • token di accesso personale
  • Alternativo Connettersi al server di Azure DevOps o a TFS usando l'autenticazione di base. Quando si seleziona alternativo, verranno richieste le tue credenziali.

Eseguire in modo interattivo

Per indicazioni su se eseguire l'agente in modalità interattiva o come servizio, vedere Agents: Interactive vs. service.

Per eseguire l'agente in modo interattivo:

  1. Se hai eseguito l'agente come servizio, disinstalla il servizio.

  2. Esegui l'agente.

    ./run.sh
    

Per riavviare l'agente, premere CTRL+C e quindi eseguire run.sh per riavviarlo.

Per usare l'agente, eseguire un processo usando il pool dell'agente. Se non hai scelto un pool diverso, l'agente viene inserito nel pool predefinito .

Esegui una volta

Per gli agenti configurati per l'esecuzione interattiva, è possibile scegliere di fare sì che l'agente accetti un solo incarico. Per l'esecuzione in questa configurazione:

./run.sh --once

Gli agenti in questa modalità accettano un solo lavoro e quindi si arrestano in modo elegante (particolarmente utile per l'esecuzione su un servizio come Azure Container Instances).

Esecuzione come servizio avviato

Forniamo lo script ./svc.sh per l'esecuzione e la gestione del tuo agente come servizio LaunchAgent launchd. Questo script viene generato dopo la configurazione dell'agente. Il servizio ha accesso all'interfaccia utente per eseguire i test dell'interfaccia utente.

Nota

Se si preferisce altri approcci, è possibile usare qualsiasi tipo di meccanismo di servizio preferito. Consultare i file di servizio .

Token

Nella sezione seguente questi token vengono sostituiti:

  • {agent-name}

  • {tfs-name}

Ad esempio, è stato configurato un agente (come illustrato nell'esempio precedente) con il nome our-osx-agent. Negli esempi seguenti, {tfs-name} è una delle seguenti opzioni:

  • Azure Pipelines: il nome dell'organizzazione. Ad esempio, se ci si connette a https://dev.azure.com/fabrikam, il nome del servizio sarà vsts.agent.fabrikam.our-osx-agent

  • TFS: nome del server TFS AT locale. Ad esempio, se ci si connette a http://our-server:8080/tfs, il nome del servizio sarà vsts.agent.our-server.our-osx-agent

Comandi

Passare alla directory dell'agente

Ad esempio, se è stato installato nella sottocartella myagent della cartella home:

cd ~/myagent$

Installare

Comando:

./svc.sh install

Questo comando crea un launchd plist che punta a ./runsvc.sh. Questo script configura l'ambiente (altri dettagli nella sezione seguente) e avvia l'host dell'agente.

Inizio

Comando:

./svc.sh start

Prodotto:

starting vsts.agent.{tfs-name}.{agent-name}
status vsts.agent.{tfs-name}.{agent-name}:

/Users/{your-name}/Library/LaunchAgents/vsts.agent.{tfs-name}.{agent-name}.plist

Started:
13472 0 vsts.agent.{tfs-name}.{agent-name}

Il numero a sinistra è il pid se il servizio è in esecuzione. Se il secondo numero non è zero, si è verificato un problema.

Stato

Comando:

./svc.sh status

Prodotto:

status vsts.agent.{tfs-name}.{agent-name}:

/Users/{your-name}/Library/LaunchAgents/vsts.{tfs-name}.{agent-name}.testsvc.plist

Started:
13472 0 vsts.agent.{tfs-name}.{agent-name}

Il numero a sinistra è il PID se il servizio è in esecuzione. Se il secondo numero non è zero, si è verificato un problema.

Fermarsi

Comando:

./svc.sh stop

Prodotto:

stopping vsts.agent.{tfs-name}.{agent-name}
status vsts.agent.{tfs-name}.{agent-name}:

/Users/{your-name}/Library/LaunchAgents/vsts.{tfs-name}.{agent-name}.testsvc.plist

Stopped

Disinstallare

Dovresti fermarti prima di disinstallare.

Comando:

./svc.sh uninstall

Accesso e blocco automatici

In genere, il servizio agente viene eseguito solo dopo l'accesso dell'utente. Se si desidera che il servizio agente si avvii automaticamente al riavvio del computer, è possibile configurare il computer per l'accesso automatico e bloccarlo all'avvio. Vedi Imposta il Mac per l'accesso automatico durante l'avvio - Supporto Apple.

Nota

Per altre informazioni, vedere il blog Terminally Geeky: usare l'accesso automatico in modo più sicuro. Il file .plist indicato in tale blog potrebbe non essere più disponibile presso la fonte originale, ma è possibile trovare una copia qui: Lifehacker - Make OS X load your desktop before you log in.

Aggiornare le variabili di ambiente

Quando si configura il servizio, viene creato uno snapshot di alcune variabili di ambiente utili per l'utente di accesso corrente, ad esempio PATH, LANG, JAVA_HOME, ANT_HOME e MYSQL_PATH. Se è necessario aggiornare le variabili, ad esempio dopo l'installazione di un nuovo software:

./env.sh
./svc.sh stop
./svc.sh start

L'istantanea delle variabili di ambiente viene archiviata nel file .env nella directory radice dell'agente; è anche possibile alterare il file direttamente per applicare le modifiche alle variabili di ambiente.

Eseguire le istruzioni prima dell'avvio del servizio

È anche possibile eseguire istruzioni e comandi personalizzati da eseguire all'avvio del servizio. Ad esempio, è possibile configurare l'ambiente o chiamare script.

  1. Modifica runsvc.sh.

  2. Sostituire la riga seguente con le istruzioni:

    # insert anything to setup env when running as a service
    

File di servizio

Quando si installa il servizio, vengono inseriti alcuni file di servizio.

File di servizio .plist

Viene creato un file di servizio con estensione .plist:

~/Library/LaunchAgents/vsts.agent.{tfs-name}.{agent-name}.plist

Per esempio:

~/Library/LaunchAgents/vsts.agent.fabrikam.our-osx-agent.plist

./svc.sh install genera questo file da questo modello: ./bin/vsts.agent.plist.template

File .service

./svc.sh start trova il servizio leggendo il file .service, che contiene il percorso del file del servizio plist descritto in precedenza.

Meccanismi di servizio alternativi

Forniamo lo script ./svc.sh come modo pratico per gestire ed eseguire l'agente come un servizio LaunchAgent launchd. Ma è possibile usare qualsiasi tipo di meccanismo di servizio preferito.

È possibile usare il modello descritto in precedenza per facilitare la generazione di altri tipi di file di servizio. Ad esempio, si modifica il modello per generare un servizio in esecuzione come daemon di avvio se non sono necessari test dell'interfaccia utente e non si vuole configurare l'accesso e il blocco automatici. Consultare Apple Developer Library: Creazione di daemon e agenti di avvio.

Sostituire un agente

Per sostituire un agente, seguire i passaggi Scaricare e configurare nuovamente l'agente.

Quando si configura un agente con lo stesso nome di un agente già esistente, viene chiesto se si vuole sostituire l'agente esistente. Se rispondi Y, assicurati di rimuovere l'agente (vedere di seguito) che stai sostituendo. In caso contrario, dopo alcuni minuti di conflitti, uno degli agenti verrà disattivato.

Rimuovere e riconfigurare un agente

Per rimuovere l'agente:

  1. Arrestare e disinstallare il servizio come illustrato nella sezione precedente.

  2. Rimuovere l'agente.

    ./config.sh remove
    
  3. Immettere le credenziali.

Dopo aver rimosso l'agente, è possibile configurarlo di nuovo.

Configurazione non presidiata

L'agente può essere configurato da uno script senza alcun intervento umano. È necessario inviare --unattended e le risposte a tutte le domande.

Per configurare un agente, deve conoscere l'URL dell'organizzazione o la raccolta e le credenziali di un utente autorizzato a configurare gli agenti. Tutte le altre risposte sono facoltative. È possibile specificare qualsiasi parametro della riga di comando usando invece una variabile di ambiente: inserire il nome in lettere maiuscole e anteporre VSTS_AGENT_INPUT_. Ad esempio, VSTS_AGENT_INPUT_PASSWORD anziché specificare --password.

Opzioni obbligatorie

  • --unattended: l'installazione dell'agente non richiederà informazioni e tutte le impostazioni devono essere specificate nella riga di comando
  • --url <url> : URL del server. Ad esempio: https://dev.azure.com/myorganization o http://my-azure-devops-server:8080/tfs
  • --auth <type> : tipo di autenticazione. I valori validi sono:
    • pat (token di accesso personale): pat è l'unico schema che funziona con Azure DevOps Services.
    • alt (autenticazione di base)

Opzioni di autenticazione

  • Se si sceglie --auth pat:
    • --token <token> : specifica il token di accesso personale
    • PAT è l'unico schema che funziona con Azure DevOps Services.
  • Se si sceglie --auth negotiate o --auth alt:
    • --userName <userName> : specifica un nome utente
    • --password <password> : specifica una password

Nomi di pool e agenti

  • --pool <pool> : nome del pool per l'agente da aggiungere
  • --agent <agent> - Nome agente
  • --replace: sostituire l'agente in un pool. Se un altro agente è in ascolto con lo stesso nome, si verificherà un conflitto.

Configurazione dell'agente

  • --work <workDirectory>: directory di lavoro in cui vengono archiviati i dati del job. L'impostazione predefinita è _work nella radice della directory dell'agente. La directory di lavoro è di proprietà di un singolo agente e non deve essere condivisa tra più agenti.
  • --acceptTeeEula : accettare il Contratto di licenza per l'utente finale di Team Explorer Everywhere (solo macOS e Linux)
  • --disableloguploads: non trasmettere o inviare l'output del log della console al server. Al termine del lavoro, è invece possibile recuperarli dal file system dell'host dell'agente.

Solo gruppo di distribuzione

  • --deploymentGroup: configurare l'agente come agente del gruppo di distribuzione
  • --deploymentGroupName <name> - usato con --deploymentGroup per specificare il gruppo di distribuzione a cui unirsi per l'agente
  • --projectName <name> : usato con --deploymentGroup per impostare il nome del progetto
  • --addDeploymentGroupTags : usato con --deploymentGroup per indicare che devono essere aggiunti i tag del gruppo di distribuzione
  • --deploymentGroupTags <tags> : usato con --addDeploymentGroupTags per specificare l'elenco delimitato da virgole di tag per l'agente del gruppo di distribuzione, ad esempio "Web, db"

Solo ambienti

  • --addvirtualmachineresourcetags : usato per indicare che è necessario aggiungere tag di risorsa dell'ambiente
  • --virtualmachineresourcetags <tags> - usato con --addvirtualmachineresourcetags per specificare l'elenco di tag separati da virgole per l'agente risorse dell'ambiente, ad esempio "web, db"

./config.sh --help elenca sempre le risposte obbligatorie e facoltative più recenti.

Diagnostica

Se si verificano problemi con l'agente self-hosted, è possibile provare a eseguire la diagnostica. Dopo aver configurato l'agente:

./run.sh --diagnostics

Questa operazione verrà eseguita tramite una suite di diagnostica che può aiutare a risolvere il problema. La funzionalità di diagnostica è disponibile a partire dalla versione dell'agente 2.165.0.

Diagnostica di rete per gli agenti auto-ospitati

Configurare il valore di Agent.Diagnostic su true per raccogliere log aggiuntivi utilizzabili nella risoluzione di problemi di rete per gli agenti self-hosted. Per ulteriori informazioni, vedere Diagnostica di rete per gli agenti autogestiti.

Guida su altre opzioni

Per altre informazioni sulle altre opzioni:

./config.sh --help

L'aiuto fornisce informazioni sulle alternative di autenticazione e sulla configurazione senza supervisione.

Funzionalità

Le funzionalità dell'agente vengono catalogate e pubblicizzate nel pool, in modo che gli vengano assegnate solo le compilazioni e versioni che è in grado di gestire. Vedere Funzionalità dell'agente di compilazione e rilascio.

In molti casi, dopo aver distribuito un agente, sarà necessario installare software o utilità. In genere è consigliabile installare sugli agenti qualsiasi software e strumenti usati nel computer di sviluppo.

Ad esempio, se la compilazione include l'attività npm, la compilazione non verrà eseguita a meno che non sia installato un agente di compilazione nel pool in cui è installato npm.

Importante

Le funzionalità includono tutte le variabili di ambiente e i valori impostati durante l'esecuzione dell'agente. Se uno di questi valori cambia durante l'esecuzione dell'agente, è necessario riavviare l'agente per acquisire i nuovi valori. Dopo aver installato il nuovo software in un agente, è necessario riavviare l'agente per visualizzare la nuova funzionalità nel pool, in modo che la compilazione possa essere eseguita.

Se si desidera escludere le variabili di ambiente come funzionalità, è possibile designarle impostando una variabile di ambiente VSO_AGENT_IGNORE con un elenco delimitato da virgole di variabili da ignorare.

Domande frequenti

Come posso assicurarmi di avere la versione più recente dell'agente?

  1. Passare alla scheda i Pool di agenti:

    1. Accedi alla tua organizzazione (https://dev.azure.com/{yourorganization}).

    2. Scegliere Azure DevOps, Impostazioni dell'organizzazione .

      Scegliere le impostazioni dell'organizzazione.

    3. Scegliere pool di agenti .

      Scegli la scheda Pool di Agenti.

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

    2. Scegliere Azure DevOps, Impostazioni raccolta.

      Scegliere le impostazioni della raccolta.

    3. Scegliere pool di agenti .

      Scegliere pool di agenti.

    1. Scegliere Azure DevOps, Impostazioni della raccolta.

      Impostazioni raccolta 2019.

    2. Scegliere pool di agenti .

      Scegliere i pool di agenti, 2019.

  2. Selezionare il 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.

      Dai pool di agenti selezionare il pool di agenti desiderato.

    2. Seleziona Agenti e scegli l'agente desiderato.

      Selezionare gli 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 gli agenti e scegliere l'agente desiderato.

    3. Scegliere la scheda Funzionalità.

      scheda funzionalità dell'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. Cerca la funzionalità del Agent.Version. È possibile controllare questo valore rispetto alla versione dell'agente più recente pubblicata. Vedete Azure Pipelines Agent e controllate la pagina per il 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 Aggiornare tutti gli agenti.

È possibile aggiornare gli agenti 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.

  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. Inserire i file dell'agente nella cartella seguente:

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

Creare la cartella Agenti se non è presente.

  1. Tutto a posto! 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 Aggiornare tutti gli agenti.

Come posso assicurarmi di avere la versione più recente dell'agente?

  1. Passare alla scheda pool di agenti

    1. Accedere alla tua organizzazione (https://dev.azure.com/{yourorganization}).

    2. Scegliere Azure DevOps, Impostazioni dell'organizzazione.

      Scegliere le impostazioni dell'organizzazione.

    3. Scegliere pool di agenti .

      Scegli la scheda Pool di agenti.

    1. Effettua l'accesso alla raccolta di progetti (http://your-server/DefaultCollection).

    2. Scegliere Azure DevOps, Impostazioni della raccolta.

      Scegliere le impostazioni della raccolta.

    3. Scegliere pool di agenti .

      Scegliere pool di agenti.

    1. Scegliere Azure DevOps, Impostazioni della raccolta.

      Impostazioni della raccolta, 2019.

    2. Scegliere pool di agenti .

      Scegli i 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.

      Dai pool di agenti selezionare il pool di agenti desiderato.

    2. Selezionare Agenti e scegliere l'agente desiderato.

      Selezionare gli 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 gli agenti e scegliere l'agente desiderato.

    3. Scegliere la scheda Funzionalità.

      scheda funzionalità dell'agente.

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

      Selezionare la scheda desiderata, 2019.

    2. Seleziona Agenti e scegli l'agente desiderato.

      Scegliere l'agente desiderato, 2019.

    3. Scegliere la scheda Funzionalità.

      Scegli la scheda Capacità, 2019.

  5. Cerca la funzionalità Agent.Version. È possibile controllare questo valore rispetto alla versione dell'agente pubblicata più recente. Consulta Azure Pipelines Agent e controlla la pagina per il 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 Aggiornare tutti gli agenti.

È possibile aggiornare gli agenti 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 formato .zip o .tar.gz) dalla pagina Azure Pipelines Agent GitHub Releases.

  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. Inserire i file dell'agente nella cartella seguente:

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

Creare la cartella Agenti se non è presente.

  1. Va tutto bene! 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 Aggiornare tutti gli agenti.

Dove è possibile ottenere altre informazioni sul funzionamento del servizio avviato?

Apple Developer Library: Creazione di daemon e agenti di avvio

Sto eseguendo un firewall e il mio codice si trova in Azure Repos. Con quali URL deve comunicare l'agente?

Se stai eseguendo un agente in una rete sicura dietro un firewall, assicurati che l'agente possa avviare la comunicazione con gli URL e gli indirizzi IP seguenti.

URL di dominio Descrizione
https://{organization_name}.pkgs.visualstudio.com API di creazione pacchetti di Azure DevOps per le organizzazioni che usano il dominio di {organization_name}.visualstudio.com
https://{organization_name}.visualstudio.com Per le organizzazioni che usano il dominio {organization_name}.visualstudio.com
https://{organization_name}.vsblob.visualstudio.com Telemetria di Azure DevOps per le organizzazioni che usano il dominio {organization_name}.visualstudio.com
https://{organization_name}.vsrm.visualstudio.com Release Management Services per le organizzazioni che usano il dominio {organization_name}.visualstudio.com
https://{organization_name}.vssps.visualstudio.com Azure DevOps Platform Services per le organizzazioni che usano il dominio {organization_name}.visualstudio.com
https://{organization_name}.vstmr.visualstudio.com Azure DevOps Test Management Services per le organizzazioni che usano il dominio {organization_name}.visualstudio.com
https://*.blob.core.windows.net Azure Artifacts
https://*.dev.azure.com Per le organizzazioni che usano il dominio dev.azure.com
https://*.vsassets.io Azure Artifacts tramite rete CDN
https://*.vsblob.visualstudio.com Telemetria di Azure DevOps per le organizzazioni che usano il dominio dev.azure.com
https://*.vssps.visualstudio.com Azure DevOps Platform Services per le organizzazioni che usano il dominio dev.azure.com
https://*.vstmr.visualstudio.com Azure DevOps Test Management Services per le organizzazioni che usano il dominio dev.azure.com
https://app.vssps.visualstudio.com Per le organizzazioni che usano il dominio {organization_name}.visualstudio.com
https://dev.azure.com Per le organizzazioni che usano il dominio dev.azure.com
https://login.microsoftonline.com Accesso a Microsoft Entra
https://management.core.windows.net API di gestione di Azure
https://vstsagentpackage.azureedge.net Pacchetto dell'agente

Per assicurarsi che l'organizzazione sia compatibile con qualsiasi firewall o restrizione IP esistente, assicurarsi che dev.azure.com e *dev.azure.com siano aperti e aggiornare gli indirizzi IP nella lista dei consentiti affinché includano gli indirizzi IP seguenti, in base alla versione IP. Se attualmente si consente di elencare gli indirizzi IP 13.107.6.183 e 13.107.9.183, lasciarli invariati, in quanto non è necessario rimuoverli.

intervalli IPv4

  • 13.107.6.0/24
  • 13.107.9.0/24
  • 13.107.42.0/24
  • 13.107.43.0/24

intervalli IPv6

  • 2620:1ec:4::/48
  • 2620:1ec:a92::/48
  • 2620:1ec:21::/48
  • 2620:1ec:22::/48

Nota

Per altre informazioni sugli indirizzi consentiti, vedere Elenchi di indirizzi consentiti e connessioni di rete.

Come si esegue l'agente con un certificato autofirmato?

Eseguire l'agente con un certificato autofirmato

Come si esegue l'agente dietro un proxy web?

Eseguire l'agente dietro un proxy web

Come faccio a riavviare l'agente

Se si sta eseguendo l'agente in modo interattivo, vedere le istruzioni di riavvio in Eseguire in modo Interattivo. Se si esegue l'agente come servizio, seguire la procedura per Arrestare quindi Avviare l'agente.

Come si configura l'agente per ignorare un proxy Web e connettersi ad Azure Pipelines?

Se si vuole che l'agente ignori il proxy e si connetta direttamente ad Azure Pipelines, è necessario configurare il proxy Web per consentire all'agente di accedere agli URL seguenti.

Per le organizzazioni che usano il dominio *.visualstudio.com:

https://login.microsoftonline.com
https://app.vssps.visualstudio.com 
https://{organization_name}.visualstudio.com
https://{organization_name}.vsrm.visualstudio.com
https://{organization_name}.vstmr.visualstudio.com
https://{organization_name}.pkgs.visualstudio.com
https://{organization_name}.vssps.visualstudio.com

Per le organizzazioni che usano il dominio dev.azure.com:

https://dev.azure.com
https://*.dev.azure.com
https://login.microsoftonline.com
https://management.core.windows.net
https://vstsagentpackage.azureedge.net
https://vssps.dev.azure.com

Per garantire che la tua organizzazione sia compatibile con eventuali firewall o restrizioni IP esistenti, assicurati che dev.azure.com e *dev.azure.com siano aperti e aggiorna l'elenco consentito degli IP per includere i seguenti indirizzi IP, in base alla tua versione IP. Se attualmente si consente di elencare gli indirizzi IP 13.107.6.183 e 13.107.9.183, lasciarli invariati, in quanto non è necessario rimuoverli.

intervalli IPv4

  • 13.107.6.0/24
  • 13.107.9.0/24
  • 13.107.42.0/24
  • 13.107.43.0/24

intervalli IPv6

  • 2620:1ec:4::/48
  • 2620:1ec:a92::/48
  • 2620:1ec:21::/48
  • 2620:1ec:22::/48

Nota

Questa procedura consente all'agente di ignorare un proxy Web. La pipeline di compilazione e gli script devono comunque gestire il bypass del proxy Web per ogni attività e strumento eseguito nel processo di compilazione.

Ad esempio, se si usa un'attività NuGet, è necessario configurare il proxy Web per supportare il bypass dell'URL per il server che ospita il feed NuGet in uso.

Sto usando TFS e gli URL nelle sezioni precedenti non funzionano per me. Dove posso ottenere assistenza?

Impostazioni e sicurezza del sito Web

Uso TFS in locale e non vedo alcune di queste funzionalità. Perché no?

Alcune di queste funzionalità sono disponibili solo in azure Pipelines e non sono ancora disponibili in locale. Alcune funzionalità sono disponibili in sede se hai aggiornato alla versione più recente di TFS.

Prerequisiti di Team Foundation Version Control

Se utilizzerai TFVC, avrai anche bisogno di Oracle Java JDK 1.6 o di una versione successiva. A questo scopo, Oracle JRE e OpenJDK non sono sufficienti.

TEE plug-in viene usato per la funzionalità TFVC. Ha un contratto di licenza, che è necessario accettare durante la configurazione se si prevede di usare TFVC.

Poiché il plug-in TEE non è più gestito e contiene alcune dipendenze Java non aggiornate, a partire da Agent 2.198.0 non è più incluso nella distribuzione dell'agente. Tuttavia, il plug-in TEE viene scaricato durante l'esecuzione dell'attività di estrazione se si sta effettuando il checkout di un repository TFVC. Il plug-in TEE viene rimosso dopo l'esecuzione del processo.

Nota

Nota: è possibile notare che l'attività di checkout richiede molto tempo per iniziare a funzionare a causa di questo meccanismo di download.

Se l'agente è in esecuzione dietro un proxy o un firewall, è necessario accettare per garantire l'accesso al sito seguente: https://vstsagenttools.blob.core.windows.net/. Il plug-in TEE viene scaricato da questo indirizzo.

Se si usa un agente self-hosted e si riscontrano problemi con il download di TEE, è possibile installare TEE manualmente:

  1. Impostare la variabile di ambiente DISABLE_TEE_PLUGIN_REMOVAL o la variabile pipeline su true. Questa variabile impedisce all'agente di rimuovere il plug-in TEE dopo il checkout del repository TFVC.
  2. Scaricare manualmente TEE-CLC versione 14.135.0 da Versioni di GitHub di Team Explorer ovunque.
  3. Estrarre il contenuto della cartella TEE-CLC-14.135.0 in <agent_directory>/externals/tee.