2011-06-07 10 views
11

मैं विंडोज पर हूं और उसी सर्वर पर टीमसिटी के एकाधिक (वर्तमान में दो) उदाहरण चलाने की कोशिश कर रहा हूं। मैंने विंडोज सेवाओं को स्थापित नहीं करना चुना और इसके बजाय सर्वर को runAll.bat कमांड के माध्यम से चलाएं। जब मैं इंस्टॉलर चला गया तो मैंने प्रत्येक के लिए अलग-अलग बंदरगाहों, नाम और पथ चुने। पहला सर्वर सफलतापूर्वक शुरू होता है, लेकिन दूसरा नहीं करता - मैं टॉमकैट विंडो दिखा रहा हूं, लेकिन यह थोड़ी देर के बाद चला गया है, हालांकि बिल्ड एजेंट विंडो रहता है।मैं उसी सर्वर पर TeamCity के कई उदाहरण कैसे चला सकता हूं?

c:\Tools\TeamCity\bin>runAll.bat start 
starting TeamCity server and agent... 
Using CATALINA_BASE: "c:\Tools\TeamCity\bin\.." 
Using CATALINA_HOME: "c:\Tools\TeamCity\bin\.." 
Using CATALINA_TMPDIR: "c:\Tools\TeamCity\bin\..\temp" 
Using JRE_HOME:  "c:\Tools\TeamCity\bin\..\jre" 
Using CLASSPATH:  "c:\Tools\TeamCity\bin\..\bin\bootstrap.jar" 
Starting TeamCity Build Agent Launcher... 
Agent home directory is C:\Tools\TeamCity\buildAgent 
Current JRE version is 1.6 

c:\Tools\TeamCity\bin>cd c:\Tools\TeamCity2\bin 

c:\Tools\TeamCity2\bin>runAll.bat start 
starting TeamCity server and agent... 
Using CATALINA_BASE: "c:\Tools\TeamCity2\bin\.." 
Using CATALINA_HOME: "c:\Tools\TeamCity2\bin\.." 
Using CATALINA_TMPDIR: "c:\Tools\TeamCity2\bin\..\temp" 
Using JRE_HOME:  "c:\Tools\TeamCity2\bin\..\jre" 
Using CLASSPATH:  "c:\Tools\TeamCity2\bin\..\bin\bootstrap.jar" 
Starting TeamCity Build Agent Launcher... 
Agent home directory is C:\Tools\TeamCity2\buildAgent 
Current JRE version is 1.6 
+2

अग्रकय इस पोस्ट पर आगे झंडे के खिलाफ हड़ताल। यह वास्तव में टीमसिटी के मुफ्त पेशेवर संस्करण के लिए लाइसेंसिंग के खिलाफ नहीं है, इसलिए इस कारण से इसे फ़्लैग करना बंद करें। –

उत्तर

10

आप दूसरे बिलाव/TeamCity उदाहरण के लिए conf\server.xml संपादित करने के लिए इतना है कि यह विभिन्न बंदरगाहों का उपयोग करता है या अलग अलग नेटवर्क इंटरफेस को बांधता है की जरूरत है, निम्नलिखित बंदरगाहों को बदलने के लिए पर्याप्त होना चाहिए::

  • यहाँ कुछ उत्पादन है Server port="8005"
  • Connector port="8080"

दो सर्वरों एक ही डाटाबेस साझा नहीं कर सकते, तो आप कॉन्फ़िगर करना होगा उन्हें TEAMCITY_DATA_PATH पर्यावरण चर के माध्यम से विभिन्न स्थानों का उपयोग करने के लिए।

यदि आप एक ही मशीन पर refer to my answer here पर कई एजेंट चलाने के लिए भी चाहते हैं।

+0

दूसरा सर्वर इस बार चलता है, लेकिन यह रिपोर्ट करता है कि डेटाबेस पहले से उपयोग में है, इसलिए टीमसिटी स्टार्टअप चरण से पहले नहीं मिल सकती है। मैंने सोचा कि वे एक और डेटाबेस का उपयोग करेंगे (क्षमा करें, मुझे जावा के बारे में कोई जानकारी नहीं है)। 'एचएसक्यूएल डेटाबेस दूसरे एप्लिकेशन द्वारा खोला गया (इन-प्रोसेस)।एसक्यूएल त्रुटि करते समय: HSQL से कनेक्ट करना SQL अपवाद: डेटाबेस पहले से ही किसी अन्य प्रक्रिया द्वारा उपयोग में है: lockFile: [email protected] [फ़ाइल = सी: \ उपयोगकर्ता \ व्यवस्थापक \ .BuildServer \ system \ buildserver। lck' यह _.buildServer 2_ में क्यों नहीं दिखता है? –

