Esecuzione di più agenti TeamCity sullo stesso computer?


87

Abbiamo diverse macchine di compilazione, ognuna delle quali esegue un singolo agente di compilazione TeamCity. Ogni macchina è molto potente e vorremmo eseguire diversi agenti di compilazione sulla stessa macchina.

È possibile senza utilizzare la virtualizzazione ? Esistono alternative di qualità a TeamCity che supportano questo?

Risposte:


133

Sì, è possibile :

È possibile installare più agenti su una singola macchina. Funzionano come agenti separati e TeamCity lavora con loro come agenti diversi, non sfruttando il fatto che condividono la stessa macchina. Dopo aver installato un agente, è possibile installarne uno aggiuntivo, purché siano soddisfatte le seguenti condizioni:

  • gli agenti vengono installati in directory separate
  • hanno directory di lavoro e temporanee distintive
  • buildAgent.properties è configurato per avere valori diversi per le proprietà name e ownPort

Assicurati che non siano presenti configurazioni di build con una directory di checkout assoluto specificata (in alternativa, assicurati che tali configurazioni di build abbiano l'opzione "clean checkout" abilitata e non possano essere eseguite in parallelo).

In Windows, per installare agenti aggiuntivi come servizi, modificare [agent dir] \ launcher \ conf \ wrapper.conf per modificare le proprietà in modo che abbiano un nome distinto all'interno del computer:

  • wrapper.console.title
  • wrapper.ntservice.name
  • wrapper.ntservice.displayname
  • wrapper.ntservice.description

Solo un'osservazione, ma tieni presente che non c'è alcun vantaggio nel farlo se la tua macchina agente non dispone delle risorse necessarie. Ad esempio, una macchina virtuale single-core non funzionerà attraverso una coda di compilazione con tre agenti molto più velocemente di quanto non funzionerà con uno.
bopapa_1979

13
Se sei andato e hai installato i tuoi agenti senza sapere quanto sopra (come ho fatto io), esegui "service.uninstall.bat" sull'agente di compilazione installato nella directory / bin, quindi fai quello che dice la risposta sopra per ogni agente. Successivamente, esegui "service.start.bat" su ogni agente.
Brandon

2
Brillante. Ma è strano che l'installazione di più agenti non sia supportata dalla procedura guidata di installazione.
Jesper Mygind

È bene essere avvisati che potresti avere un problema con il nuovo agente dopo averlo installato, un errore come "L'agente di Teamcity è disconnesso (l'agente non è registrato (si aggiornerà))". Questo può essere risolto arrestando il primo agente (o gli altri agenti installati) e riavviando il nuovo dai servizi (su Windows / Windows Server). Questo imposterà il tuo nuovo agente da Disconnesso a Connesso.
Santiago Rebella

Attenzione: " Se si utilizza il programma di installazione di Windows per installare agenti aggiuntivi e si desidera eseguire l'agente come servizio, sarà necessario eseguire passaggi manuali poiché l'installazione del secondo agente come servizio sulla stessa macchina non è supportata dal programma di installazione: il servizio esistente viene sovrascritto ". Vedi confluence.jetbrains.com/display/TCD10//… \
rsenna

30

Potresti anche dare un'occhiata a questo post del blog per una guida passo passo

http://handcraftsman.wordpress.com/2010/07/20/multiple-teamcity-build-agents-on-one-server/


1
Sono contento che questo post sul blog abbia aiutato alcune persone. Tuttavia, seguire le indicazioni in esso ha rovinato il mio servizio esistente. Anche dopo una disinstallazione completa di entrambi i servizi, l'eliminazione delle due directory e la reinstallazione solo del servizio originale, non verranno comunque eseguiti alcuni lavori che funzionavano bene prima di iniziare tutto questo. Consiglio vivamente la soluzione dalla risposta più votata.
sirdank

3

La risposta principale è il metodo corretto, ma se desideri completarlo più facilmente puoi utilizzare il pacchetto Chocolatey di TeamCityAgent e fornire il nome dell'agente, la cartella dell'agente e la porta --paramse gestirà la configurazione dei file di configurazione e il pull nella versione richiesta di Java tramite il server-jrepacchetto.

L'unico avvertimento a questo è che devi usare --force su qualsiasi installazione dopo il primo agente poiché Chocolatey attualmente non comprende l'installazione della stessa applicazione con una configurazione diversa come una "nuova" installazione.

Dovrai anche usare --version 2.0.1-beta-05 poiché questo è ancora in una fase di test, ma dovrebbe uscire presto dalla beta.

Esempio di installazione completa per un secondo agente: choco install teamcityagent --force -y --params 'serverUrl=http://teamcity.local:8111 agentName=AgentUno agentDir=C:\buildAgentUno ownPort=9091' --version 2.0.1-beta-05

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.