मैं जानना चाहूंगा कि आप इंटरनेट से अद्यतन, पूर्व-निर्मित पैकेज खींचने के लिए एक IIS सर्वर कैसे सेट कर सकते हैं। सर्वर को आवश्यक समायोजन को कम करने के लिए बोनस अंक।
सेटिंग: जिस कंपनी में मैं काम करता हूं, वह विभिन्न ग्राहकों के लिए कस्टम वेब एप्लिकेशन बनाता है। अक्सर ग्राहक इन एप्लिकेशन को अपने आंतरिक सर्वर पर स्वयं होस्ट करना चाहते हैं। वेब साइट अक्सर कॉर्पोरेट नेटवर्क के बाहर से भी उपलब्ध नहीं होती हैं, अकेले सर्वर के प्रशासन इंटरफेस (फाइल कॉपी, रिमोट डेस्कटॉप आदि)।
दूसरी बात, हमने पाया है कि निरंतर तैनाती की रणनीति के बिना विकास में त्रुटि प्रवणता होती है, और हमने अब ऐसा नहीं करने का फैसला किया है। हमें पूरी तरह से स्क्रिप्टेड बिल्ड प्रक्रिया (भवन, तैनाती, एसक्यूएल सर्वर माइग्रेशन, सब कुछ) का उपयोग करके लगातार रिलीज (दिन में कई बार) की आवश्यकता होती है।
वर्तमान दृष्टिकोण: तो अब हमारे पास हमारे नेटवर्क पर जेनकिंस CI सर्वर है जो एक विशिष्ट पोर्ट पर इंटरनेट पर पहुंच योग्य है। हम क्लाइंट से तीन मशीनों / वीएमएस के लिए पूछते हैं: एक प्रोडक्शन सर्वर, एक स्टेजिंग सर्वर और एक बिल्ड मशीन। (और कुछ sql डेटाबेस आमतौर पर) प्रोग्रामर को लॉग ऑन करने में सक्षम होने की आवश्यकता होती है, और निर्माण मशीन पर व्यवस्थापक विशेषाधिकार होते हैं। बिल्ड मशीन को वेब सर्वर पर फ़ाइलों को कॉपी करने और डेटाबेस तक पहुंचने में सक्षम होना चाहिए। हम हर बार
- बिल्ड मशीन पर निर्माण और परिनियोजन प्रक्रिया को कॉन्फ़िगर करें
- बिल्ड मशीन पर जेनकिंस क्लाइंट लॉन्च करें ताकि हम समय-समय पर बिल्ड मशीन पर एक ट्रिगर कर सकें और उन बिल्ड पर रिपोर्टिंग कर सकें
समस्याएं: अब हम प्रत्येक ग्राहक के लिए एक बिल्ड मशीन को कॉन्फ़िगर कर रहे हैं, जिसमें समय लगता है (MSBUILD को फिर से स्थापित करना, सभी आश्रितों को नगेट करना)। हम प्रत्येक क्लाइंट को सर्वर से अत्यधिक सुरक्षित पुर्जे नेटवर्क के अंदर एक मशीन से कनेक्ट करने की भी आवश्यकता होती है, जो वास्तव में मनमाने ढंग से शेल स्क्रिप्स के निष्पादन की अनुमति देता है। इसलिए हम केवल अपने जेनकींस सर्वर तक लोगों के एक सुपर चुनिंदा समूह की अनुमति दे सकते हैं, जो उन लोगों को अड़चन बनाता है।
हम क्या चाहेंगे: अपने स्वयं के नेटवर्क पर एक बिल्ड मशीन बनाने के लिए, उस मशीन ने पैकेज बनाए और क्लाइंट मशीन पर उन पैकेजों को स्थापित किया। हमारा पैकेज होस्ट क्लाइंट की मशीन से कनेक्शन शुरू करने में सक्षम नहीं होगा (क्योंकि क्लाइंट की मशीन इंटरनेट पर उपलब्ध नहीं है), इसलिए IIS सर्वर को नए पैकेज संस्करणों के लिए चुनाव करना होगा। चूँकि IIS मशीन को कॉन्फ़िगर करने वाला वेबसाइट का काम प्रशासक का मुख्य कार्य नहीं है, इसलिए इसमें बहुत काम की आवश्यकता नहीं होनी चाहिए। इसे पैकेज के निर्माता (यानी हमें) को मशीन का बहुत अधिक नियंत्रण नहीं देना चाहिए। अधिमानतः पैकेज को फ़ाइलें और IIS कॉन्फ़िगरेशन प्रदान करना चाहिए और बहुत अधिक नहीं।
मेरा प्रश्न: मैं पैकेजिंग और सिस्टम प्रशासन में हाल के घटनाक्रम से परिचित नहीं हूं। ऊपर वर्णित प्रक्रिया को लागू करने के लिए मैं किस दृष्टिकोण का उपयोग कर सकता हूं? मैंने वेब डिप्लॉय , विज़िटर , विभिन्न CI सर्वर और ऑक्टोपस को तैनात किया है , लेकिन सभी को क्लाइंट के नेटवर्क पर व्यापक कॉन्फ़िगरेशन या IIS मशीन के व्यवस्थापक एक्सेस की आवश्यकता होती है।
क्या अब यहाँ कोई हमारे लक्ष्यों तक पहुँच सकता है?