जेनकिंस को फिर से कैसे शुरू करें?


19

मुझे हमारे जेनकिंस उदाहरण पर कुछ विन्यास परिवर्तन करने की आवश्यकता है जिसमें जेनकिंस को एक दो बार फिर से शामिल करना होगा। हालांकि, हमारे डेवलपर्स बार-बार यह कह रहे हैं कि मैंने जेनकिन्स को तीन दिनों में बिना नौकरी के नहीं देखा है।

जेनकिंस को सुरक्षित रूप से पुनः आरंभ करने के लिए (या तो जीयूआई के माध्यम से या कमांड लाइन के माध्यम से) एक देशी तरीका है? IE: नीचे जाने से पहले समाप्त होने के लिए वर्तमान नौकरियों की प्रतीक्षा करें, और जेनकिंस के वापस आने के बाद कतारबद्ध नौकरियों पर नज़र रखने के लिए।

मुझे पता है कि वहाँ एक प्लगइन है, लेकिन इसे स्थापित करने के लिए मुझे जेनकींस को पुनरारंभ करने की आवश्यकता है ...


मेरे सिर के ऊपर से लगता है, लेकिन गुलाम एक विकल्प को अक्षम नहीं कर रहा है? (जहाँ तक मुझे याद है कि यह चल रही नौकरियों को नहीं रोकती है लेकिन लॉन्च होने वाली कतार में अतिरिक्त नौकरियों को रोकती हैं)
Tensibai

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

जवाबों:


14

यदि आप नेविगेट करते हैं $YOUR_JENKINS_URL/updateCenter/तो आपको निम्न पृष्ठ देखना चाहिए:

यहां आप जांच सकते हैं Restart Jenkins when installation is complete and no jobs are runningकि क्या काफी सुरक्षित होना चाहिए।


यह मेरी समझ है कि पुनः आरंभ केवल तब होता है जब प्लगइन्स स्थापित करने की प्रक्रिया में होते हैं ... कोई भी ऐसा तरीका नहीं है जो कि प्लगइन्स को स्थापित किए बिना पुनः आरंभ करने के लिए बाध्य करने के लिए कोई रास्ता नहीं है?
एलेक्स

1
@ एलेक्स मैंने अभी इसे अपने उदाहरण पर परीक्षण किया है और मेरे लिए यह हमेशा लगता है कि प्लगइन इंस्टॉलेशन की परवाह किए बिना हमेशा काम करता है। के अनुसार stackoverflow.com/a/8077830 वहाँ भी एक होना चाहिए /safeRestartऔर /restartअंतिम बिंदु।
पलक झपक

1
लेकिन जब नौकरी चल रही है तो फिर से शुरू करने का सवाल नहीं है?
डैन कॉर्निलेस्कु

@DanCornilescu प्रश्न कहता है: IE: wait for current jobs to finish before going down, and keep track of queued jobs to start once Jenkins comes back up.यह वास्तव में तब होता है जब आप उस बॉक्स को चेक करते हैं।
पलक

मैं यह भी पूछ रहा था क्योंकि प्रश्न में यह भी लिखा है Jenkins without jobs running in three days- जिसका मतलब है कि प्रभाव पड़ेगा क्योंकि कुछ नौकरियों में देरी होगी। लेकिन फिर भी, नौकरी खोने से बेहतर है।
डैन कॉर्निलेस्कु

15

विजिटिंग https: // youjenkinsdomain / safeRestart इसे मोड में सेट करेगा जब यह नौकरियों के रुकने का इंतजार करेगा और फिर पुनरारंभ होगा।


2
मुझे इस विशिष्ट उत्तर का उपयोग करने की आवश्यकता थी, जब हमारे जेनकिन्स सर्वर ने खराब कर दिया और एक प्लगइन की आवश्यकता होने पर पुनः आरंभ करने में विफल रहा।
kayleeFrye_onDeck

8