+1

दरअसल, यह बिल्कुल स्पष्ट नहीं है कि आपको टीमसिटी सर्वर के 2 उदाहरण क्यों चलने की आवश्यकता है। एक सर्वर केवल एक डेटाबेस/विन्यास के साथ काम कर सकता है। इसलिए यदि आपको वास्तव में 2 सर्वर की आवश्यकता है, तो TEAMCITY_DATA_PATH पर्यावरण चर के माध्यम से सेटिंग्स के लिए वैकल्पिक स्थान निर्दिष्ट करें। – KIR

+0

मैं एक ही मशीन पर दो टीमसिटी सर्वर चलाना चाहता हूं और उन्हें अलग-अलग डेटाबेस का उपयोग करना चाहिए। जो मैं हासिल करने की कोशिश कर रहा हूं वह यह देखने के लिए है कि क्या यह मुझे व्यावसायिक संस्करण में 20 से अधिक कॉन्फ़िगरेशन करने की अनुमति देता है। उनके अक्सर पूछे जाने वाले प्रश्नों के मुताबिक इसे काम करना चाहिए, जब तक कि मुझे यह समझ में नहीं आया: http://www.jetbrains.com/teamcity/buy/licensing_faq.html#q2 –

6

विंडोज़ सेवाओं के समान विंडोज़ बॉक्स पर एक से अधिक टीमसिटी सर्वर चलाने के लिए संभव है।

निम्न प्रक्रिया मानती है कि आप क्रमशः 8080, 8081, और 8082 बंदरगाहों पर टीमसिटी 1, टीमसिटी 2 और टीमसिटी 3 नामक टीमसिटी के 3 उदाहरण स्थापित करना चाहते हैं। यदि आप इनमें से कोई भी विवरण बदलते हैं, तो सुनिश्चित करें कि आप प्रक्रिया के दौरान परिवर्तन के अनुरूप बने रहें। इस प्रक्रिया को काम करने के लिए प्रत्येक इंस्टेंस को एक अलग विंडोज उपयोगकर्ता खाते के तहत चलाना चाहिए। यह TeamCity 7.1 के साथ किया गया था, मुझे यकीन नहीं है कि यह अन्य संस्करणों के साथ काम करता है।

