परफेक्ट कंटिन्यूअस इंटीग्रेशन एनवायरनमेंट के लिए जेनकिन्स के साथ वैग्रांत को कैसे मिलाएं?


85

आपके पास एक प्रोजेक्ट है जिसे चलाने के लिए कुछ SW आवश्यकताएं मिली हैं (उदाहरण के लिए: Apache का एक विशिष्ट संस्करण, PHP का एक संस्करण, MySQL डेटाबेस का एक उदाहरण और सॉफ़्टवेयर के अन्य टुकड़े)।

आपने पहले से ही वैग्रांट की खोज कर ली है , इसलिए आपका आभासी वातावरण सभी सेटअप है। आप अपनी कॉन्फ़िगरेशन फ़ाइलों और रसोई की किताबों से बक्से बना सकते हैं।

आप जेनकिंस जैसे एक सतत एकीकरण प्रणाली के लाभों को भी समझ चुके हैं ।

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

आप इसे प्राप्त करने के लिए अपने वातावरण को कैसे सेटअप करेंगे?


4
इसके अलावा, आपका जेनकिन्स सेटअप एक वैग्रांट बॉक्स है, इसलिए आप इस CI वातावरण को कई प्लेटफार्मों पर चला सकते हैं, क्योंकि उनके बीच बहुत अंतर हैं।
Stephan Eggermont

1
क्या आपने ऐसा माहौल बनाया है? डॉकर और जेनकींस का संयोजन पहले से ही अच्छी तरह से जाना जाता है, हालांकि, यह विंडोज वातावरण के लिए पर्याप्त नहीं होगा, जिसमें केवल अच्छा विकल्प, आईएमओ, वैग्रेंट + जेनकिंस है। उदाहरण के लिए कुछ पहलुओं पर विचार किया जाता है, क्या हमें वास्तव में दासों की आवश्यकता है और क्या संदर्भों में हम मांग पर प्रति परियोजना के लिए वैरिएंट बिल्ड वातावरण बनाने के लिए एकल सर्वर का उपयोग कर सकते हैं (कई कंपनियों में केवल कुछ परियोजनाएं लगातार निर्माण कर रही हैं, बहुमत शायद ही कभी बनता है), या हमें डिस्क फुटप्रिंट को कम करने के लिए डिडुप्लीकेशन सिस्टम के शीर्ष पर इसका उपयोग करना चाहिए।
मेजकिनटोर

जवाबों:


35

यह निर्माण प्रणाली के लिए एक अच्छा समाधान है, मेरा सुझाव:

  1. आपका वर्तमान जेनकिंस मास्टर CI के रूप में काम करता है (संभवतः उपयोगकर्ता जेनकींस द्वारा शुरू किया गया है)
  2. जेनकिंस स्लेव मोड के रूप में काम करने के लिए उसी मशीन या किसी अन्य मशीन में एक और उपयोगकर्ता बनाएँ
    • जेनकिंस दास को जेनकिंस मास्टर से आमंत्रित किया जा सकता है, और यह विभिन्न उपयोगकर्ता जैसे कि योनि का उपयोग कर सकता है जिनके पास योनि के लिए अनुमति और वातावरण था, इसलिए यह मूल जेनकींस मास्टर सर्वर को बाधित नहीं करेगा
    • अपना आधार वैग्रेंट बॉक्स बनाएं, फिर आपकी तैनाती के लिए स्पीडअप का पुन: उपयोग किया जा सकता है
  3. अधिकांश इंस्टॉलेशन जानकारी (पैकेज) कठपुतली (या शेफ) द्वारा आपके vm बॉक्स में लोड की जा सकती है।

संभवतः आप veewee पर एक नज़र डाल सकते हैं, जो मक्खी पर योनि बॉक्स बना सकते हैं।

यहाँ है जेनकींस सीआई और Vagrant साथ मेक सीआई आसान इस सुझाव के लिए अपने दिशा-निर्देशों के लिए।


1
आपका लिंक दुर्भाग्य से टूट गया है
langlauf.io

2
यदि कोई व्यक्ति टूटी हुई कड़ी में रुचि रखता है, तो यहां मेक सीआई
गिल्बर्टो ट्रेविनेओ

12

आप जेनकिन्स के लिए वैग्रेंट प्लगिन आज़मा सकते हैं जो वर्तमान में जेनकिंस सीडी 1.532.3 का समर्थन करता है

आप http://unethicalblogger.com/2012/03/13/vagrant-plugin-in-action.html पर चल रहे इस प्लगइन का डेमो देख सकते हैं


7
इस प्लगइन 1.490 से ऊपर जेनकींस का समर्थन नहीं करता है, ताकि एक बड़ी सीमा हो :-(
केनी

दासों पर चलने वाले आवारा लोगों का भी समर्थन नहीं करता है :(
क्रिस्टोफ फुरमानीक

1
हां, लेकिन फिर आपको अपने आप से वीएम के सभी जीवन चक्र को संभालना होगा (नौकरी के अंत में निर्माण, नष्ट या नहीं ...)। प्लगइन के पीछे का विचार यह है कि प्लगइन आपके लिए है और फिर आप अपने मुख्य उद्देश्य पर ध्यान केंद्रित कर सकते हैं: एक वीएम को एक अलग कंटेनर के रूप में उपयोग करें।
क्रिस्टोफ फुरमानीक

2
उल्लिखित प्लगइन में एनॉयिंग मुद्दे हैं, जो अभी भी तय नहीं किए गए हैं ( मुद्दों। jenkins-ci.org/browse/JENKINS-26326 ), और विकास एक साल पहले रुका था। सिफारिश नहीं करेंगे।
रॉस इवैंटिव

1
निर्माण करने की मांग पर आवारा उदाहरण चलाना सही काम करने की तरह लगता है। यदि यह प्लगइन अभी भी दुविधा में है?
आतिफ

1

व्यक्तिगत रूप से मैं Hashicorp पैकर का उपयोग करने के लिए डेवलपर्स के लिए अपने Vagrant बक्से का निर्माण करने का सुझाव दूंगा, और फिर इसका उपयोग Docker या AWS या OpenStack छवि को आउटपुट करने के लिए करूँगा जिसे आप अपने CI सिस्टम पर चला सकते हैं। वैग्रंट एक कमाल का उपकरण है, लेकिन वीएम का ओवरहेड एक CI सिस्टम के लिए थोड़ा ऊंचा हो सकता है ताकि उन्हें लगातार ऊपर और नीचे स्पिन किया जा सके, खासकर यदि आप वास्तव में तेजी से प्रतिक्रिया चाहते हैं।

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

https://www.packer.io/docs/builders/openstack.html


अगर मैं पूछ सकता हूँ, क्या आपने एक अलग उपयोगकर्ता के रूप में जेनकिंस चलाया था ?? यदि हां, तो आपने योनि तक पहुंच प्रदान करने का प्रबंधन कैसे किया ?? धन्यवाद
Jaswanth Manigundan

जब तक योनि को सामान्य रूप से स्थापित किया जाता है तब तक इसे सिस्टम पथ पर रखा जाता है। बक्से खुद को आम तौर पर वर्तमान उपयोगकर्ता के घर निर्देशिका में लोड किए जाते हैं, लेकिन आप पर्यावरण चर के साथ योनि घर को ओवरराइड कर सकते हैं। हमने निर्माण प्रक्रिया के एक विशिष्ट संस्करण के साथ बॉक्स को खींचने के साथ इन सभी को जोड़ दिया, ताकि इसे एक बार कैश किया गया और फिर उपयोग किया गया।
ड्रैगन
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.