Menjalankan beberapa Agen TeamCity di komputer yang sama?

86

Kami memiliki beberapa mesin build, masing-masing menjalankan satu agen build TeamCity. Setiap mesin sangat kuat, dan kami ingin menjalankan beberapa agen build pada mesin yang sama.

Apakah ini mungkin, tanpa menggunakan virtualisasi ? Apakah ada alternatif kualitas untuk TeamCity yang mendukung ini?

ripper234
sumber

Jawaban:

133

Ya, itu mungkin :

Beberapa agen dapat diinstal pada satu mesin. Mereka berfungsi sebagai agen terpisah dan TeamCity bekerja dengan mereka sebagai agen yang berbeda, tidak memanfaatkan fakta bahwa mereka berbagi mesin yang sama. Setelah menginstal satu agen, Anda dapat menginstal satu agen tambahan, asalkan kondisi berikut terpenuhi:

  • agen dipasang di direktori terpisah
  • mereka memiliki direktori kerja dan temp yang berbeda
  • buildAgent.properties dikonfigurasi agar memiliki nilai yang berbeda untuk properti name dan ownPort

Pastikan, tidak ada konfigurasi build yang memiliki direktori pembayaran absolut yang ditentukan (sebagai alternatif, pastikan konfigurasi build tersebut mengaktifkan opsi "pembayaran bersih" dan tidak dapat dijalankan secara paralel).

Di bawah Windows, untuk menginstal agen tambahan sebagai layanan, ubah [agen dir] \ launcher \ conf \ wrapper.conf untuk mengubah properti agar memiliki nama yang berbeda di dalam komputer:

  • wrapper.console.title
  • wrapper.ntservice.name
  • wrapper.ntservice.displayname
  • wrapper.ntservice.description
CrazyCoder
sumber
Hanya sebuah komentar, tetapi perlu diingat bahwa hanya ada sedikit manfaat untuk melakukan ini jika mesin agen Anda tidak memiliki sumber daya yang diperlukan. Misalnya, VM inti tunggal tidak akan bekerja melalui antrean build dengan tiga agen jauh lebih cepat daripada dengan satu agen.
bopapa_1979
13
Jika Anda telah pergi dan menginstal agen Anda tanpa mengetahui hal di atas (seperti yang saya lakukan), jalankan "service.uninstall.bat" pada Build Agent yang diinstal di direktori / bin, lalu lakukan jawaban di atas untuk setiap agen. Setelah itu jalankan "service.start.bat" di masing-masing agen.
Brandon
2
Cemerlang. Tetapi aneh bahwa menginstal banyak agen tidak didukung oleh wizard penginstalan.
Jesper Mygind
Sebaiknya beri tahu bahwa Anda mungkin memiliki masalah dengan agen baru setelah menginstalnya, kesalahan seperti "Agen Teamcity dalam status terputus (Agen telah tidak terdaftar (akan meningkatkan))". Ini dapat diselesaikan dengan menghentikan agen fisrt (atau agen lain yang diinstal) dan memulai ulang yang baru dari layanan (pada Windows / Windows Server). Ini akan menyetel agen baru Anda dari Terputus ke Terhubung.
Santiago Rebella
Perhatian: " Jika Anda menggunakan penginstal Windows untuk menginstal agen tambahan dan ingin menjalankan agen sebagai layanan, Anda perlu melakukan langkah-langkah manual karena menginstal agen kedua sebagai layanan di mesin yang sama tidak didukung oleh penginstal: layanan yang ada ditimpa ". Lihat confluence.jetbrains.com/display/TCD10//… \
rsenna
30

Anda juga dapat melihat entri blog ini untuk panduan Langkah demi langkah

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

kay.one
sumber
1
Saya senang postingan blog ini telah membantu beberapa orang. Namun, mengikuti petunjuk di dalamnya merusak layanan saya saat ini. Bahkan setelah pencopotan total kedua layanan, menghapus dua direktori, dan hanya menginstal ulang layanan asli, itu masih tidak akan menjalankan beberapa pekerjaan yang berfungsi dengan baik sebelum saya memulai semua ini. Saya sangat merekomendasikan solusi dari jawaban pilihan teratas.
sirdank
3

Jawaban teratas adalah metode yang benar, tetapi jika Anda ingin menyelesaikan ini dengan lebih mudah, Anda dapat menggunakan paket TeamCityAgent Chocolatey dan memberikan nama agen, folder agen dan porta --paramsserta akan menangani pengaturan file konfigurasi serta menarik dalam versi Java yang diperlukan melalui server-jrepaket.

Satu-satunya peringatan untuk hal ini adalah Anda perlu menggunakan --forcesetiap penginstalan setelah agen pertama karena Chocolatey saat ini tidak memahami penginstalan aplikasi yang sama dengan konfigurasi berbeda sebagai penginstalan "baru".

Anda juga perlu menggunakan --version 2.0.1-beta-05karena ini masih dalam tahap pengujian, tetapi harus segera keluar dari beta.

Contoh penginstalan lengkap untuk agen kedua: 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
sumber