Chạy nhiều Đại lý TeamCity trên cùng một máy tính?


86

Chúng tôi có một số máy xây dựng, mỗi máy chạy một tác nhân xây dựng TeamCity duy nhất. Mỗi máy đều rất mạnh và chúng tôi muốn chạy một số tác nhân xây dựng trên cùng một máy.

Điều này có thể thực hiện được mà không cần sử dụng ảo hóa không? Có lựa chọn thay thế chất lượng nào cho TeamCity hỗ trợ điều này không?

Câu trả lời:


133

Có, có thể :

Một số tác nhân có thể được cài đặt trên một máy duy nhất. Họ hoạt động như các đại lý riêng biệt và TeamCity làm việc với họ như các đại lý khác nhau, không sử dụng thực tế là họ chia sẻ cùng một máy. Sau khi cài đặt một tác nhân, bạn có thể cài đặt thêm một tác nhân, miễn là đáp ứng các điều kiện sau:

  • các tác nhân được cài đặt trong các thư mục riêng biệt
  • họ có các thư mục tạm thời và công việc đặc biệt
  • buildAgent.properties được định cấu hình để có các giá trị khác nhau cho các thuộc tính name và ownPort

Đảm bảo rằng không có cấu hình bản dựng nào được chỉ định thư mục kiểm tra tuyệt đối (cách khác, hãy đảm bảo rằng các cấu hình bản dựng đó đã bật tùy chọn "thanh toán sạch" và chúng không thể chạy song song).

Trong Windows, để cài đặt các tác nhân bổ sung dưới dạng dịch vụ, hãy sửa đổi [agent dir] \ launcher \ conf \ wrapper.conf để thay đổi các thuộc tính để có tên riêng biệt trong máy tính:

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

Chỉ là một nhận xét, nhưng hãy nhớ rằng sẽ có rất ít lợi ích khi làm điều này nếu máy đại lý của bạn không có đủ tài nguyên cần thiết. Ví dụ, một máy ảo lõi đơn sẽ không hoạt động thông qua hàng đợi xây dựng với ba tác nhân nhanh hơn nhiều so với một tác nhân.
bopapa_1979.

13
Nếu bạn đã cài đặt và cài đặt tác nhân của mình mà không biết những điều trên (như tôi đã làm), hãy chạy "service.uninstall.bat" trên Build Agent đã cài đặt trong thư mục / bin, sau đó thực hiện những gì câu trả lời ở trên cho mỗi tác nhân. Sau đó, chạy "service.start.bat" trên mỗi tác nhân.
Brandon

2
Xuất sắc. Nhưng kỳ lạ là việc cài đặt nhiều tác nhân không được trình hướng dẫn cài đặt hỗ trợ.
Jesper Mygind,

Thật tốt khi được thông báo rằng bạn có thể gặp sự cố với tác nhân mới sau khi cài đặt nó, một lỗi như "Tác nhân Teamcity ở trạng thái ngắt kết nối (Tác nhân đã hủy đăng ký (sẽ nâng cấp))". Điều này có thể được giải quyết khi dừng tác nhân fisrt (hoặc các tác nhân khác được cài đặt) và khởi động lại tác nhân mới từ các dịch vụ (trên Windows / Windows Server). Điều này sẽ đặt tác nhân mới của bạn từ Đã ngắt kết nối thành Đã kết nối.
Santiago Rebella

Lưu ý: " Nếu bạn sử dụng trình cài đặt Windows để cài đặt tác nhân bổ sung và muốn chạy tác nhân dưới dạng dịch vụ, bạn sẽ cần thực hiện các bước thủ công vì cài đặt tác nhân thứ hai làm dịch vụ trên cùng một máy không được trình cài đặt hỗ trợ: dịch vụ hiện có bị ghi đè ”. Xem confluence.jetbrains.com/display/TCD10//… \
rsenna

30

Bạn cũng có thể xem bài đăng trên blog này để biết hướng dẫn từng bước

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


1
Tôi rất vui vì bài đăng trên blog này đã giúp được một số người. Tuy nhiên, việc làm theo chỉ dẫn trong đó đã làm hỏng dịch vụ hiện có của tôi. Ngay cả sau khi gỡ cài đặt hoàn toàn cả hai dịch vụ, xóa hai thư mục và chỉ cài đặt lại dịch vụ gốc, nó vẫn sẽ không chạy một số công việc hoạt động tốt trước khi tôi bắt đầu tất cả. Tôi đánh giá cao giải pháp từ câu trả lời được bình chọn nhiều nhất.
sirdank

3

Câu trả lời hàng đầu là phương pháp chính xác, nhưng nếu bạn muốn hoàn thành việc này dễ dàng hơn, bạn có thể sử dụng gói TeamCityAgent Chocolatey và cung cấp tên tác nhân, thư mục tác nhân và cổng --paramsvà nó sẽ xử lý việc thiết lập các tệp cấu hình cũng như kéo trong phiên bản Java được yêu cầu thông qua server-jregói.

Một lưu ý cho điều này là bạn cần sử dụng --forcetrên bất kỳ cài đặt nào sau tác nhân đầu tiên vì Chocolatey hiện không hiểu việc cài đặt cùng một ứng dụng với cấu hình khác với cài đặt "mới".

Bạn cũng sẽ cần sử dụng --version 2.0.1-beta-05vì tính năng này vẫn đang trong giai đoạn thử nghiệm, nhưng sẽ sớm chuyển sang giai đoạn thử nghiệm.

Ví dụ về cài đặt đầy đủ cho tác nhân thứ hai: choco install teamcityagent --force -y --params 'serverUrl=http://teamcity.local:8111 agentName=AgentUno agentDir=C:\buildAgentUno ownPort=9091' --version 2.0.1-beta-05

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.