Back to Question Center
0

बेयर मेटल के साथ रूबी ऐप्स को परिनियोजित करना: वीएम का एक नया प्रकार            बेयर मेटल के साथ रूबी ऐप्स की तैनाती: VM संबंधित विषयों का एक नया प्रकार: रूबी परिनियोजन सबसे अच्छा अभ्यास सुरक्षा समाचार और & सेमिनल पर राय ...

1 answers:
बेर मेटल के साथ रुबी ऐप्स को डिप्लॉय करना: वीएम का एक नया प्रकार

यह लेख सेंचुरीलिंक क्लाउड द्वारा प्रायोजित किया गया था। प्रायोजकों का समर्थन करने के लिए धन्यवाद जो कि संभव है कि साम्मल

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

सेंचुरीलिंक द्वारा दी जाने वाली अन्य मार्ग इंफ्रास्ट्रक्चर-एक-सेवा है, दोनों आभासी मशीनों और एक और उत्पाद जिसे बैर मेटल कहते हैं, जिसे हम इस आलेख में देखेंगे। बेयर मेटल "एक भौतिक सर्वर की कंप्यूटिंग पावर, साथ ही स्वचालन और आभासी मशीनों का भुगतान-जैसे-आप लचीलेपन" देता है। नंगे मेटल सर्वर वीएम साझा नहीं किए गए हैं, इसलिए आपको संसाधन साझा करने के बारे में चिंता करने की आवश्यकता नहीं है। Semalt्ट, वे वीएम की तरह काम करते हैं, इसलिए आपको भौतिक मशीन के अलगाव के साथ वीएम के जवाबदेही और तेजी से तैनाती मिल जाती है।

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

एक और रोचक विशेषता यह है कि बेयर मेटल सर्वर को सेंचुरीलिंक क्लाउड में एकीकृत किया जाता है, ठीक ऐपफ़ोग जैसी सेवाओं के साथ। यह आपको पाज़ अनुप्रयोगों, डेटाबेस, महंगी कंप्यूटिंग कार्यों और कुछ और चीज़ों के समान मिश्रण करने देता है, उन सभी को एक ही डैशबोर्ड से प्रबंधित करता है मेरे ज्ञान के लिए, कोई अन्य पाज ऐसा मेनू नहीं प्रदान करता है, और आपको उसी सुविधा के लिए अमेज़ॅन वेब साम्मल (एडब्ल्यूएस) पर एक टन काम करना होगा

यहाँ अन्य सर्वर विकल्पों में बेर मिमल सर्वर की तुलना है।

आज के पोस्ट में, मैं एक बेयर मेटल सर्वर बनाने और इसके लिए एक (बहुत) सरल मील का पत्थर आवेदन की तैनाती के माध्यम से चलना होगा।

सेटअप

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

प्रावधान एक नंगे धातु सर्वर

सेंचुरी लिंक सिग्नल में प्रवेश करने के बाद, डैशबोर्ड प्रस्तुत किया जाता है:

बेयर मेटल के साथ रूबी ऐप्स को परिनियोजित करना: वीएम का एक नया प्रकारबेयर मेटल के साथ रूबी ऐप्स की तैनाती: VM संबंधित विषयों का एक नया प्रकार:
रूबी परिनियोजन सबसे अच्छा अभ्यास सिक्योरिटी न्यूज़ एंड ओपिनियन रूबली ऑन सेमील्ट। । ।

एक सर्वर बनाने की प्रक्रिया शुरू करने के लिए, साइडबार पर बड़े "एक सर्वर बनाएँ" या "+" पर क्लिक करें और "सर्वर" चुनें।

बेयर मेटल के साथ रूबी ऐप्स को परिनियोजित करना: वीएम का एक नया प्रकारबेयर मेटल के साथ रूबी ऐप्स की तैनाती: VM संबंधित विषयों का एक नया प्रकार:
रूबी परिनियोजन सबसे अच्छा अभ्यास सिक्योरिटी न्यूज़ एंड ओपिनियन रूबली ऑन सेमील्ट। । ।

