Executando vários agentes TeamCity no mesmo computador?

86

Temos várias máquinas de construção, cada uma executando um único agente de construção TeamCity. Cada máquina é muito forte e gostaríamos de executar vários agentes de compilação na mesma máquina.

Isso é possível, sem usar a virtualização ? Existem alternativas de qualidade para TeamCity que suportam isso?

ripper234
fonte

Respostas:

133

Sim, é possível :

Vários agentes podem ser instalados em uma única máquina. Eles funcionam como agentes separados e o TeamCity trabalha com eles como agentes diferentes, sem utilizar o fato de que compartilham a mesma máquina. Depois de instalar um agente, você pode instalar um adicional, desde que as seguintes condições sejam atendidas:

  • os agentes são instalados em diretórios separados
  • eles têm diretórios de trabalho e temporários distintos
  • buildAgent.properties é configurado para ter valores diferentes para as propriedades name e ownPort

Certifique-se de que não há configurações de construção que tenham o diretório de checkout absoluto especificado (alternativamente, certifique-se de que essas configurações de construção tenham a opção "checkout limpo" habilitada e não possam ser executadas em paralelo).

No Windows, para instalar agentes adicionais como serviços, modifique [dir do agente] \ launcher \ conf \ wrapper.conf para alterar as propriedades para ter um nome distinto no computador:

  • wrapper.console.title
  • wrapper.ntservice.name
  • wrapper.ntservice.displayname
  • wrapper.ntservice.description
CrazyCoder
fonte
Apenas uma observação, mas lembre-se de que há poucos benefícios em fazer isso se sua máquina de agente não tiver os recursos necessários. Por exemplo, uma VM de núcleo único não funcionará por meio de uma fila de construção com três agentes muito mais rápido do que com um.
bopapa_1979
13
Se você instalou seus agentes sem saber o que precede (como eu fiz), execute "service.uninstall.bat" no Build Agent instalado no diretório / bin e, em seguida, faça o que a resposta acima diz para cada agente. Depois disso, execute "service.start.bat" em cada agente.
Brandon
2
Brilhante. Mas é estranho que a instalação de vários agentes não seja suportada pelo assistente de instalação.
Jesper Mygind
É bom ser avisado que você pode ter um problema com o novo agente após instalá-lo, um erro como "Agente Teamcity em estado desconectado (Agente cancelou o registro (fará upgrade))". Isso pode ser resolvido parando o primeiro agente (ou os outros agentes instalados) e reiniciando o novo a partir dos serviços (no Windows / Windows Server). Isso definirá seu novo agente de Desconectado para Conectado.
Santiago Rebella
Atenção: " Se você usar o instalador do Windows para instalar agentes adicionais e quiser executar o agente como um serviço, precisará executar etapas manuais, pois a instalação do segundo agente como um serviço na mesma máquina não é suportada pelo instalador: o serviço existente é sobrescrito ". Consulte confluence.jetbrains.com/display/TCD10//… \
rsenna
30

Você também pode dar uma olhada nesta postagem do blog para obter um guia passo a passo

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

kay.one
fonte
1
Estou feliz que esta postagem do blog tenha ajudado algumas pessoas. No entanto, seguir as instruções nele arruinou meu serviço existente. Mesmo após uma desinstalação completa de ambos os serviços, excluindo os dois diretórios e reinstalando apenas o serviço original, ele ainda não executará alguns trabalhos que estavam funcionando bem antes de eu começar tudo isso. Eu recomendo fortemente a solução da resposta mais votada.
sirdank
3

A primeira resposta é o método correto, mas se você quiser completar isso mais facilmente, você pode usar o pacote TeamCityAgent Chocolatey e fornecer o nome do agente, a pasta do agente e a porta como --paramse ele cuidará da configuração dos arquivos de configuração e também de puxar na versão necessária do Java por meio do server-jrepacote.

A única ressalva para isso é que você precisa usar --forceem qualquer instalação após o primeiro agente, pois o Chocolatey atualmente não entende a instalação do mesmo aplicativo com uma configuração diferente como uma "nova" instalação.

Você também precisará usar, --version 2.0.1-beta-05pois ainda está em fase de teste, mas deve sair da versão beta em breve.

Exemplo de instalação completa para um segundo 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

dragon788
fonte