¿Ejecuta varios agentes de TeamCity en la misma computadora?

86

Tenemos varias máquinas de compilación, cada una de las cuales ejecuta un único agente de compilación de TeamCity. Cada máquina es muy potente y nos gustaría ejecutar varios agentes de compilación en la misma máquina.

¿Es esto posible sin utilizar la virtualización ? ¿Existen alternativas de calidad a TeamCity que respalden esto?

destripador234
fuente

Respuestas:

133

Si, es posible :

Se pueden instalar varios agentes en una sola máquina. Funcionan como agentes separados y TeamCity trabaja con ellos como agentes diferentes, sin utilizar el hecho de que comparten la misma máquina. Después de instalar un agente, puede instalar uno adicional, siempre que se cumplan las siguientes condiciones:

  • los agentes se instalan en directorios separados
  • tienen directorios temporales y de trabajo distintivos
  • buildAgent.properties está configurado para tener diferentes valores para el nombre y las propiedades ownPort

Asegúrese de que no haya configuraciones de compilación que tengan un directorio de pago absoluto especificado (alternativamente, asegúrese de que dichas configuraciones de compilación tengan habilitada la opción "pago limpio" y que no se puedan ejecutar en paralelo).

En Windows, para instalar agentes adicionales como servicios, modifique [agent dir] \ launcher \ conf \ wrapper.conf para cambiar las propiedades para que tengan un nombre distinto dentro de la computadora:

  • wrapper.console.title
  • wrapper.ntservice.name
  • wrapper.ntservice.displayname
  • wrapper.ntservice.description
CrazyCoder
fuente
Solo un comentario, pero tenga en cuenta que hacer esto tiene pocos beneficios si su máquina de agente no tiene los recursos necesarios. Por ejemplo, una VM de un solo núcleo no funcionará a través de una cola de compilación con tres agentes mucho más rápido que con uno.
bopapa_1979
13
Si ha instalado sus agentes sin saber lo anterior (como yo), ejecute "service.uninstall.bat" en el Build Agent instalado en el directorio / bin, luego haga lo que dice la respuesta anterior para cada agente. Después de eso, ejecute "service.start.bat" en cada agente.
Brandon
2
Brillante. Pero es extraño que el asistente de instalación no admita la instalación de varios agentes.
Jesper Mygind
Es bueno saber que puede tener un problema con el nuevo agente después de instalarlo, un error como "Agente de Teamcity en estado desconectado (el agente no está registrado (se actualizará))". Esto se puede resolver deteniendo el primer agente (o los otros agentes instalados) y reiniciando el nuevo desde los servicios (en Windows / Windows Server). Esto configurará su nuevo agente de Desconectado a Conectado.
Santiago Rebella
Atención: " Si utiliza el instalador de Windows para instalar agentes adicionales y desea ejecutar el agente como un servicio, deberá realizar los pasos manuales, ya que la instalación del segundo agente como un servicio en la misma máquina no es compatible con el instalador: el servicio existente se sobrescribe ". Ver confluence.jetbrains.com/display/TCD10//… \
rsenna
30

También puede echar un vistazo a esta publicación de blog para obtener una guía paso a paso

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

kay.one
fuente
1
Me alegro de que esta publicación de blog haya ayudado a algunas personas. Sin embargo, seguir las instrucciones arruinó mi servicio existente. Incluso después de una desinstalación completa de ambos servicios, eliminar los dos directorios y reinstalar solo el servicio original, todavía no ejecutará algunos trabajos que funcionaban bien antes de comenzar todo esto. Recomiendo encarecidamente la solución de la respuesta más votada.
sirdank
3

La respuesta principal es el método correcto, pero si desea completar esto más fácilmente, puede usar el paquete TeamCityAgent Chocolatey y proporcionar el nombre del agente, la carpeta del agente y el puerto, --paramsy se encargará de configurar los archivos de configuración y extraer en la versión requerida de Java a través del server-jrepaquete.

La única advertencia a esto es que debe usar --forceen cualquier instalación después del primer agente, ya que Chocolatey no comprende actualmente la instalación de la misma aplicación con una configuración diferente como una instalación "nueva".

También deberá usarlo, --version 2.0.1-beta-05ya que aún se encuentra en una fase de prueba, pero debería salir pronto de la versión beta.

Ejemplo de instalación completa para un 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

dragón788
fuente