동일한 컴퓨터에서 여러 TeamCity 에이전트를 실행하고 있습니까?


86

각각 단일 TeamCity 빌드 에이전트를 실행하는 여러 빌드 머신이 있습니다. 각 머신은 매우 강력하며 동일한 머신에서 여러 빌드 에이전트를 실행하려고합니다.

가상화를 사용하지 않고도 가능 합니까? 이를 지원하는 TeamCity의 품질 대안이 있습니까?

답변:


133

예, 가능합니다 .

단일 시스템에 여러 에이전트를 설치할 수 있습니다. 이들은 별도의 에이전트로 작동하며 TeamCity는 동일한 머신을 공유한다는 사실을 활용하지 않고 서로 다른 에이전트로 작업합니다. 하나의 에이전트를 설치 한 후 다음 조건이 충족되면 추가로 설치할 수 있습니다.

  • 에이전트는 별도의 디렉토리에 설치됩니다.
  • 독특한 작업 및 임시 디렉토리가 있습니다.
  • buildAgent.properties는 name 및 ownPort 속성에 대해 다른 값을 갖도록 구성됩니다.

절대 체크 아웃 디렉토리가 지정된 빌드 구성이 없는지 확인하십시오 (또는 그러한 빌드 구성에 "클린 체크 아웃"옵션이 활성화되어 있고 병렬로 실행할 수 없는지 확인하십시오).

Windows에서 추가 에이전트를 서비스로 설치하려면 [agent dir] \ launcher \ conf \ wrapper.conf 를 수정 하여 컴퓨터 내에서 고유 한 이름을 갖도록 속성을 변경합니다.

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

참고로, 에이전트 시스템에 필요한 리소스가없는 경우이 작업을 수행하는 것이 거의 이점이 없음을 명심하십시오. 예를 들어 단일 코어 VM은 에이전트가 3 개인 빌드 큐를 통해 작동하지 않습니다.
bopapa_1979

13
위의 내용을 알지 못하고 에이전트를 설치 한 경우 (예 : 내가 한 것처럼) / bin 디렉토리에 설치된 빌드 에이전트에서 "service.uninstall.bat"를 실행 한 다음 각 에이전트에 대해 위의 대답이 말하는대로 수행하십시오. 그런 다음 각 에이전트에서 "service.start.bat"를 실행하십시오.
브랜든

2
훌륭한. 그러나 여러 에이전트 설치가 설치 마법사에서 지원되지 않는다는 것이 이상합니다.
예스퍼 Mygind은

새 에이전트를 설치 한 후 "Teamcity 에이전트가 연결이 끊긴 상태 (에이전트가 등록되지 않음 (업그레이드 예정))"와 같은 오류와 같은 오류가 발생할 수 있다는 점을 알려주는 것이 좋습니다. fisrt 에이전트 (또는 설치된 다른 에이전트)를 중지하고 서비스 (Windows / Windows Server에서)에서 새 에이전트를 다시 시작하면이 문제를 해결할 수 있습니다. 이렇게하면 새 에이전트가 연결 끊김에서 연결됨으로 설정됩니다.
Santiago Rebella

주의 : " Windows 설치 프로그램을 사용하여 추가 에이전트를 설치 하고 에이전트를 서비스로 실행하려는 경우 동일한 시스템에 서비스로 두 번째 에이전트를 설치하는 것이 설치 프로그램에서 지원되지 않으므로 수동 단계를 수행해야 합니다. 기존 서비스 덮어 씁니다 ". 참조 confluence.jetbrains.com/display/TCD10//... \
rsenna

30

이 블로그 게시물에서 단계별 가이드를 살펴볼 수도 있습니다.

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


1
이 블로그 게시물이 일부 사람들에게 도움이되어 기쁩니다. 그러나 지침에 따라 기존 서비스를 망쳤습니다. 두 서비스를 완전히 제거하고, 두 디렉터리를 삭제하고, 원래 서비스 만 다시 설치 한 후에도이 모든 작업을 시작하기 전에 제대로 작동하던 일부 작업은 여전히 ​​실행되지 않습니다. 최고 투표 답변의 솔루션을 적극 권장합니다.
sirdank

3

정답은 올바른 방법이지만이 작업을 더 쉽게 완료하려면 TeamCityAgent Chocolatey 패키지를 사용 하고 에이전트 이름, 에이전트 폴더 및 포트를 제공 --params하면 구성 파일 설정과 풀링을 처리합니다. server-jre패키지 를 통해 필요한 Java 버전에서 .

한 가지주의 할 점은 --forceChocolatey가 현재 "새"설치와 다른 구성으로 동일한 응용 프로그램을 설치하는 것을 이해하지 못하기 때문에 첫 번째 에이전트 이후의 모든 설치 에 사용해야한다는 것 입니다.

--version 2.0.1-beta-05아직 테스트 단계이기 때문에 사용해야 하지만 곧 베타 버전이 종료 될 것입니다.

두 번째 에이전트의 전체 설치 예 : choco install teamcityagent --force -y --params 'serverUrl=http://teamcity.local:8111 agentName=AgentUno agentDir=C:\buildAgentUno ownPort=9091' --version 2.0.1-beta-05

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.