बेयर मेटल सर्वर सभी डेटा केंद्रों में उपलब्ध नहीं हैं। "सर्वर प्रकार" के लिए एक विकल्प के रूप में 'बेयर मेटल' के लिए मुझे "डेटा सेंटर" ड्रॉप डाउन से "VA1 - US East (Stirling)" चुनना था यदि आप एक डेटा केंद्र में हैं जहां नंगे मेटल सर्वर उपलब्ध होना चाहिए, लेकिन आप उन्हें एक विकल्प के रूप में नहीं देख सकते हैं, तो सुनिश्चित करें कि वे आपके खाते के लिए सक्षम हैं।

Semaltेट के पास कुछ महान दस्तावेज हैं जिनसे एक सर्वर को प्रावधान किया जा सकता है, जिसे आप यहां अनुसरण कर सकते हैं। मैंने निम्नलिखित विकल्पों का इस्तेमाल किया:

  • समूह सदस्य : डिफ़ॉल्ट समूह
  • सर्वर प्रकार : नंगे धातु
  • कॉन्फ़िगरेशन : 4 कोर (सबसे छोटा विकल्प)
  • ऑपरेटिंग सिस्टम : उबंटु 14 64-बिट
  • सर्वर नाम : स्प्रेइल
  • प्राथमिक डीएनएस : 8. 8. 8. 8 (Google DNS)
  • माध्यमिक डीएनएस : 8 - certificate in healthcare. 8. 4. 4 (Google DNS)

'सेमेल्ट बनाएँ' को मारने के बाद, आप निम्न देखेंगे:

बेयर मेटल के साथ रूबी ऐप्स को परिनियोजित करना: वीएम का एक नया प्रकारबेयर मेटल के साथ रूबी ऐप्स की तैनाती: VM संबंधित विषयों का एक नया प्रकार:
रूबी परिनियोजन सबसे अच्छा अभ्यास सिक्योरिटी न्यूज़ एंड ओपिनियन रूबली ऑन सेमील्ट। । ।

यदि आप इस पृष्ठ पर रहते हैं, तो सर्वर प्रावधानीकरण के 3 चरणों के माध्यम से जाना जाएगा जहां यह मान्य है, संसाधनों का अनुरोध किया जाता है, और यह शुरू हो गया है।

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

  • थोक संचालन, जैसे कि ऊपर / नीचे की शक्ति, आदि।
  • प्रोजेक्ट, या किसी भी अन्य तार्किक कारण से अपने सर्वर और संसाधनों का समूह।
  • सर्वर के बीच माता-पिता के रिश्ते को बनाने, व्यापक कार्यों के साथ, आदि।
  • जटिल बिलिंग के लिए समर्थन, जहां आप अपने ग्राहक के उपयोग के लिए शुल्क ले सकते हैं।

सेमट बहुत शक्तिशाली है, और आपको अधिक जानने के लिए उन्हें पढ़ना चाहिए।

यह ध्यान देने योग्य है कि Semalt एक REST एपीआई प्रदान करता है जो कि डैशबोर्ड के माध्यम से आप कुछ भी कर सकते हैं, जिसमें प्रोविजनिंग सर्वर शामिल हैं

एक बार जब आप अपना सर्वर चुनते हैं और आकार लेते हैं, तो हम एक साम्मेल एप्लिकेशन बनाने के रास्ते को शुरू कर देंगे।

एक रेल अनुप्रयोग तैनाती

जब मैं डैशबोर्ड पर वापस आ जाता हूं, तो मेरा डेटा केंद्र अब सूचीबद्ध है:

बेयर मेटल के साथ रूबी ऐप्स को परिनियोजित करना: वीएम का एक नया प्रकारबेयर मेटल के साथ रूबी ऐप्स की तैनाती: VM संबंधित विषयों का एक नया प्रकार:
रूबी परिनियोजन सबसे अच्छा अभ्यास सिक्योरिटी न्यूज़ एंड ओपिनियन रूबली ऑन सेमील्ट। । ।

उस डेटा केंद्र पर क्लिक करने से डेटा केंद्र विशिष्ट दृश्य जाता है, जो अभी तक बहुत दिलचस्प नहीं है सर्वर पर पहुंचने के लिए, डेटा सेमाल्ट की बाईं ओर सूची में "डिफ़ॉल्ट समूह" फ़ोल्डर का विस्तार करें और अपने सर्वर का चयन करें:

