केवल 30 मिनट में सर्कलसीआई का उपयोग करके एडब्ल्यूएस एस 3 में निरंतर तैनाती को कैसे सेटअप करें

निरंतर परिनियोजन पहले जटिल लग सकता है, लेकिन यह भयभीत नहीं होगा। इस ट्यूटोरियल में, मैं आपको 30 मिनट से कम समय में CircleCI का उपयोग करके स्थिर वेबसाइट के लिए AWS S3 में निरंतर तैनाती को लागू करने का तरीका दिखाता हूँ।

आपको AWS खाते और CircleCI खाते दोनों की आवश्यकता होगी यदि आपके पास ये अभी तक नहीं हैं, तो यहां एडब्ल्यूएस के लिए एक मुफ्त खाता और यहां एक निशुल्क सर्किलसी खाता खोलकर शुरू करें। AWS और CircleCI दोनों के पास एक मुफ्त टीयर है जो इस ट्यूटोरियल के लिए आपकी आवश्यकता से अधिक है।

कोड प्राप्त करना

सबसे पहले आप Github पर निम्नलिखित प्रोजेक्ट रेपो को फोर्क और क्लोन करके शुरू करेंगे: S3ContinuousDeploy या यदि आप चाहें तो इस ट्यूटोरियल को अपने स्वयं के रेपो के साथ तब तक ट्राई कर सकते हैं जब तक यह एक स्थैतिक साइट है।

इसके बाद आप प्रोजेक्ट को अपने CircleCI खाते में जोड़ देंगे।

इसके बाद S3ContinuousDeploy repo का चयन करें जिसे आपने अभी क्लोन किया है और बिल्ड प्रोजेक्ट पर क्लिक करें।

S3ContinuousDeploy repo चुनें और बिल्ड प्रोजेक्ट पर क्लिक करें

इस बिंदु पर बिल्ड चलेगा, लेकिन आपको एक त्रुटि संदेश मिल जाएगा जो आपको चेतावनी देता है कि आपके प्रोजेक्ट की सेटिंग्स का पता नहीं लगाया जा सकता है। जो सामान्य है, क्योंकि हमारे पास एक सर्कल.आईएमएल कॉन्फ़िगरेशन फ़ाइल है, जो कि आप आगे कर रहे हैं।

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

नीचे संशोधित सर्किल है। आपके द्वारा उपयोग की जाने वाली फ़ाइल:

मूल रूप से CircleCI एक Docker कंटेनर के भीतर बिल्ड बनाता है, और निर्भरता संपत्ति (पंक्ति 3) के तहत ओवरराइड जो मैंने AWS कमांड लाइन इंटरफ़ेस (awscli) को स्थापित करने के लिए CircleCI को निर्देश दिया है, जो इस मामले में AWS को तैनात करने और तैनाती में मदद करने के लिए उपयोग किया जाएगा। S3।

इसलिए सुनिश्चित करें कि आप फ़ाइल को जोड़ते हैं और इसे अपने रेपो के लिए प्रतिबद्ध करते हैं। अंत में सुनिश्चित करें कि अगले चरण पर आगे बढ़ने से पहले आपने इसे और अन्य कमिट्स को धक्का दे दिया है।

सर्किलसी प्रलेखन के अनुसार तैनाती के लिए आदेश है:

पथ-टू-फ़ाइल यह पता लगाने के लिए थोड़ा मुश्किल था, लेकिन त्रुटि लॉग को देखकर मैं अंत में इसे सही तरीके से प्राप्त करने में सक्षम था: होम \ ubuntu \ projectName। तो बस अपने नाम के साथ प्रोजेक्ट का नाम बदलें, मेरे मामले में जो S3ContinuousDeploy होगा।

दूसरी ओर S3: // बकेट-URL सही नहीं है और S3: // बकेट-नेम होना चाहिए। अभी हमारे पास एक बाल्टी का नाम नहीं है, इसलिए आइए हम खुद को एक बाल्टी लें।

S3 बाल्टी बनाना

इस चरण में हम इस परियोजना के लिए S3 बाल्टी बनाने के लिए AWS कंसोल पर जा रहे हैं:

आपके कंसोल में स्टोरेज और फिर S3 पर जाएंप्रेस बाल्टी बनाएँ

इस प्रोजेक्ट के साथ ही इस क्षेत्र के लिए आप जिस बाल्टी नाम का उपयोग करना चाहते हैं, उसे दर्ज करें। (सबसे अच्छा अभ्यास अपनी साइट के दर्शकों के निकटतम क्षेत्र का उपयोग करना है।)

आप अभी के लिए अन्य चरणों को छोड़ देंगे इसलिए "अगला" दबाएं और फिर समीक्षा स्क्रीन पर "बाल्टी बनाएं" दबाएं।

इस बिंदु पर यदि आप CircleCI पर वापस जाते हैं और बिल्ड को फिर से चलाने का प्रयास करते हैं तो CircleCI एक घातक त्रुटि लौटाएगा: क्रेडेंशियल्स का पता लगाने में असमर्थ। तो हम इसे आगे क्यों ठीक नहीं करते हैं

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

