2012-07-19 19 views
6

मैं एक जेनकींस प्रणाली है जहाँ एक निश्चित कार्यक्रम नेटवर्क पर एक बोर्ड पर चलाने के लिए है स्थापित करने के लिए कोशिश कर रहा हूँ का एक पूल के प्रबंध, टेलनेट का उपयोग करके पहुँचा। हम यहां सैकड़ों ऐसी नौकरियों के बारे में बात कर रहे हैं, इसलिए हम कई बोर्ड स्थापित करेंगे। इसलिए, प्रत्येक नौकरी को बोर्ड आवंटित करना होता है, लेकिन पकड़ यह है कि एक ही समय में केवल एक ही नौकरी एक निश्चित बोर्ड हो सकती है, अन्यथा कार्यक्रम विफल हो जाता है।जेनकींस - संसाधनों

समाधान मैं अभी है एक मास्टर-दास सेट अप जहाँ मैं SSH का उपयोग कर एक ही मशीन से कनेक्ट (ताकि एक गुरु और एक ही मशीन पर एकाधिक दास) का उपयोग कर रहा है। प्रत्येक गुलाम नोड्स के बाद आईपी पते के लिए एक लेबल होता है जिसे प्रोग्राम को टेलनेट करना होता है। यह काम करता है, शेड्यूलिंग बुद्धिमान है, लेकिन इससे समस्याएं हो सकती हैं क्योंकि सभी नोड्स उसी मशीन पर एसएसएच का उपयोग करके कनेक्ट होते हैं। एसएसएच का उपयोग कर बोर्ड से कनेक्ट करना एक विकल्प नहीं है।

वहाँ किसी भी तरह से के रूप में ऊपर ही कार्यक्षमता प्राप्त करने के लिए है, लेकिन फिर SSH का उपयोग कर एक ही मशीन से कनेक्ट करने के बिना? तो मूल रूप से मैं यह कहने में सक्षम होना चाहता हूं: हमारे पास उपलब्ध मशीनें हैं, जब कोई नौकरी आती है तो यह उन मशीनों में से एक देती है और इसे उस मशीन से संबंधित एक लेबल (इस मामले में इसका आईपी पता) पास करती है; अब एन -1 मशीनें बाकी हैं। म्यूचुअल बहिष्करण करीब आता है, लेकिन उपर्युक्त कार्यक्षमता की अनुमति नहीं देता है, और संसाधन के लिए प्रतीक्षा की जाने वाली नौकरियां नोड के निष्पादकों में से एक को ले जाती हैं।

बहुत बहुत धन्यवाद!

+0

इसी तरह: http://stackoverflow.com/questions/10950439/resource-mange-external-nodes-in-jenkins-for-tests –

उत्तर

0

शायद तुम ताला और सिटकनी प्लगइन पर एक नज़र hava चाहिए। आप इस प्लगइन के साथ संसाधन को लॉक करने में सक्षम हैं, केवल उस बोर्ड को लॉक करने के लिए नौकरी की आवश्यकता है जिसके लिए आप चाहते हैं।

https://wiki.jenkins-ci.org/display/JENKINS/Locks+and+Latches+plugin

+1

उत्तर के लिए धन्यवाद। मुझे लगता है कि यह हालांकि एक नोड के लिए काम करेंगे नहीं, मुख्य रूप से, क्योंकि मैं जेनकींस बोर्डों गतिशील रूप से अधिक नौकरियों वितरित करना चाहते हैं, तो एक काम के आवंटन जब एक उपलब्ध है। मेरा मानना ​​है कि इस प्लगइन में ऐसी कोई चीज नहीं है, जिसके लिए आपको पहले से निर्दिष्ट करना होगा कि इसे किस बोर्ड पर चलाना चाहिए। –

4

मैं आपकी समस्या को शायद साल पहले पहले से ही हल किया जाता है पता ही है, लेकिन इस मामले में किसी और जवाब की तलाश में है और इस में चलाता है।

आप "लॉक करने योग्य संसाधन" प्लगइन का उपयोग कर सकते हैं और आईपी एड्रेस को संसाधन के नाम के रूप में सेट कर सकते हैं और इस तरह के प्रयोग test-board-ip का उपयोग कर सकते हैं। यह सरल और उपयोग करने में आसान है।

एक और संभावना "बाह्य संसाधनों डिस्पैचर" प्लगइन का उपयोग करने के लिए है। यह थोड़ा और संभावनाएं प्रदान करता है, लेकिन इसमें एक बग है जो कभी-कभी इसे लटकती है। और ऐसा लगता है कि अब कोई रखरखाव नहीं है (2013 से अंतिम अपडेट)।