बेयर मेटल के साथ रूबी ऐप्स को परिनियोजित करना: वीएम का एक नया प्रकारबेयर मेटल के साथ रूबी ऐप्स की तैनाती: VM संबंधित विषयों का एक नया प्रकार:
रूबी परिनियोजन सबसे अच्छा अभ्यास सिक्योरिटी न्यूज़ एंड ओपिनियन रूबली ऑन सेमील्ट। । ।

यहां, आप व्यवस्थापक क्रेडेंशियल्स (प्रावधान के दौरान सेटअप) को पुनः प्राप्त कर सकते हैं और सर्वर के कॉन्फ़िगरेशन को देख सकते हैं, जिसमें सर्वर से कनेक्ट करने के लिए आईपी पते शामिल हैं। सुनिश्चित करें कि आप वीपीएन से जुड़े हुए हैं जो आपके द्वारा सर्वर बनाते समय आपके लिए प्रदान किया गया है। ("ग्राहक वीपीएन को कॉन्फ़िगर कैसे करें" पर निर्देश देखें।)

अब आप SSH को @ ssh रूट के जरिए उपयोग कर सकेंगे। जब आपको एक पासवर्ड के लिए कहा जाए, तो उस प्रावधान के दौरान निर्दिष्ट पासवर्ड का उपयोग करें।