यहाँ प्रक्रिया है:

  1. स्थापित TeamCity, चुनें "C: \ TeamCity1" गंतव्य फ़ोल्डर के रूप में।

  2. बिल्ड एजेंट (विंडोज़ सेवा और कोर दोनों) को अनचेक करें - इन्हें बाद में इंस्टॉल किया जाएगा।

  3. सर्वर के लिए विंडोज सेवा अनचेक करें, लेकिन कोर को चेक करें।

  4. कॉन्फ़िगरेशन निर्देशिका के रूप में "सी: \ टीमसिटी 1 \ TeamCityData \" का उपयोग करें।

  5. इस उदाहरण के लिए एक अनन्य बंदरगाह चुनें। मैंने 8080, 8081, और 8082 चुना।

  6. वांछित कदमों को 1-5 बार दोहराएं, टीमसिटी 2, टीमसिटी 3 आदि में बदलना और प्रत्येक बार बंदरगाह बदलना।

  7. प्रशासनिक उपकरण में कंप्यूटर प्रबंधन पर जाएं और प्रत्येक सेवा के लिए 1 अद्वितीय विंडोज उपयोगकर्ता खाता बनाएं (यानी टीमसिटी 1, टीमसिटी 2, और टीमसिटी 3)। सुनिश्चित करें कि पासवर्ड समाप्त नहीं हो जाते हैं। अभी के लिए, सुनिश्चित करें कि प्रत्येक उपयोगकर्ता के पास विंडोज़ पर लॉग इन करने की पर्याप्त अनुमति है। सभी कार्यक्रमों के लिए जा रहा द्वारा

  8. खुला एक ऊंचा कमांड प्रॉम्प्ट> सहायक उपकरण> कमांड प्रॉम्प्ट, राइट क्लिक करें, और "व्यवस्थापक के रूप में चलाएँ" चुनें।

  9. टीमसिटी के प्रत्येक उदाहरण के लिए इस प्रक्रिया के अंत में आदेश चलाएं, उचित टीमसिटी इंस्टेंस के साथ नंबर 1 को प्रतिस्थापित करें।

  10. आपको प्रत्येक खाते के लिए "सेवा के रूप में लॉगऑन" जोड़ने की आवश्यकता है। ऐसा करने का आसान तरीका प्रशासनिक उपकरण से सेवाओं को खोलना है, प्रत्येक सेवा पर राइट क्लिक करें, लॉग ऑन टैब पर जाएं, दोनों बॉक्स में पासवर्ड दोबारा टाइप करें, और लागू करें पर क्लिक करें।

  11. मशीन को लॉगऑफ करें और "TeamCity1" के रूप में लॉगिन करें।

  12. नियंत्रण कक्ष> उपयोगकर्ता खाते> उपयोगकर्ता खाते> मेरे पर्यावरण चर बदलें।

  13. नया क्लिक करके एक नया उपयोगकर्ता चर जोड़ें ... इसे TEAMCITY_DATA_PATH को C: \ TeamCity1 \ TeamCityData के मान के साथ नाम दें।

  14. टीमसिटी के प्रत्येक उदाहरण के लिए चरण 11-13 दोहराएं।

  15. लॉगऑफ और व्यवस्थापक खाते के साथ वापस लॉग इन करें।

  16. पर्यावरण चर संवाद में वापस जाएं और TEAMCITY_DATA_PATH नामक सिस्टम चर (उपयोगकर्ता चर नहीं) को हटाएं।

  17. ज़रूरत पड़ने पर, प्रत्येक TeamCity उपयोगकर्ता खाते के लिए अनुमतियों को बदलने ताकि वे में लॉग इन करने की अनुमति नहीं है

  18. ओपन सी:। \ TeamCity1 \ conf \ server.xml और C: \ TeamCity1 \ conf \ server-standard.xml और सर्वर पोर्ट = 8105 को अपने चयन के दूसरे बंदरगाह में बदलें। सुनिश्चित करें कि आप दोनों फाइलों में एक ही पोर्ट का उपयोग करें। TeamCity के प्रत्येक उदाहरण के लिए दोहराएं।

  19. प्रत्येक सेवा शुरू करें और प्रत्येक के लिए डेटा निर्देशिका कॉन्फ़िगर करने के लिए अपने ब्राउज़र से कनेक्ट करें। मुझे मौजूदा टीम को छोड़कर सभी टीमसिटी सेवा उदाहरणों को रोकना पड़ा या मुझे बिल्ड प्रक्रिया के दौरान "क्लाइंट प्रमाणीकृत नहीं" त्रुटि मिली, लेकिन एक बार पूरा होने पर वे ठीक काम कर रहे हैं।

  20. डेटाबेस एक्सेस को उचित के रूप में कॉन्फ़िगर करें।

  21. इन निर्देशों का उपयोग install multiple build agents on the same machine पर करें। मुझे विश्वास नहीं है कि टीमसिटी उदाहरणों के बीच एक एजेंट को साझा करना संभव है क्योंकि संचार 2-तरफा है और एक से अधिक बंदरगाहों को कॉन्फ़िगर करने का कोई तरीका प्रतीत नहीं होता है, इसलिए एजेंटों को सी को स्थापित करना शायद सबसे अच्छा है: \ TeamCity1 \ buildAgent1 \ TeamCity1BuildAgent1, सी नामित: \ TeamCity1 \ buildAgent2 \ TeamCity1BuildAgent2, सी नामित: \ TeamCity2 \ buildAgent1 \ TeamCity2BuildAgent1 नामित, आदि

  22. आप प्रत्येक TeamCity उदाहरण के लिए मानक पोर्ट उपयोग करना चाहते हैं (80 और/या 443), use IIS as a proxy for Tomcat पर इन निर्देशों का पालन करें।

Run these commands at step #9 above 

sc create TeamCity1 binPath= "\"C:\TeamCity1\bin\TeamCityService.exe\" jetservice \"/settings=C:\TeamCity1\conf\teamcity-server-service.xml\" \"/LogFile=C:\TeamCity1\logs\teamcity-winservice.log\"" DisplayName= "TeamCity Server 1" start= auto obj= ".\TeamCity1" password= "Password1" 

sc description "TeamCity1" "JetBrains TeamCity server service 1" 

NOTE: teamcity is misspelled as "teamicty" as the name of the config file in some builds. 
This is a TeamCity bug, make sure you correct the file name before 
executing these commands.
संबंधित मुद्दे