आप जेनकिंस रेस्ट एपीआई ( [jenkins_url] / safeRestart ) का उपयोग करके सेफ़रस्टार्ट कमांड को निष्पादित कर सकते हैं या आप जेनकिन्स सीएलआई के माध्यम से कमांड निष्पादित कर सकते हैं ।

sudo /etc/init.d/jenkins safeRestart

एक CLI कमांड चलाना

सामान्य सिंटैक्स निम्नानुसार है (डिजाइन svn / git जैसे उपकरणों के समान है):

java -jr jenkins-cli.jar [-s JENKINS_URL] कमांड [विकल्प ...] [तर्क ...]

JENKINS_URL को पर्यावरण चर $ JENKINS_URL के माध्यम से निर्दिष्ट किया जा सकता है। यह पर्यावरण चर स्वचालित रूप से तब सेट होता है जब जेनकिंस बिल्ड के दौरान एक प्रक्रिया को कांटा करता है, जो आपको URL को स्पष्ट रूप से कॉन्फ़िगर किए बिना बिल्ड के अंदर से जेनकिंस सीएलआई का उपयोग करने की अनुमति देता है।

नोट: जब SafeRestart कमांड चल रही हो, तो रिस्टार्ट के दौरान निष्पादित की जाने वाली कोई भी नौकरी सर्वर के ऑनलाइन वापस आने पर कतारबद्ध हो जाएगी और निष्पादित हो जाएगी। सुनिश्चित करें कि यह रिबूट पर किसी भी संघर्ष का कारण नहीं है!


1

मुझे लगता है कि यह एक वास्तविक समस्या है जिसे कई हल करने की कोशिश कर रहे हैं। वहाँ कई बार जहां यह प्लगइन स्थापना पर जेनकींस को पुनः आरंभ करने के लिए बेहतर है। मेरे अनुभवों के आधार पर मैं जो सुझाव दे सकता हूं, उनमें से एक यह है:

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

मैं समझता हूं कि इसके लिए एक मैनुअल प्रयास और समन्वय की आवश्यकता है। लेकिन इसने हमारी परियोजना में इतनी अच्छी तरह से काम किया है, इसका उल्लेख करने में कोई बुराई नहीं है।


1

जेनकिंस को मैन्युअल रूप से पुनः आरंभ करने के लिए, आप निम्न में से किसी भी कमांड का उपयोग कर सकते हैं (किसी ब्राउज़र में उनका URL दर्ज करके):

(jenkins_url)/safeRestart- सभी चालू नौकरियों को पूरा करने की अनुमति देता है। नए काम फिर से शुरू होने के बाद चलने के लिए कतार में रहेंगे।

(jenkins_url)/restart - फोर्सेस के पूरा होने का इंतजार किए बिना रिस्टार्ट होने के लिए मजबूर करता है।


0

" Https: // jenkins / safeRestart " का दौरा पाइपलाइन नौकरियों के मामले में पूरी तरह से "नौकरी / निर्माण" के लिए इंतजार नहीं करता है।

ऐसा लगता है कि जेनकिंस के फिर से शुरू होने और फिर से शुरू होने के बाद पाइपलाइन को फिर से शुरू करने और फिर से शुरू करने के लिए कदमों का इंतजार करना पड़ता है।


1
मुझे लगता है कि यह @Nakilon के उत्तर के लिए एक टिप्पणी के रूप में है?
हैगेलो

0

जेनकिन्स को पुनरारंभ से प्रभावित नहीं होने के लिए डिज़ाइन किया गया है। मेरे अनुभव से, यह संभव है कि एक निर्माण पुनरारंभ के कारण विफल हो सकता है, लेकिन वे दुर्लभ हैं।

जहाँ मैं काम करता हूँ हम नियमित रूप से जेनकिंस को पुनः आरंभ करते थे। हमारे पास हर तरह की नौकरी है जिसकी आप कल्पना कर सकते हैं, कुछ छोटी, कुछ विशाल। केवल एक बार हमने एक बिल्ड फेल देखा, जहां एक अचार को फिर से नहीं बनाया जा रहा था।

उसके बाद, हम हमेशा सुरक्षित पुनरारंभ करते हैं।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.