हम अपनी परियोजना के लिए एक सतत एकीकरण (CI) सेवा स्थापित करना चाहते हैं। सीआई सेवा को तैनाती सहित परियोजना के जीवन के सभी पहलुओं को नियंत्रित करना चाहिए।
यही है, हम चाहते हैं कि प्रत्येक पुनरावृत्ति पर एक सीआई एजेंट एक साफ प्रणाली (विशेष रूप से Ubuntu सर्वर) लेने के लिए, हमारी परियोजना को वहां तैनात करे और परीक्षण चलाए।
हम शायद अपने आप को CI सेवा लिखेंगे, खरोंच से, क्योंकि हमारा पारिस्थितिकी तंत्र असामान्य नहीं है। सवाल यह है: प्रत्येक CI पुनरावृत्ति के लिए प्रभावी रूप से स्वच्छ स्लेट प्रणाली कैसे प्रदान करें?
प्रोजेक्ट परिनियोजन कुछ डेबियन पैकेज स्थापित करता है, कई nginx साइटों को कॉन्फ़िगर करता है, और एक कार्यान्वयन भाषा-विशिष्ट पैकेज मैनेजर (LuaRocks), सिस्टमवाइड में कुछ पैकेज भी स्थापित करता है। इससे ज्यादा घुसपैठिया कुछ नहीं (मुझे विश्वास है)। इसलिए, पूर्ण पृथक्करण और निर्मलता सुनिश्चित करने के लिए स्वच्छ स्लेट फास्ट (आधुनिक हार्डवेयर पर एक मिनट के भीतर, तेज - बेहतर) स्थापित करना अधिक महत्वपूर्ण है।
मैं दो तरीके देखता हूँ कि हमें क्या करना है:
- या तो किसी प्रकार की जेल स्थापित करें (जैसे कि lxc, शायद)।
- या कुछ आभासी मशीन स्थापित करें जो स्नैपशॉट कर सकते हैं, और उनका उपयोग कर सकते हैं।
लेकिन इस बिंदु पर मुझे निर्णय लेने के लिए पर्याप्त जानकारी नहीं है।
आप क्या सलाह देंगे? कोई अन्य विकल्प? कोई विशिष्ट उपकरण नाम?
नोट: CI सेवा एक Citrix XenServer अतिथि के अंदर चलाई जाएगी। यदि कीमतें उचित हैं, तो भुगतान किए गए समाधान ठीक हैं। (आमतौर पर वे इस क्षेत्र में उचित नहीं हैं।) रिमोट सीआई समाधान ठीक नहीं है।