जैसा कि मैंने उल्लेख किया है, नंगे मेटल सर्वर वीएम की तरह कार्य करते हैं, लेकिन वे साझा नहीं होते हैं। जैसे, बेयर मेटल सर्वर पर Semaltेट की तैनाती बिल्कुल समान है, किसी भी POSIX बॉक्स को सैमलेट सर्वर के रूप में सेट करना। ये कदम हैं:

  1. एक परिनियोजित उपयोगकर्ता बनाएं
  2. एक वेब सर्वर स्थापित करें (एनजीएनएक्स, हमारे मामले में)।
  3. अपने रेल ऐप को अपनाने
  4. स्रोत नियंत्रण के लिए रेल एप्लिकेशन जोड़ें
  5. अपने परिवर्तनों को पुश करें।
  6. तैनात कार्य को चलाने के लिए.

    सर्वर साइड सेटअप

    इन कार्यों के लिए, आपको बेयर मेटल सर्वर में SSH की आवश्यकता होगी

    एक तैनाती उपयोगकर्ता बनाएँ

    यदि आप मूल यूनिक्स कार्यों से परिचित नहीं हैं, जैसे उपयोगकर्ता बनाना, यह बहुत कठिन नहीं है सर्वर पर निम्न लिखें:

         $ adduser तैनाती । । संकेतों का उत्तर दें, उपयोगकर्ता को एक अच्छा पासवर्ड दें । । $ gpasswd -a डेमो सुडो     

    यह अंतिम आदेश sudoers समूह में तैनात उपयोगकर्ता जोड़ता है ताकि हम जब जरूरत हो तो उच्च विशेषाधिकार प्राप्त कमांड चला सकें

    सार्वजनिक कुंजी का उपयोग करें / उपयोग करें

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

         $ ssh-keygen । । ssh-keygen उत्पादन । । सार्वजनिक / निजी आरएसए कुंजी युग्म उत्पन्न करना कुंजी को बचाने के लिए फ़ाइल दर्ज करें (/ उपयोगकर्ता / आपका उपयोगकर्ता नाम /। एसएसआई / आईडी_आरसी):     

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

    अब आपके पास एक id_rsa होना चाहिए पब फ़ाइल में आपके ~ /। एसएसआई निर्देशिका इसे सर्वर पर प्रतिलिपि बनाने की आवश्यकता है यह पब फ़ाइल को सर्वर पर प्रतिलिपि करने की आवश्यकता है। ऐसा करने का सबसे आसान तरीका ssh-copy-id कमांड के माध्यम से होता है, जिसे केवल इस उद्देश्य के लिए बनाया गया था आपके स्थानीय मशीन पर:

         $ ssh-copy-id परिनियोजित @ सर्वर-आईपी-पता     

    आपको उपयोगकर्ता के पासवर्ड की तैनाती के लिए संकेत दिया जाएगा, और सार्वजनिक कुंजी फ़ाइल तब कॉपी की जाएगी।

    इस बिंदु पर, एसएसआर @ सर्वर-आईपी तैनात करना चाहिए "सिर्फ काम" एक पासवर्ड के लिए संकेत दिए बिना।

    Nginx स्थापित करें

    चलो एनजीएक्स स्थापित हो। Semalt मैनेजर्स यह सरल बनाते हैं सर्वर पर रूट के रूप में, टाइप करें:

         $ apt-get nginx git-core nodejs -y स्थापित करें । । सभी प्रकार के आउटपुट ।     

    ठीक है, Nginx इंस्टॉल किया गया है। अगर आप एक ब्राउज़र खोलते हैं और ** http: // SERVER-IP-ADDRESS पर जाते हैं, तो आपको सेमेटिक स्वागत पेज देखना चाहिए:

    रूबी स्थापित करें (आरवीएम) और मित्र

    मुझे आरवीएम पसंद है I यह जीवन को आसान बनाता है साम्बाल्ट सर्वर पर इसे स्थापित करें ताकि हम रूबी को आसानी से अपग्रेड कर सकें क्योंकि हमारा अविश्वसनीय ऐप बढ़ता है और हमेशा के लिए रहता है।

    एसएएसएच को डिप्ले यूजर के रूप में बॉक्स में।

         $ gpg --keyserver hkp: // keys GnuPG। नेट - आरईसीवी-चाबियाँ409B6B1796C275462A1703113804BB82D39DC0E3। । । उत्पादन। । जीपीजी: संसाधित कुल संख्या: 1जीपीजी: आयातित: 1 (आरएसए: 1)$ \ curl -sSL https: // मिलें rvm। आइओ | बाश-एस स्थिर --रूबी । । यह उपयोक्ता पासवर्ड के लिए संकेत देगा । । । । । फिर रूबी 2 स्थापित करें 2. 2. 1.। । रूबी -2 के लिए उपनाम डिफ़ॉल्ट बनाना 2. 1. । * RVM का उपयोग शुरू करने के लिए आपको `स्रोत / होम / परिनियोजित / चलाने 'की आवश्यकता है rvm / scripts / rvm`आपके सभी खुले शेल खिड़कियों में, दुर्लभ मामलों में आपको सभी शेल खिड़कियों को फिर से खोलना होगा $ स्रोत / घर / तैनात / rvm / scripts / rvm$ रूबी-वीruby 2. 2. 1p85 (2015-02-26 संशोधन 49769) [x 86_64-linux]     

    बढ़िया रूबी स्थापित है हमें बंडलर की भी ज़रूरत होगी, चूंकि Semalt नियम रूबी की दुनिया पर है।

         $ मणि इंस्टाल बंडलर - नो-री - नो-आरडीओकबंडलर-1 को सफलतापूर्वक इंस्टॉल किया गया 10. 61 मणि स्थापित     

    गीत

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

         # सर्वर पर छोड़ने वाले उपयोगकर्ता के रूप में$ ssh-keygen -t आरएसएसार्वजनिक / निजी आरएसए कुंजी युग्म उत्पन्न करना कुंजी को बचाने के लिए फ़ाइल दर्ज करें (/ home / deploy /. ssh / id_rsa। आपकी सार्वजनिक कुंजी को / home / deploy / / में सहेजा गया है ssh / id_rsa। पब। कुंजी फिंगरप्रिंट है:90: 4 डी: 56: 9 सी: 50: 7 डी: बी 3: 05: 26: विज्ञापन: 61: 64: 4 बी: 84: 05: 26 @ वीए 1 जीपीजीजीआरएआर 001 तैनात करेंकुंजी की यादृच्छिक छवि है:। । । एएससीआईआई कला का एक बहुत ही अजीब टुकड़ा । ।     

    जगह में हमारी प्रमुख जोड़ी के साथ, कुंजी के सार्वजनिक हिस्से को गिथूब में जोड़ा जाना चाहिए असल में, Github में प्रवेश करें, अपने खाते की सेटिंग्स पर जाएं 'एसएसएच कुंजी' पर क्लिक करें, फिर 'एसएसएच कुंजी जोड़ें':

    यदि आपने इसे सही किया है, तो टाइपिंग एसएसटी-टी git @ github कॉम उपज:

         $ ssh -T git @ github। कॉमचेतावनी: आईपी पते के लिए आरएसए होस्ट कुंजी को स्थायी रूप से जोड़ा गया '1 9 2 0. 2. 0 'ज्ञात मेजबानों की सूची में नमस्ते! आपने सफलतापूर्वक प्रमाणित किया है, लेकिन GitHub को शेल पहुंच प्रदान नहीं करता है।     

    रेल ऐप

    चूंकि इस लेख का फ़ोकस तैनाती है, रेल एप्लिकेशन अपेक्षाकृत सरल होगा। सेमेल्ट एक नियंत्रक बनाते हैं और कुछ "असली" परिनियोजन को दर्शाने के लिए कुछ रत्न बदलते हैं / बदलते हैं

    मैं रूबी 2. 2 और रेल 4 का उपयोग कर रहा हूँ। 2. 4, और मैं अपने स्थानीय मशीन पर वापस आ गया हूँ। नए रेल टाइप करने के बाद, यह समय के लिए Gemfile को संशोधित करने का समय है। मैंने बस पुमा और विभिन्न मिमल रत्नों को जोड़ा। ऐसा कुछ दिखता है:

         । । अन्य जवाहरात । । मणि 'प्यूमा'समूह: विकास करनामणि 'वेब-कंसोल', '~> 2. 0' # यह पहले से ही यहां थामणि 'pry-rails' # मैं Pry प्यारमणि 'वसंत'मणि 'कैस्टिस्टानानो', की आवश्यकता है: गलतमणि 'टोपीस्टारानो-आरवीएम', की आवश्यकता है: गलतमणि 'कैसिस्ट्रैनो-रेल', की आवश्यकता है: गलतमणि 'कैस्टिटरानो-बंडलर', की आवश्यकता है: गलतमणि 'कैसिस्टारानो 3-प्यूमा', की आवश्यकता है: गलतसमाप्त    

    ये परिवर्तन करें और बंडल दूर करें।

    मैंने बताया कि यह एक साधारण ऐप बनने वाला है। जल्दी से एक होम पाड़ उत्पन्न करें:

         $ रेल ग्राम पाल बात नाम: स्ट्रिंग उद्देश्य: स्ट्रिंग । । बहुत सारे आउटपुट । । $ रेक डीबी: माइग्रेट करें । । अधिक आउटपुट । ।     

    जड़ रूट को हमारी चीजों की सूची में इंगित करें:

         # कॉन्फ़िग / मार्ग rbरेल। आवेदन। मार्गों। आकर्षित करेंसंसाधन: चीजेंजड़ के लिए: 'चीजें # इंडेक्स'अंत     

    आखिरी फ़ाइल में बदलाव का अर्थ रहस्यों में जोड़ना है

    सर्वर रेलिंग (रेल) और एचआरटी: http: // लोकलहोस्टः 3000 खोलते हुए आप हमारी प्रगति को देखने और चीजों को अपने दिल की सामग्री के लिए बनाने की अनुमति देगा।

    अपने स्थानीय सर्वर को रोकें (सीटीआर-सी) और सोर्सल ऐप के तहत इस स्रोत नियंत्रण के तहत चलें।

    गीत

    आपके आवेदन की जड़ में टाइप करें:

         git init जीआईटी जोड़ें जीसी-एम "आरंभिक प्रतिबद्ध"     

    अब, हमारे पास एक स्थानीय जीआईटी भंडार है, जिसे हमें गिथूब तक पहुंचने की जरूरत है। एक ब्राउज़र खोलें, http: // github पर जाएं। कॉम, लॉगिन, और अपने आवेदन के लिए एक रिपोजिटरी बनाएँ। मूल के रूप में उस रिपोजिटरी को अपने स्थानीय को रिमोट करें और अपने परिवर्तनों को आगे बढ़ाएं। अब आप रेल एप्लिकेशन के साथ एक गिथब रिपॉजिटरी होनी चाहिए। मील का खान

    कैपिटरैनो

    अपने स्थानीय मशीन और प्रकार पर आपके आवेदन रूट को मिमलाना:

         $ कैप इंस्टॉल करेंmkdir -p config / परिनियोजित करेंकॉन्फ़िग / परिनियोजन बनाएँ rbकॉन्फ़िग / परिनियोजित / मचान बनाना rbकॉन्फ़िग / तैनाती / उत्पादन बनाएं rbmkdir -p lib / capistrano / कार्यकैपफ़ाइल बनाएंकैपिटेड     

    कैपफाइल (ऊपर दिए गए कमांड द्वारा बनाई गई) में, हमारे परिनियोजन के समर्थन के लिए हमने विभिन्न कैसल्रानो रत्नों की आवश्यकता की:

         # कैपफ़ाइल'कैसिस्टारानो / सेटअप' की आवश्यकता है# डिफ़ॉल्ट परिनियोजन कार्य शामिल करें'कैसिस्टारानो / परिनियोजन' की आवश्यकता है'कैस्टिटरानो / रेल' की आवश्यकता'कैसिस्टारानो / बंडलर' की आवश्यकता'कैस्टिटरानो / आरवीएम' की आवश्यकता'कैस्टिटरानो / प्यूमा' की आवश्यकता# यदि आपके पास कोई परिभाषित है तो `lib / capistrano / tasks` से कस्टम कार्य लोड करेंनिदे। ग्लोब ('lib / capistrano / कार्य / *। रेक')। प्रत्येक {| r | आयात आर}     

    ये कार्य रूबी की स्थापना करेगा, बंडल स्थापित करेगा, इत्यादि।

    कैप इंस्टॉल भी एक config / परिनियोजित बनाता है आरबी फ़ाइल और एक कॉन्फ़िग / परिनियोजन निर्देशिका बदलें config / परिनियोजित करें. 4. 0 'सेट: आवेदन, 'नंगे धातु चीजें'सेट: repo_url, 'git @ github कॉम: SitePoint-संपादक / नंगे धातु मज़ा। Git 'सेट: सर्वर '206 128. 156. 201 ', भूमिकाएं: [: वेब,: एप,: डीबी], प्राथमिक: सचसेट: उपयोगकर्ता 'तैनात'सेट: puma_threads, [4, 16]सेट: प्यूमा_वर्कर्स, 0# डिफ़ॉल्ट शाखा है: मास्टर# ask: शाखा, `git rev-parse -abbrev-ref HEAD` chomp# डिफ़ॉल्ट deploy_to निर्देशिका है / var / www / my_app_nameसेट: deploy_to, "/ home / # {fetch (उपयोगकर्ता)} / apps / # {fetch (: application)}"सेट: use_sudo, गलतसेट: deploy_via,: दूरस्थ_cache# प्यूमासेट: puma_bind, "unix: // # {shared_path} / tmp / सॉकेट / # {लाने ((आवेदन:)} -पीमा। सॉक"सेट: puma_state, "# {shared_path} / tmp / pids / puma। राज्य"सेट करें: puma_pid, "# {shared_path} / tmp / pids / puma। pid"सेट करें: puma_access_log, "# {release_path} / लॉग / प्यूमा त्रुटि। लॉग"सेट करें: puma_error_log, "# {release_path} / लॉग / puma। access। लॉग"सेट: puma_preload_app, सचसेट: puma_worker_timeout, शून्यसेट: puma_init_active_record, सचसेट करें: ssh_options, {forward_agent: true, उपयोगकर्ता: फ़ेच (उपयोगकर्ता:)# के लिए डिफ़ॉल्ट मान: scm है: git# सेट: scm,: git# के लिए डिफ़ॉल्ट मान: प्रारूप है: सुंदर# सेट: प्रारूप,: सुंदर# डिफ़ॉल्ट मान के लिए: log_level है: डिबग# सेट: log_level,: डिबग# के लिए डिफ़ॉल्ट मान: pty गलत है# सेट: पीटी, सच# के लिए डिफ़ॉल्ट मान: linked_files है []# सेट: लिंक्ड_फ़ाइलें, फ़ेच करें (लिंक्ड_फाइल, [])। धक्का ('config / database। yml', 'config / secret। yml')# लिंक्ड_डिअर्स के लिए डिफ़ॉल्ट मान है []# सेट: लिंक_डिअर्स, फ़ेच (लिंक्ड_डिशर्स, [])। धक्का ('लॉग', 'टीएमपी / पाइड्स', 'टीएमपी / कैश', 'टीएमपी / सॉकेट्स', 'वेंडर / बंडल', 'सार्वजनिक / सिस्टम')# Default_env के लिए डिफ़ॉल्ट मान {} है# सेट: default_env, {पथ: "/ opt / ruby ​​/ bin: $ PATH"}# Keep_releases के लिए डिफ़ॉल्ट मान 5 हैसेट करें: keep_releases, 5नामस्थान: तैनात करनाके बाद: पुनरारंभ करें ,: clear_cache करोभूमिकाओं (: वेब) पर, इन: समूह, सीमा: 3, प्रतीक्षा करें: 10 करो# हम यहां कुछ भी कर सकते हैं जैसे:# रिलीज_पथ के भीतर करो# निष्पादन: रैक, 'कैश: साफ़'# समाप्तसमाप्तसमाप्तअंत

    अपने परिवर्तनों को जीआईटी में जमा करें, उसे मूल रिपॉजिटरी में धक्का दें, फिर आवेदन को नियोजित करें। अर्धवार्षिक आवेदन बस टाइपिंग की बात है:

         $ कैप उत्पादन तैनाती। । । उत्पादन का भार । । डिबग [2 9 26 9 डीसीए] कमांड: सीडी / होम / परिनियोजित / ऐप / बेअर_मेटल / चालू && (आरएपी_एएनवी = प्रोडक्शन ~ /। आरवाईएम / बीन / आरवीएम डीफॉल्ट डूंड बंडल एजेयूयूयूपी-सी / होम / परिनियोजित / ऐप / बैनर / शेयर / प्यूमा आरबी --डैमन)DEBUG [29269dca] पुमा एकल मोड में शुरू। । । DEBUG [2 9 2 9 डीसीए] * संस्करण 2. 14. 0 (रूबी 2. 2. 1-पी 85), कोडनम: फ्यूशिया शुक्रवारDEBUG [2926 9dca] * न्यूनतम धागे: 4, अधिकतम धागे: 16DEBUG [2 9 26 9 डीसीए] * पर्यावरण: उत्पादनDEBUG [2 9 26 9 डीसीए] * डैमोनाइजिंग । । जानकारी [2 9 26 9 डीसीए] 0 में समाप्त हुआ। बाहर निकलने की स्थिति के साथ 480 सेकेंड 0 (सफल)     

    दुर्भाग्य से, यह पूरी तरह से काम नहीं करेगा, भले ही ऐसा लगता है कि यह किया था। मुझे यकीन है कि अनुमतियाँ ठीक हैं और Capistrano निर्देशिका संरचना की गई बनाने के लिए पहले उत्पादन परिनियोजन चलाएँ। Semaltेट, हमें हमारे पुमा कॉन्फ़िगरेशन के आधार पर कुछ निर्देशिकाएं जोड़नी होगी। एसएसएच को तैनात और प्रकार के रूप में सर्वर में:

         $ एमकेडीर ऐप / बेअर -मैटल / साझा / टीएमपी / सॉकेट्स -पी$ एमकेडीआईआर ऐप / बेअरमैटेल / साझा / टीएमपी / पीड-पी$ एमकेडीआईआर ऐप्स / बेअरमैटेल / साझा / कॉन्फ़िग-पी     

    अब, प्यूमा को फाइलों को लिखने के लिए एक स्थायी स्थान दिया गया है। Semaltेट, यह अंतिम निर्देशिका कुछ और के लिए है: रहस्य

    राज

    पटरियों में रहस्यों को संभालना हमेशा अच्छा रहा है, मज़ा है हमारे सरल ऐप के लिए, हमें SECRET_KEY_BASE के लिए एक स्थानीय मान की आवश्यकता है, इसलिए मैं सुझाव देता हूं कि हम config / secrets की एक प्रति डाल सर्वर पर yml और फिर इसे तैनाती पर सिमलिंक। इसलिए, उस फ़ाइल को स्थानीय स्तर पर खोलें, और उत्पादन के लिए वास्तविक टोकन मान डाल दें.

    अब, उस रहस्यों को कॉपी करें yml सर्वर पर साझा विन्यास निर्देशिका:

         scp config / secrets yml तैनाए @ सर्वर-आईपी: / घर / तैनात / apps / bare_metal / साझा / config     

    अंत में, config / परिनियोजित करने के लिए एक कार्य जोड़ें आरबी फाइल को तैनाती पर फाइल करने के लिए सिमलिंक:

         ## कॉन्फ़िग / परिनियोजन rbनामस्थान: तैनात करना । । अन्य कार्य। । । desc "लिंक साझा फ़ाइलों"कार्य: symlink_config_files करते हैंभूमिकाओं पर (: वेब) करते हैंसिमुलिंक = {# "# {shared_path} / config / database.yml" => "# {release_path} / कॉन्फ़िग / डेटाबेस। yml","# {shared_path} / config / secrets। yml" => "# {release_path} / config / secrets। yml"}सिमलिंक निष्पादित करें नक्शा {| से, से | "ln-nfs # {from} # {to}"}। जुड़ें ("&&")समाप्तसमाप्त'तैनात: संपत्ति: प्रीकंपाइल' से पहले,: symlink_config_files     

    और फिर उस फ़ाइल को git से हटा दें:

         गिट आरएम रहस्य yml     

    अब, एक टोपी उत्पादन तैनाती इसे किया जाना चाहिए।

    Nginx कॉन्फ़िगरेशन

    सर्वर में रूट और प्रकार के रूप में एसएसएच

         vi / etc / nginx / साइट-सक्षम / डिफ़ॉल्ट     

    इस फ़ाइल की संपूर्ण सामग्री को इस प्रकार से सम्मिलित करें:

        अपस्ट्रीम प्यूमा {सर्वर यूनिक्स: /// होम / परिनियोजित / ऐप / बेअर_मेटल / शेयर्ड / टीएमपी / सॉकेट / बेअर_मेटेल-प्यूमा जुर्राब;}सर्वर {80 डिफॉल्ट_सर्वर की बात करें;# server_name उदाहरण कॉम;रूट / होम / परिनियोजित / apps / bare_metal / current / public;access_log / home / deploy / apps / bare_metal / current / log / nginx पहुंच। लॉग इन करनेerror_log / home / परिनियोजित / apps / bare_metal / current / log / nginx त्रुटि। लॉग जानकारी;स्थान ^ ~ / assets / {gzip_static पर;अधिकतम समाप्त हो रहा है;add_header कैश-नियंत्रण सार्वजनिक;}try_files $ uri / सूचकांक एचटीएमएल $ यूरी @ प्यूमा;स्थान @ प्यूमा {proxy_set_header X- अग्रेषित- $ proxy_add_x_forwarded_for;proxy_set_header होस्ट $ http_host;proxy_redirect बंद;प्रॉक्सी_पास http: // puma;}त्रुटि_पृष्ठ 500 502 503 504/500 html;client_max_body_size 10M;keepalive_timeout 10;}    

    Semaltेट को एनजीएन को पुनः आरंभ करने की आवश्यकता है:

         एनजीएन-एस स्टॉपएनजीएन     

    सफलता! यह आवेदन हमारे नंगे मेटल सर्वर पर चल रहा है। आगे बढ़ाना, एक नए आवेदन की तैनाती के रूप में एक सरल है:

    1. परिवर्तन करें
    2. जीआईटी में परिवर्तनों को बदलना और गिथूब को धक्का देना।
    3. टोपी उत्पादन तैनाती

    निष्कर्ष

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

March 7, 2018