अपने रूबी ऑन रेल्स ऐप के लिए कैपिस्ट्रानो क्यों चुनें?
<पी> आप सोच रहे होंगे कि क्या इन दिनों तैनाती के लिए कैपिस्ट्रानो का उपयोग जारी रखना अभी भी समझ में आता है। अब हमारे पास तैनाती और निरंतर एकीकरण के लिए कई उपकरण और सेवाएँ उपलब्ध हैं। <पी> लेकिन इसका उत्तर देने के लिए, हमें कैपिस्ट्रानो की उत्पत्ति और आज तक इसके विकास पर फिर से विचार करने की आवश्यकता है। कैपिस्ट्रानो रिपॉजिटरी में पहला टैग 2006 में बनाया गया था। इसका उद्देश्य डीएसएल का उपयोग करके कई मशीनों पर समानांतर में एसएसएच के माध्यम से दूरस्थ रूप से कमांड के निष्पादन की अनुमति देना था। तब से, कैपिस्ट्रानो प्रत्येक संस्करण में कई सुविधाएँ जोड़कर विकसित हुआ है। <पी> वर्तमान में 16 वर्षों के बाद संस्करण 3 पर, कैपिस्ट्रानो सक्रिय रूप से विकसित हो रहा है और अब इसे स्वचालित परिनियोजन स्क्रिप्ट के निर्माण के लिए एक ढांचे के रूप में जाना जाता है। <पी> इसलिए यह अब केवल दूरस्थ मशीनों पर कमांड चलाने का उपकरण नहीं रह गया है। कैपिस्ट्रानो की विशेषताओं के अलावा, कई प्लगइन्स और अन्य रत्न विशेष रूप से कैपिस्ट्रानो के साथ चलते हैं। <पी> इस वजह से और इस तथ्य के कारण कि एक बड़ा समुदाय अभी भी कैपिस्ट्रानो का उपयोग करता है, यह स्वचालित तैनाती के लिए एक महान उपकरण बना हुआ है।अपने रूबी ऑन रेल्स ऐप में कैपिस्ट्रानो जोड़ना
<पी> सबसे पहले, आपको कैपिस्ट्रानो के साथ एकीकृत करने के लिए रूबी ऑन रेल्स एप्लिकेशन को कॉन्फ़िगर करना होगा। आप कैपिस्ट्रानो के दस्तावेज़ का अनुसरण कर सकते हैं। हालाँकि, इसमें इस पोस्ट के दायरे के लिए आपकी आवश्यकता से अधिक जानकारी है। इसलिए सरलता के लिए, इस लेख में केवल आवश्यक चरण और कॉन्फ़िगरेशन शामिल हैं जिनकी आपको आवश्यकता होगी। <पी> कॉन्फ़िगरेशन प्रारंभ करने के लिए, अपने जेमफ़ाइल के विकास अनुभाग में कैपिस्ट्रानो रत्न जोड़ें: <पी> आपको अपने डेटाबेस पर माइग्रेशन चलाने और संपत्तियों को संभालने के लिए कैपिस्ट्रानो-रेल रत्न की आवश्यकता है जिसे हम अगले अनुभागों में देखेंगे। <पी> अबbundle install चलाएँ अपने एप्लिकेशन में कैपिस्ट्रानो जोड़ने के लिए: <पी> फिर आप कैपिस्ट्रानो इंस्टॉल कर सकते हैं: <पी> यह कमांड Capfile नामक एक फ़ाइल बनाएगा जो आवश्यक पुस्तकालयों को आयात और कॉन्फ़िगर करता है। इसके अलावा, एक फ़ाइल जिसे deploy.rb कहा जाता है (config के अंदर बनाया गया फ़ोल्डर) में वे सभी कॉन्फ़िगरेशन शामिल होंगे जिन्हें कैपिस्ट्रानो के साथ परिनियोजन में शामिल किया जाना चाहिए। <पी> नोट: कैपिस्ट्रानो deploy.rb को ओवरराइड करने के लिए एक फ़ाइल बनाता है स्टेजिंग और उत्पादन परिवेश दोनों के लिए कॉन्फ़िगरेशन, लेकिन वह इस आलेख में शामिल नहीं किया जाएगा। <पी> इसके साथ, आप अपने रूबी ऑन रेल्स एप्लिकेशन और सर्वर के बीच कॉन्फ़िगरेशन और संचार शुरू करने के लिए तैयार हैं। आपके रेल ऐप के लिए कैपिस्ट्रानो के साथ सर्वर कॉन्फ़िगरेशन
<पी> इस चरण में, हम कैपिस्ट्रानो कॉन्फ़िगरेशन फ़ाइल में निर्देश जोड़ेंगे। निर्देश आपके सर्वर को सूचित करेंगे कि आपका ऐप कहां तैनात किया जाएगा। यह वह जगह है जहां हम पहुंच जानकारी और सुरक्षा कॉन्फ़िगरेशन को परिभाषित करेंगे। <पी> यह सुनिश्चित करने के लिए कि आपका उत्पादन वातावरण रूबी के उसी संस्करण को चलाता है जैसा कि आप विकास में उपयोग करते हैं, रूबी संस्करण प्रबंधक का उपयोग करें, जैसे आरवीएम या rbenv (कैपिस्ट्रानो दोनों का समर्थन करता है)। <पी> इस आलेख में, हम RVM का उपयोग करेंगे. सुनिश्चित करें कि आपकी विकास मशीन और उत्पादन सर्वर पर आरवीएम स्थापित है। साथ ही, जांचें कि क्या रूबी का आपका संस्करण आपके परिवेश और प्रोजेक्ट में समान है।capistrano-rvm जोड़ा जा रहा है रत्न
<पी> कैपिस्ट्रानो प्रोजेक्ट कैपिस्ट्रानो-जेम नामक एक रत्न प्रदान करता है जो आपको आरवीएम को आसानी से कॉन्फ़िगर करने देता है। इसे अपने प्रोजेक्ट में शामिल करने के लिए, इसे अपने विकास समूह के भीतर अपने Gemfile में जोड़ें, और bundle install चलाएँ फिर से. <पी> कैपिस्ट्रानो-आरवीएम आयात के साथ अपनी कैपफ़ाइल को अपडेट करें: <पी> परिनियोजन फ़ाइल में, रूबी संस्करण और आरवीएम के पथ को सेट करने के लिए एक कॉन्फ़िगरेशन जोड़ें (विशेषकर यदि आपने आरवीएम को स्थापित करने के लिए एक अलग पथ का उपयोग किया है)। <पी> यदि रूबी का कोई संस्करण परिभाषित नहीं है, तो कैपिस्ट्रानो नवीनतम संस्करण चुनता है जिसे आपने सर्वर पर इंस्टॉल किया है जहां आपका एप्लिकेशन तैनात किया जाएगा। <पी> कैपिस्ट्रानो::आरवीएम में आरवीएम के लिए अन्य सेटिंग्स हैं, लेकिन यहां दिखाई गई सेटिंग्स वही हैं जिनकी आपको आरंभ करने के लिए आवश्यकता होगी। अपना सर्वर कॉन्फ़िगरेशन सेट करें
<पी> परिनियोजन के लिए उपयोगकर्ता को परिभाषित करना अच्छा अभ्यास है। परिनियोजन शुरू करने से पहले अपने सर्वर पर इन चरणों का पालन करना न भूलें:- अपनी स्थानीय मशीन पर उत्पन्न सार्वजनिक कुंजी को
~/home/YOUR_USER/.ssh/authorized_keysमें जोड़ें फ़ाइल. - एक कुंजी बनाएं और सार्वजनिक कुंजी को कोड रिपॉजिटरी में शामिल करें। यह आपको उत्पादन सर्वर के भीतर अपने प्रोजेक्ट को क्लोन करने की सुविधा देता है। यदि आप GitHub का उपयोग कर रहे हैं, तो आप इस दस्तावेज़ का अनुसरण कर सकते हैं।
- लिखने के लिए अनुमतियाँ
/var/www/पर सेट करें निर्देशिका.
config/deploy/<environment_name>.rb के अंदर एक नई कॉन्फ़िगरेशन फ़ाइल बनाने की आवश्यकता है , फिर अपने सर्वर से कनेक्ट करने के लिए आईपी या डीएनएस और उपयोगकर्ता नाम कॉन्फ़िगर करें। <पी> परिनियोजन सेटअप को पूरा करने के लिए, अपने एप्लिकेशन के बारे में जानकारी शामिल करें, जैसे एप्लिकेशन का नाम और कोड रिपॉजिटरी URL। कोई भी जानकारी जो सभी परिवेशों के लिए समान है उसे config/deploy.rb में जोड़ा जाना चाहिए . विशिष्ट पर्यावरण कॉन्फ़िगरेशन को config/deploy/<environment_name>.rb में रखें . सेट अप capistrano-secrets-yml जेम फॉर योर रेल्स ऐप
<पी> आपको कैपिस्ट्रानो-सीक्रेट्स-वाईएमएल रत्न भी स्थापित करना चाहिए। <पी> रत्न को अपने जेमफ़ाइल में जोड़ें और इंस्टॉल करने के लिए बंडल चलाएँ: <पी> इसे कैपफ़ाइल में आयात करें: <पी> फिर config/secret.yml बनाएं अपने एप्लिकेशन में और गुप्त कुंजी आधार को पर्यावरण चर के रूप में शामिल करें। यह वेरिएबल आपके प्रोडक्शन सर्वर पर बनाया जाएगा। याद रखें नहीं इस फ़ाइल को अपने भंडार में जमा करने के लिए। <पी> टर्मिनल में अपने एप्लिकेशन फ़ोल्डर के अंदर, गुप्त कुंजी आधार उत्पन्न करने के लिए यह कमांड चलाएँ: <पी> जेनरेट की गई कुंजी की प्रतिलिपि बनाएँ और उत्पादन सर्वर पर अपना SECRET_KEY_BASE सेट करने के लिए इसका उपयोग करें। अपने उत्पादन सर्वर तक पहुंचें और अंतिम ~/.bashrc में SECRET_KEY_BASE वैरिएबल निर्यात करें फ़ाइल, इसलिए यह हमेशा उपलब्ध है: <पी> इसे अपने परिवेश में तुरंत उपलब्ध कराने के लिए स्रोत चलाएँ: <पी> अब, अपनी मशीन पर वापस, टर्मिनल में एप्लिकेशन फ़ोल्डर तक पहुंचें और config/secrets.yml बनाने के लिए नीचे कैपिस्ट्रानो कमांड चलाएं। उत्पादन सर्वर पर: <पी> सब हो गया! अब माइग्रेशन चलाने के लिए कैपिस्ट्रानो को कॉन्फ़िगर करने का समय आ गया है। डेटाबेस माइग्रेशन करने के लिए कैपिस्ट्रानो को कॉन्फ़िगर करें
<पी> अब डेटाबेस-संबंधित कमांड चलाने के लिए कैपिस्ट्रानो को कॉन्फ़िगर करने का समय आ गया है। <पी> कैपिस्ट्रानो-रेल आपके जेमफ़ाइल में पहले से ही शामिल जेम को प्रत्येक परिनियोजन पर माइग्रेशन करने के लिए कॉन्फ़िगर किया जा सकता है। हमें बस इसे Capfile में आयात करने की आवश्यकता है: <पी> लेकिन यदि आप तैनाती पर बीज चलाना चाहते हैं, तो आपको माइग्रेशन के बाद चलाने के लिए एक नया कार्य बनाना होगा: <पी> इसके साथ ही, आपका ऐप अंततः तैनात होने के लिए तैयार है!अपने रूबी ऑन रेल्स ऐप का परिनियोजन प्रारंभ करें
<पी> आइए देखें कि हमारे सर्वर को हमारे एप्लिकेशन के नए संस्करण में सीधे अपडेट करके हमारी स्थानीय मशीन से तैनाती कैसे करें। <पी> जब आप परिनियोजन आदेश निष्पादित करते हैं, तो कैपिस्ट्रानो आपके सर्वर से कनेक्ट हो जाएगा। वहां से, कैपिस्ट्रानो कॉन्फ़िगरेशन फ़ाइल (config/deploy.rb) में परिभाषित रिपॉजिटरी से कोड को क्लोन करने का प्रयास करेगा। ). फिर परिनियोजन प्रवाह का अनुसरण करते हुए अन्य कार्य निष्पादित किए जाएंगे। <पी> कैपिस्ट्रानो का deploy:check कमांड सत्यापित करता है कि Git कॉन्फ़िगरेशन ठीक है और कैपिस्ट्रानो के पास उन निर्देशिकाओं तक सही पहुंच है जिनका उपयोग तैनाती में किया जाएगा। <पी> इसका उपयोग करने के लिए, पर्यावरण से गुजरें। इस मामले में, हम उत्पादन का उपयोग कर रहे हैं: <पी> यदि कॉन्फ़िगरेशन के साथ सब कुछ ठीक है, तो आप उत्पादन में अपनी तैनाती शुरू कर सकते हैं: <पी> इसके अलावा, आप कमांड के साथ कैपिस्ट्रानो में सभी उपलब्ध कार्यों की जांच कर सकते हैं: <पी> अब, अपने अंतिम चरण में, आइए अपने रूबी ऑन रेल्स एप्लिकेशन को ऐपसिग्नल के साथ एकीकृत करें और इसकी निगरानी शुरू करें। ऐपसिग्नल को कैपिस्ट्रानो और अपने रेल्स ऐप के साथ कैसे एकीकृत करें
<पी> ऐपसिग्नल एक निगरानी उपकरण है, इसलिए आपको आश्चर्य हो सकता है कि इसे इस आलेख में क्यों शामिल किया गया है। यह एक वैध प्रश्न है, क्योंकि निगरानी सीधे तौर पर तैनाती से संबंधित नहीं है। <पी> जैसा कि कहा गया है, जब आपके रूबी ऑन रेल्स एप्लिकेशन की निगरानी करने और प्रत्येक वातावरण में तैनाती पर नज़र रखने की बात आती है तो ऐपसिग्नल एक मूल्यवान उपकरण है। तो आइए देखें कि हम आपके ऐप के लिए AppSignal कैसे सेट कर सकते हैं। <पी> आपको एक AppSignal खाते की आवश्यकता होगी, जिसे आप AppSignal के साइन-अप पृष्ठ पर बना सकते हैं। रूबी को अपनी भाषा के रूप में चुनें और अपने एप्लिकेशन में AppSignal इंस्टॉल करने के लिए चरणों का पालन करें। <पी> एक बार इंस्टॉल हो जाने पर, AppSignal को कॉन्फ़िगर करने के लिए एक फ़ाइल बनाई जाएगी। यहां जो महत्वपूर्ण है वह संशोधन को परिभाषित करना है - वह जानकारी जिसे तैनाती के बाद जांचा जाएगा कि क्या किसी एप्लिकेशन का नया संस्करण तैनात किया गया है। इस मामले में, हम यह सुनिश्चित करने के लिए संशोधन जानकारी के रूप में Git लॉग का उपयोग करेंगे कि प्रत्येक नया कोड परिनियोजन AppSignal को सूचित करेगा। <पी> AppSignal पर्यावरण चर को अपने उत्पादन सर्वर (विशेष रूप से API कुंजी, ताकि इसे AppSignal कॉन्फ़िगरेशन फ़ाइल में न रखा जाए) में निर्यात करना भी अच्छा अभ्यास है। <पी> और अब हम परिनियोजन को फिर से चला सकते हैं। यदि सब कुछ सही ढंग से सेट किया गया है, तो आपको परिनियोजन के अंत में इस तरह का एक संदेश दिखाई देगा: <पी> अब आप अपना एप्लिकेशन AppSignal में देख पाएंगे! 🎉 <पी>
<पी> और किसी भी तैनाती के बारे में जानकारी: <पी>
<पी> रूबी ऑन रेल्स एप्लिकेशन के लिए परिनियोजन एकीकरण और अन्य उपलब्ध सुविधाओं के बारे में अधिक जानने के लिए AppSignal के परिनियोजन दस्तावेज़ पृष्ठ पर जाएँ।