AWS कंसोल पर सुरक्षा, पहचान और अनुपालन पर जाएं और IAM दबाएँ और फिर उपयोगकर्ता जोड़ें।

उपयोगकर्ता नाम के लिए सर्कलसीआई में उपयोगकर्ता विंडो जोड़ें प्रकार में, मेरे पास पहले से ही एक IAM उपयोगकर्ता है, जिसका नाम CircleCI सेटअप है, इसलिए इस ट्यूटोरियल के प्रयोजनों के लिए और इन चरणों को स्पष्ट करने के लिए मैं CircleCI2 का उपयोग करूंगा। सुनिश्चित करें कि आप एक्सेस प्रकार के लिए प्रोग्रामेटिक एक्सेस की जाँच करें।

अनुमतियों के लिए मौजूदा मौजूदा नीतियों को सीधे चुनें, और पॉलिसी के नाम के तहत 'प्रशासक' की जाँच करें और फिर नीति बनाएँ पर क्लिक करें। यह आपके IAM उपयोगकर्ता को आपके AWS S3 बाल्टी तक पूर्ण पहुँच प्रदान करेगा।

IAM उपयोगकर्ता बनाने के बाद, सुनिश्चित करें कि आप एक्सेस कुंजी आईडी और गुप्त एक्सेस कुंजी दोनों को रखते हैं, क्योंकि हमें अगले चरण में उनकी आवश्यकता होगी।

अब CircleCI पर वापस जाएँ, प्रोजेक्ट सेटिंग्स मेनू को प्रकट करने के लिए अपने प्रोजेक्ट नाम के आगे सेटिंग बटन पर क्लिक करें और फिर AWS पर क्लिक करें। यह वह जगह है जहां आप पिछले चरण से आईडी और कुंजी पेस्ट करेंगे और फिर "एडब्ल्यूएस कुंजी सहेजें" पर क्लिक करें।

अब हमारे CircleCI कंटेनर में AWS S3 बाल्टी का उपयोग करने के लिए AWS कमांड लाइन इंटरफ़ेस टूल और क्रेडेंशियल दोनों हैं। निम्न चरण आपको दिखाएंगे कि आपकी स्थिर साइट को दुनिया के लिए कैसे प्रकट किया जाए।

एडब्ल्यूएस कंसोल में स्टोरेज पर जाएं और फिर एस 3 पर क्लिक करें और फिर इस ट्यूटोरियल में पहले बनाई गई बाल्टी पर क्लिक करें।

आप देखेंगे कि रेपो के कोड को पहले ही सफलतापूर्वक तैनात किया जा चुका है।

अब इससे पहले कि आप इस स्थिर साइट तक पहुँच सकें, आपको वेबसाइट होस्टिंग के लिए अपने S3 बाल्टी को कॉन्फ़िगर करना होगा।

उसी स्क्रीन पर प्रॉपर्टीज और फिर स्टेटिक वेबसाइट होस्टिंग पर क्लिक करें।

निम्नलिखित स्क्रीन में, वेबसाइट को होस्ट करने के लिए इस बकेट का उपयोग करें और यह सुनिश्चित करें कि आप इंडेक्स डॉक्यूमेंट के लिए index.html में टाइप करें।

वैसे, ऊपर दिया गया HTTP एड्रेस आपका एक्सेस एंडपॉइंट है। लेकिन अगर आप इसे ब्राउज़र में आज़माते हैं तो दुर्भाग्य से यह काम नहीं करेगा और आपको एक एक्सेस अस्वीकृत संदेश मिलेगा। लेकिन यह सामान्य है कि आपके पास अभी भी एक कदम है: अपनी बकेट नीति सेट करें।

यह बकेट नीति ब्राउज़र के माध्यम से किसी को भी एडब्ल्यूएस एस 3 बाल्टी तक पहुंचने की अनुमति देगा।

यदि आप अधिक जानकारी प्राप्त करना चाहते हैं तो आप यहां बाल्टी नीतियों और उदाहरणों को पढ़ सकते हैं।

अब आप ऊपर दिए गए कोड स्निपेट को कॉपी करके अपने बकेट पॉलिसी एडिटर और वोइला में पेस्ट कर सकते हैं!

यदि आप ऊपर स्क्रीन देखते हैं, तो बधाई हो! आपने सर्कलसी का उपयोग करके AWS S3 बाल्टी में निरंतर तैनाती को सफलतापूर्वक स्थापित किया है।

अब हर बार जब आप अपने गिथब रेपो में बदलावों को आगे बढ़ाएंगे, तो सर्कलसीआई आपके AWS S3 बाल्टी में बदलावों को स्वचालित रूप से तैनात करेगा।

आपने देखा होगा कि भले ही परिनियोजन सफल रहा हो, लेकिन सर्कलसीआई आपको एक लाल NO TESTS चेतावनी दिखाता है।

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

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

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

पढ़ने के लिए धन्यवाद!