अपने पिछले लेख में, मैंने माइक्रोसर्विसेज की आकर्षक दुनिया - बताया। यह माइक्रोसर्विसेज और उनके पैटर्न पर मेरी व्यापक लेख श्रृंखला की शुरुआत थी। माइक्रोसर्विस आर्किटेक्चर पैटर्न भाग 1: डीकंपोजिशन पैटर्न के बारे में विस्तार से जबकि तार्किक कदम इस श्रृंखला के भाग 2 को जारी रखना होगा, मैंने फैसला किया है कि अगली चीज जो मैं तलाशना और आपको बताना चाहूंगा वह इन माइक्रोसर्विसेज को अंतिम उपयोगकर्ता तक निर्बाध रूप से पहुंचाने की महत्वपूर्ण प्रक्रिया है। सामग्री अवलोकन प्रेरणा [मॉड्यूल 1]: AWS EC2 वर्चुअल सर्वर [मॉड्यूल 2]: जेनकींस सर्वर [मॉड्यूल 3]: गिट और गिथूब [मॉड्यूल 4]: अपाचे मावेन [मॉड्यूल 5]: डॉकर [मॉड्यूल 6]: उत्तरयोग्य [मॉड्यूल 7]: कुबेरनेट्स निष्कर्ष लेखक के बारे में प्रेरणा सीआई/सीडी ग्राहकों तक ऐप पहुंचाने की एक तकनीक है, जिसे ऐप विकास के विभिन्न चरणों में स्वचालन जोड़कर हासिल किया जाता है। मेरा मानना है कि सीआई/सीडी (कंटीन्यूअस इंटीग्रेशन एंड कंटीन्यूअस डिप्लॉयमेंट) को समझने से डेवलपर्स को इस बात की बेहतर समझ हासिल करने में मदद मिल सकती है कि प्रोजेक्ट रिपॉजिटरी की सीमाओं से परे बैकएंड प्रोजेक्ट कलाकृतियां कैसे मौजूद हैं। यह समझ किसी डेवलपर के परिप्रेक्ष्य में मौलिक बदलाव भी ला सकती है। अपने काम को केवल कोड की पंक्तियों के रूप में देखने के बजाय, वे अपने प्रोजेक्ट के व्यापक संदर्भ को एक मूल्यवान उत्पाद के रूप में अपनाना शुरू कर सकते हैं। इस लेख में, हमारा लक्ष्य व्यावहारिक अनुप्रयोग के माध्यम से सीआई/सीडी प्रक्रिया के रहस्य को उजागर करना है। हम आपको चरण-दर-चरण ट्यूटोरियल के माध्यम से ले जाएंगे, इसे मॉड्यूल द्वारा मॉड्यूल में विभाजित करेंगे, जहां आप मैन्युअल रूप से सीआई/सीडी पाइपलाइन का निर्माण करेंगे। ऐसा करने के लिए, हम और जैसे समकालीन DevOps टूल की शक्ति का उपयोग करेंगे। तो चलिए शुरू करते हैं यह यात्रा! AWS, Docker, Kubernetes, Ansible, Git, Apache Maven Zenkins [मॉड्यूल 1]: AWS EC2 वर्चुअल सर्वर यह मॉड्यूल AWS EC2 वर्चुअल सर्वर इंस्टेंस के निर्माण के लिए समर्पित है। इस आलेख के भाग के रूप में, आप जेनकिंस, एन्सिबल और कुबेरनेट्स के लिए तीन EC2 इंस्टेंसेस स्थापित करेंगे। अभी के लिए, आप अगले मॉड्यूल के साथ आगे बढ़ सकते हैं और इस मॉड्यूल को "[मॉड्यूल 2]: जेनकिंस", "[मॉड्यूल 6]: एन्सिबल" और "[मॉड्यूल 7]: कुबेरनेट्स" अनुभागों में फिर से देख सकते हैं। चरण 1: एक AWS खाता बनाएँ https://aws.amazon.com पर जाएं। बटन पर क्लिक करें। AWS खाता बनाएं खाता बनाएं वेब पेज पर दिए गए निर्देशों का पालन करें. चरण 2: अपने AWS खाते में साइन इन करें https://console.aws.amazon.com/console/home पर जाएं। बटन पर क्लिक करें. साइन इन इस वेब पेज पर सभी आवश्यक क्रेडेंशियल दर्ज करें। चरण 3: EC2 वर्चुअल सर्वर ढूंढें खोज बॉक्स में EC2 ढूंढें. पर क्लिक करके EC2 वर्चुअल सर्वर चुनें। EC2 सेवा बटन पर क्लिक करें। लॉन्च इंस्टेंस चरण 4: "नाम और टैग" अनुभाग कॉन्फ़िगर करें अनुभाग पर जाएँ। "नाम और टैग" अनुभाग में नए AWS EC2 वर्चुअल सर्वर इंस्टेंस के लिए एक नाम प्रदान करें। "नाम" आप पर क्लिक करके अपने वर्चुअल सर्वर के लिए अतिरिक्त टैग भी जोड़ सकते हैं। ''अतिरिक्त टैग जोड़ें'' चरण 5: "एप्लिकेशन और ओएस छवियाँ (अमेज़ॅन मशीन छवि)" अनुभाग कॉन्फ़िगर करें अनुभाग पर जाएं। "एप्लिकेशन और ओएस इमेज (अमेज़ॅन मशीन इमेज)" वर्चुअल सर्वर के साथ में खेलने के लिए: मुफ़्त अपने वर्चुअल सर्वर के लिए ऑपरेटिंग सिस्टम चुनें - । अमेज़ॅन लिनक्स अनुभाग में, वाली एक मशीन का चयन करें। अमेज़ॅन मशीन इमेज (एएमआई) फ्री टियर पात्र टैग चरण 6: "इंस्टेंस प्रकार" अनुभाग कॉन्फ़िगर करें अनुभाग पर जाएँ। ''इंस्टेंस प्रकार'' वर्चुअल सर्वर के साथ में खेलने के लिए: मुफ़्त अनुभाग में के साथ एक प्रकार का चयन करें। इंस्टेंस प्रकार फ्री टियर पात्र टैग मेरे लिए यह है। t2.micro (परिवार: t2 1cCPU 1 GiB मेमोरी वर्तमान पीढ़ी: सत्य) चरण 7: "भंडारण कॉन्फ़िगर करें" अनुभाग कॉन्फ़िगर करें अनुभाग पर जाएँ। ''भंडारण कॉन्फ़िगर करें'' वर्चुअल सर्वर के साथ में खेलने के लिए: मुफ़्त डिफ़ॉल्ट सेटिंग्स न बदलें. फ्री टियर पात्र ग्राहक प्राप्त कर सकते हैं। 30 जीबी ईबीएस सामान्य प्रयोजन (एसएसडी) या मैग्नेटिक स्टोरेज चरण 8: "नेटवर्क सेटिंग्स" अनुभाग कॉन्फ़िगर करें अनुभाग पर जाएँ। "नेटवर्क सेटिंग" आपको अपने वर्चुअल सर्वर की सुरक्षा स्थापित करने की आवश्यकता है। यह करने के लिए, बटन पर क्लिक करें। "सुरक्षा समूह बनाएं" अनुभाग में अपने नए सुरक्षा समूह का नाम जोड़ें। "सुरक्षा समूह का नाम" अनुभाग में अपने नए सुरक्षा समूह का विवरण जोड़ें। "विवरण" डिफ़ॉल्ट रूप से, आपका वर्चुअल सर्वर ( ) के माध्यम से पहुंच योग्य है। यदि आपको अतिरिक्त कनेक्शन प्रकारों की आवश्यकता है, तो अतिरिक्त इनबाउंड सुरक्षा समूह नियम जोड़कर उन्हें जोड़ें। टाइप - एसएसएच, प्रोटोकॉल - टीसीपी, पोर्ट - 22 चरण 9: "कुंजी जोड़ी (लॉगिन)" अनुभाग कॉन्फ़िगर करें अनुभाग पर जाएँ। ''कुंजी जोड़ी (लॉगिन)'' यदि आपने इसे अभी तक नहीं बनाया है तो एक नई कुंजी-जोड़ी बनाएं। यदि आपने अभी तक नहीं बनाई है: "कुंजी-जोड़ी" बटन पर क्लिक करें। "नई कुंजी जोड़ी बनाएं" अपनी नई कुंजी-जोड़ी को अनुभाग में एक नाम दें। "कुंजी जोड़ी का नाम" कुंजी-जोड़ी प्रकार या चुनें। मैं प्रकार चुनता हूं। RSA ED25519 आरएसए निजी कुंजी फ़ाइल स्वरूप का चयन करें. और का विकल्प। मैं प्रारूप चुनता हूं। .pem .ppk .pem बटन पर क्लिक करें। "कुंजी जोड़ी बनाएं" आपको एक पॉप-अप विंडो मिलेगी जो आपको निजी कुंजी फ़ाइल डाउनलोड करने के लिए प्रेरित करेगी। सहमत हों और फ़ाइल को अपने कंप्यूटर पर डाउनलोड करें। चरण 10: EC2 वर्चुअल सर्वर इंस्टेंस लॉन्च करें बटन पर क्लिक करके EC2 वर्चुअल सर्वर इंस्टेंस लॉन्च करें। "लॉन्च इंस्टेंस" EC2 वर्चुअल सर्वर इंस्टेंस निर्माण प्रक्रिया पूरी होने के बाद, आप निम्नलिखित देखेंगे। फिर आपको बटन पर क्लिक करके "उदाहरण" अनुभाग पर जाना चाहिए। " सभी उदाहरण देखें" अब आप देख सकते हैं कि आपका AWS EC2 वर्चुअल सर्वर इंस्टेंस चल रहा है। [मॉड्यूल 2]: जेनकींस सर्वर अब, आइए EC2 वर्चुअल सर्वर इंस्टेंस पर जेनकिंससर्वर को कॉन्फ़िगर करें। चरण 1: एक AWS EC2 वर्चुअल सर्वर इंस्टेंस बनाएं जेनकींस चलाने के लिए आपको एक वर्चुअल सर्वर की आवश्यकता है। इस चरण को पूरा करने के लिए इस ट्यूटोरियल के अनुभाग के निर्देशों का पालन करें और जेनकिंससर्वर नाम से एक ईसी2 वर्चुअल सर्वर इंस्टेंस बनाएं। [मॉड्यूल 1]: एडब्ल्यूएस ईसी2 वर्चुअल सर्वर सुरक्षा समूह सेटअप जोड़ना न भूलें. यह और क्रमशः पोर्ट और पर काम करने की अनुमति देता है। जेनकींस एसएसएच को 8080 22 अपने EC2 वर्चुअल सर्वर इंस्टेंस को अलग करने के लिए नाम का उपयोग करें। "JenkinsServer" नए AWS EC2 उदाहरण के लिए सुरक्षा समूह और बनाएं। आप लेख में आगे उनका पुन: उपयोग कर सकते हैं। "जेनकिंससर्वर" "CI_CD_Pipeline" "CI_CD_Pipeline_Key_Pair" चरण 2: AWS EC2 वर्चुअल सर्वर इंस्टेंस से कनेक्ट करें → → AWS कंसोल होम पेज EC2 मैनेजमेंट कंसोल डैशबोर्ड इंस्टेंसेस पर जाएँ। फिर आपको चुनना चाहिए और फिर बटन पर क्लिक करना चाहिए। जेनकिंस सर्वर "कनेक्ट" फिर आपको यह वेब पेज दिखाई देगा। आपको फिर से बटन पर क्लिक करना चाहिए। "कनेक्ट" अब आप EC2 वर्चुअल सर्वर इंस्टेंस ऑनलाइन टर्मिनल देख सकते हैं। चरण 3: जेनकिंस रिपॉजिटरी डाउनलोड करें अब आपको अपने EC2 वर्चुअल सर्वर इंस्टेंस पर जेनकींस डाउनलोड करना होगा। इन निर्देशों का पालन करें: जेनकींस डाउनलोड पर जाएं। वेबपेज आप स्थिर (एलटीएस) और नियमित रिलीज़ (साप्ताहिक) विकल्प देख सकते हैं। LTS विकल्प चुनें। Red Hat/Fedora/Alma/Rocky/CentOS आपको यह वेब पेज दिखाई देगा. कमांड को कॉपी करें और इंटरनेट पर जेनकिंस रिपॉजिटरी से जेनकिंस फ़ाइलों को डाउनलोड करने के लिए इसे निष्पादित करें और उन्हें अपने EC2 वर्चुअल सर्वर इंस्टेंस पर निर्दिष्ट स्थान पर सहेजें। "sudo get.." sudo wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo अब जेनकींस डाउनलोड हो गया है। चरण 4: जेनकींस कुंजी आयात करें जेनकींस स्थापना को पूरा करने के लिए, हमें जेनकींस कुंजी आयात करने की आवश्यकता है। जेनकिंस कुंजी को आयात करने के लिए हमें कमांड को कॉपी करना होगा और इसे निष्पादित करना होगा। "sudo rpm.." sudo rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io-2023.key इस तरह पैकेज प्रबंधक यह सत्यापित कर सकता है कि आपके द्वारा इंस्टॉल किए गए जेनकींस पैकेज बिल्कुल जेनकींस प्रोजेक्ट द्वारा प्रकाशित हैं, और उनके साथ छेड़छाड़ या दूषित नहीं किया गया है। "आरपीएम" चरण 5: जावा स्थापित करें जेनकींस को चलाने के लिए, हमें अपने EC2 वर्चुअल सर्वर इंस्टेंस पर इंस्टॉल करना होगा। जावा स्थापित करने के लिए, इस कमांड का उपयोग करें। जावा sudo amazon-linux-extras install java-openjdk11 -y सत्यापित करें कि इस कमांड का उपयोग करके सही ढंग से स्थापित किया गया था: जावा java -version आपको कुछ ऐसा ही दिखेगा. चरण 6: फॉन्टकॉन्फिग स्थापित करें जेनकींस को चलाने के लिए, आपको हमारे EC2 वर्चुअल सर्वर इंस्टेंस पर इंस्टॉल करना होगा। फॉन्टकॉन्फिग इस आदेश का प्रयोग करें. sudo yum install fontconfig java-11-openjdk -y फ़ॉन्टकॉन्फिग एक लाइब्रेरी है जिसे सिस्टम-वाइड फ़ॉन्ट कॉन्फ़िगरेशन, अनुकूलन और एप्लिकेशन एक्सेस प्रदान करने के लिए डिज़ाइन किया गया है। यह जेनकींस के लिए आवश्यक है क्योंकि जेनकींस में ऐसी विशेषताएं हैं जो फ़ॉन्ट प्रस्तुत करती हैं। चरण 7: जेनकींस स्थापित करें पहले के चरणों में, आपने एक विशिष्ट जेनकींस रिपॉजिटरी का उपयोग करने के लिए अपने EC2 वर्चुअल सर्वर इंस्टेंस को कॉन्फ़िगर किया था और फिर आपने इस रिपॉजिटरी से जुड़ी GPG कुंजी आयात की थी। अब, आपको वह कमांड चलाने की आवश्यकता है जो जेनकिंस पैकेज को खोजने के लिए उन सभी रिपॉजिटरी को खोजेगी जिनके बारे में वह जानता है, जिसमें आपके द्वारा जोड़ा गया जेनकींस भी शामिल है। एक बार जब उसे जेनकिंस रिपॉजिटरी में जेनकिंस पैकेज मिल जाएगा, तो वह इसे डाउनलोड और इंस्टॉल कर लेगा। आइए इस कमांड को चलाएं। sudo yum install jenkins -y चरण 8: जेनकींस प्रारंभ करें आप इस कमांड का उपयोग करके जेनकींस शुरू कर सकते हैं। sudo systemctl start jenkins यह जांचने के लिए कि जेनकींस चल रहा है, इस कमांड का उपयोग करें। sudo systemctl status jenkins आपको आउटपुट वैसा ही दिखेगा जैसा नीचे स्क्रीनशॉट में है: जेनकींस को अब सक्रिय होना चाहिए। चरण 9: जेनकींस तक पहुंचें जेनकिंस एप्लिकेशन तक पहुंचने के लिए, कोई भी वेब ब्राउज़र खोलें और अपने EC2 इंस्टेंस का सार्वजनिक आईपी पता या डोमेन नाम और उसके बाद पोर्ट 8080 दर्ज करें। http://<your-ec2-ip>:8080 पहली बार जब आप जेनकींस एक्सेस करेंगे, तो इसे ऑटोजेनरेटेड पासवर्ड से लॉक कर दिया जाएगा। आपको निम्नलिखित कमांड का उपयोग करके यह पासवर्ड प्रदर्शित करना होगा। sudo cat /var/lib/jenkins/secrets/initialAdminPassword इस पासवर्ड को कॉपी करें, अपने ब्राउज़र पर वापस लौटें, इसे एडमिनिस्ट्रेटर पासवर्ड फ़ील्ड में पेस्ट करें और "जारी रखें" पर क्लिक करें। फिर आप इस वेब पेज को देख पाएंगे। अब, आप अपने जेनकींस सर्वर का उपयोग कर सकते हैं। चरण 10: नई जेनकींस पाइपलाइन बनाएं अब, चूंकि जेनकींस ठीक काम कर रहा है, आप जेनकींस पाइपलाइन बनाना शुरू कर सकते हैं। जेनकींस पाइपलाइन बनाने के लिए आपको एक नया "फ्रीस्टाइल प्रोजेक्ट" बनाना होगा। एक नया "फ्रीस्टाइल प्रोजेक्ट" बनाने के लिए आपको जेनकिंस डैशबोर्ड पर जाना होगा और बटन पर क्लिक करना होगा। "नया आइटम" जीथब "फ्रीस्टाइल प्रोजेक्ट" का नाम दर्ज करें ("पाइपलाइन" नाम आगे उपयोग किया जाएगा) और फिर बटन पर क्लिक करें। "ओके" फिर पाइपलाइन का प्रदान करें। विवरण फिर "लागू करें" और "सहेजें" बटन पर क्लिक करें। उसके बाद, इसका मतलब है कि आपने पाइपलाइन का मूल आधार तैयार कर लिया है जो इस ट्यूटोरियल में बनने जा रहा है। [मॉड्यूल 3]: गिट और गिथूब अब चूंकि जेनकींस AWS EC2 वर्चुअल सर्वर इंस्टेंस पर चल रहा है, आप पाइपलाइन के साथ Git को कॉन्फ़िगर कर सकते हैं। Git एक वितरित संस्करण नियंत्रण प्रणाली (VCS) है जिसे सॉफ्टवेयर टीमों को एक विशेष प्रकार के डेटाबेस में कोड में हर संशोधन पर नज़र रखने में मदद करने के लिए डिज़ाइन किया गया है। यदि कोई गलती हो जाती है, तो डेवलपर्स घड़ी को पीछे कर सकते हैं और टीम के सभी सदस्यों के लिए व्यवधान को कम करते हुए गलती को ठीक करने में मदद के लिए कोड के पुराने संस्करणों की तुलना कर सकते हैं। वीसीएस विशेष रूप से उपयोगी है टीमें क्योंकि वे उन्हें विकास के समय को कम करने और सफल तैनाती बढ़ाने में मदद करती हैं [1]। स्वतंत्र और खुला स्रोत DevOps सबसे लोकप्रिय संस्करण नियंत्रण प्रणाली के रूप में Git हमें आपके प्रोजेक्ट Github रिपॉजिटरी से नवीनतम कोड को आपके EC2 वर्चुअल सर्वर इंस्टेंस पर खींचने में सक्षम बनाता है जहां आपका जेनकींस स्थापित है। चरण 1: गिट स्थापित करें Git इंस्टॉल करने के लिए इस कमांड का उपयोग करें। sudo yum install git -y अब इस कमांड का उपयोग करके सत्यापित करें कि Git काम कर रहा है। git --version अब Git EC2 वर्चुअल सर्वर इंस्टेंस पर ठीक काम कर रहा है। चरण 2: जेनकींस डैशबोर्ड खोलें चूंकि Git EC2 वर्चुअल सर्वर इंस्टेंस पर ठीक से काम कर रहा है, हम अब जेनकींस को Git के साथ एकीकृत कर सकते हैं। इस एकीकरण को शुरू करने के लिए आइए जेनकिंस जीथब प्लगइन इंस्टॉल करें। जेनकींस डैशबोर्ड अनुभाग पर जाएँ। चरण 3: जेनकिंस प्लगइन मैनेजर खोलें बटन पर क्लिक करें और फिर बटन पर क्लिक करें। "जेनकींस प्रबंधित करें" "प्लगइन्स प्रबंधित करें" चरण 4: जीथब जेनकिंस प्लगइन ढूंढें बटन पर क्लिक करें। "उपलब्ध प्लगइन्स" प्लगइन खोज बॉक्स ढूंढें। Github प्लगइन चुनें. जीथब चरण 5: जीथब जेनकिंस प्लगइन स्थापित करें प्लगइन चुनें. और फिर बटन पर क्लिक करें। जीथब "रीस्टार्ट किए बिना इंस्टॉल करें" Github प्लगइन डाउनलोडिंग समाप्त होने तक प्रतीक्षा करें। हाँ! जेनकींस जीथब प्लगइन स्थापित है। चरण 6: जीथब जेनकींस प्लगइन कॉन्फ़िगर करें अब जैसे ही GitHub जेनकींस प्लगइन स्थापित हो गया है, आप अंततः जेनकींस को Git के साथ एकीकृत करने के लिए इस प्लगइन को कॉन्फ़िगर कर सकते हैं। ऐसा करने के लिए आपको "शीर्ष पृष्ठ पर वापस जाएं" बटन पर क्लिक करके मुख्य पृष्ठ पर लौटना होगा। फिर मुख्य पृष्ठ पर, आपको बटन पर क्लिक करना होगा और फिर बटन पर क्लिक करना होगा। "जेनकींस प्रबंधित करें" "ग्लोबल टूल कॉन्फ़िगरेशन" फिर ग्लोबल टूल कॉन्फ़िगरेशन वेब पेज पर आपको Git अनुभाग पर जाना चाहिए। Git अनुभाग में, आपको कंप्यूटर पर Git का नाम और पथ प्रदान करके Git को कॉन्फ़िगर करना होगा। फिर और बटन** पर क्लिक करें।** "लागू करें" "सहेजें" यहां, आपने जेनकिंस जीथब प्लगइन को कॉन्फ़िगर करना समाप्त कर लिया है। चरण 7: Git को पाइपलाइन में एकीकृत करें अब, चूंकि जेनकिंस जीथब प्लगइन स्थापित और कॉन्फ़िगर किया गया है, अब आप इस प्लगइन को अपनी पाइपलाइन में उपयोग करने में सक्षम हैं। यह आपकी पाइपलाइन को, जिसे आपने मॉड्यूल 2 में बनाया है, आपके प्रोजेक्ट कोड को निर्दिष्ट GitHub रिपॉजिटरी से खींचने की अनुमति देगा। खैर, इस प्लगइन को अपनी पाइपलाइन में एकीकृत करने के लिए आपको सोर्स कोड प्रबंधन अनुभाग में जाना होगा और अपनी पाइपलाइन में Git चुनना होगा। फिर आपको अपना प्रोजेक्ट रिपोजिटरी यूआरएल प्रदान करना होगा। यदि आपका प्रोजेक्ट रिपॉजिटरी Github पर सार्वजनिक है, तो आपको क्रेडेंशियल प्रदान करने की आवश्यकता नहीं है। यदि प्रोजेक्ट रिपॉजिटरी Github पर निजी है, तो आपको क्रेडेंशियल प्रदान करने की आवश्यकता है। आप मेरे प्रोजेक्ट का उपयोग अगले रिपोजिटरी यूआरएल के साथ कर सकते हैं: । https://github.com/Sunagatov/Hello.git बस इसे कॉपी करें और " इनपुट पर पेस्ट करें। फिर पाइपलाइन के साथ एकीकरण Git को समाप्त करने के लिए और बटन पर क्लिक करें। रिपोजिटरी यूआरएल" "लागू करें" "सहेजें" चरण 8: परीक्षण Git को पाइपलाइन में एकीकृत किया गया अब आप Github से किसी प्रोजेक्ट को खींचने के लिए अपनी अद्यतन पाइपलाइन का उपयोग कर सकते हैं। ऐसा करने के लिए आपको **"बिल्ड नाउ"**बटन पर क्लिक करना होगा। परिणामस्वरूप, आप बिल्ड इतिहास में एक सफल निर्माण देखेंगे। बिल्ड इतिहास से पहला बिल्ड खोलें। अब आप पहले निर्माण का सफल कार्य परिणाम देख सकते हैं। यदि आप अपना AWS EC2 टर्मिनल खोलते हैं। आप जांच सकते हैं कि पाइपलाइन अच्छी तरह से काम करती है। बस इस आदेश का प्रयोग करें. cd /var/lib/jenkins/workspace/{your pipeline name} इस तरह आप देख सकते हैं कि Github से आपका प्रोजेक्ट आपके AWS EC2 वर्चुअल सर्वर इंस्टेंस पर खींच लिया गया था। [मॉड्यूल 4]: अपाचे मावेन सॉफ्टवेयर विकास में व्यापक रूप से उपयोग किया जाने वाला बिल्ड ऑटोमेशन और प्रोजेक्ट प्रबंधन उपकरण है। यह प्रोजेक्ट निर्भरता को प्रबंधित करके और एक सुसंगत निर्माण जीवनचक्र प्रदान करके कोड के संकलन, परीक्षण और पैकेजिंग की प्रक्रिया को सुव्यवस्थित करता है। मेवेन परियोजना संरचना, निर्भरता और कार्यों को परिभाषित करने के लिए XML-आधारित कॉन्फ़िगरेशन फ़ाइलों (POM फ़ाइलों) का उपयोग करता है, जिससे डेवलपर्स जटिल सॉफ़्टवेयर परियोजनाओं को कुशलतापूर्वक प्रबंधित और तैनात कर सकते हैं। अपाचे मावेन अब जब आपने Git को पाइपलाइन में एकीकृत कर लिया है, तो आप Apache Maven को शामिल करके पाइपलाइन को और बढ़ा सकते हैं जो आपको अपना प्रोजेक्ट बनाने, परीक्षण करने और पैकेज करने में सक्षम बनाता है। ऐसा करने के लिए आपको अपने AWS EC2 वर्चुअल सर्वर इंस्टेंस पर Apache Maven इंस्टॉल करना होगा जहां जेनकींस और Git इंस्टॉल किए गए थे। चरण 1: अपाचे मावेन डाउनलोड करें अपाचे मावेन को डाउनलोड करने के लिए निर्देशिका पर जाएं। “/opt” cd /opt और फिर इस कमांड का उपयोग करें. sudo wget https://dlcdn.apache.org/maven/maven-3/3.9.4/binaries/apache-maven-3.9.4-bin.tar.gz यह कमांड नवीनतम आधिकारिक अपाचे मावेन डाउनलोड करेगा (आधिकारिक अपाचे मावेन वेबसाइट पर नवीनतम संस्करण देखें)। नवीनतम आधिकारिक अपाचे मावेन रिलीज़ को खोजने के लिए, लिंक का उपयोग करें। https://maven.apache.org/download.cgi चरण 2: संग्रह से अपाचे मावेन निकालें डाउनलोड किए गए संग्रह से अपाचे मावेन को निकालने के लिए इस कमांड का उपयोग करें: sudo tar -xvzf apache-maven-*.tar.gz चरण 3: JAVA_HOME और M2_HOME जोड़ें इस कमांड का उपयोग करके रूट फ़ोल्डर में जाएँ। cd ~ इस आदेश का उपयोग करके फ़ाइल संपादित करें। .bash_profile vi .bash_profile और M2_HOME वेरिएबल जोड़ें। JAVA_HOME के लिए JDK11 को पथ और वेरिएबल के लिए मावेन निर्देशिका को पथ निर्दिष्ट करें। JAVA_HOME M2_HOME JDK पथ खोजने के लिए, इस कमांड का उपयोग करें। sudo find / -name java वीआईएम का उपयोग कैसे करें फ़ाइल को के लिए डेटा डालने के लिए कीबोर्ड बटन दबाएँ। संपादित करने "I" फ़ाइल को के लिए कीबोर्ड बटन " esc " दबाएँ और ":w" दर्ज करें। सहेजने फ़ाइल से के लिए कीबोर्ड बटन दबाएँ और दर्ज करें। बाहर निकलने "esc" ":q" परिवर्तनों को सुरक्षित करें। फिर, सिस्टम वेरिएबल्स को रीफ्रेश करने के लिए इस कमांड को निष्पादित करें। source .bash_profile सत्यापित करने के लिए, इस कमांड का उपयोग करें। $PATH को echo $PATH सत्यापित करने के लिए, इस कमांड का उपयोग करें। अपाचे मावेन को mvn -v यदि आपने सब कुछ सही ढंग से किया है, तो आप अपाचे मावेन का संस्करण देख पाएंगे। चरण 4: अपाचे मावेन जेनकींस प्लगइन स्थापित करें चूँकि Apache Maven का उपयोग EC2 उदाहरण पर किया जा सकता है, आप इसे पाइपलाइन के साथ एकीकृत करने के लिए Apache Maven प्लगइन स्थापित कर सकते हैं। इसे प्राप्त करने के लिए, इन चरणों का पालन करें: "डैशबोर्ड" → "जेनकींस प्रबंधित करें" → "प्लगइन प्रबंधित करें" → "उपलब्ध" पर नेविगेट करें। खोज बॉक्स में, दर्ज करें। "मावेन" प्लगइन चुनें। "मावेन इंटीग्रेशन" डाउनलोडिंग प्रक्रिया समाप्त होने तक प्रतीक्षा करें। और फिर बटन पर क्लिक करें। "शीर्ष पृष्ठ पर वापस जाएं" चरण 5: अपाचे मावेन जेनकींस प्लगइन कॉन्फ़िगर करें अपाचे मावेन जेनकींस प्लगइन की सफल स्थापना के साथ, अब आप इस प्लगइन का उपयोग उस पाइपलाइन के भीतर करने में सक्षम हैं जिसे आपने मॉड्यूल 2 और 3 में बनाया और अपडेट किया था। ऐसा करने के लिए, इन चरणों का पालन करें: पर जाएं "डैशबोर्ड" → "जेनकींस प्रबंधित करें" → "ग्लोबल टूल कॉनफिगरेशन" → "जेडीके" "जेडीके जोड़ें" बटन पर क्लिक करें। "स्वचालित रूप से इंस्टॉल करें" को अनचेक करें। फिर अनुभाग पर जाएँ। बटन पर क्लिक करें। "मावेन" "मावेन जोड़ें" "स्वचालित रूप से इंस्टॉल करें" को अनचेक करें। फिर और पथ जोड़ें। नाम MAVEN_HOME और बटन पर क्लिक करें। "लागू करें" "सहेजें" यहां, आपने अपाचे मावेन जेनकिंस प्लगइन को कॉन्फ़िगर करना समाप्त कर लिया है। चरण 6: अपाचे मावेन को पाइपलाइन में एकीकृत करें अब जैसे ही Apache Maven GitHub प्लगइन स्थापित और कॉन्फ़िगर किया गया है, अब आप अपनी पाइपलाइन के भीतर Apache Maven का उपयोग करने में सक्षम हैं। यह आपकी पाइपलाइन को, जिसे आपने "[मॉड्यूल 2]: जेनकिंस सर्वर" में बनाया था, एक जार आर्टिफैक्ट बनाने के लिए अपना प्रोजेक्ट कोड बनाने की अनुमति देगा। अपाचे मावेन को पाइपलाइन में एकीकृत करने के लिए आपको इन चरणों का पालन करना होगा: "डैशबोर्ड" → "CI_CD_Pipeline" → "कॉन्फ़िगर करें" → "बिल्ड स्टेप्स" पर नेविगेट करें। बटन पर क्लिक करें। "बिल्ड चरण जोड़ें" विकल्प चुनें। "शीर्ष-स्तरीय मावेन लक्ष्यों को आमंत्रित करें" "अपाचे-मावेन" को "मावेन संस्करण" के रूप में चुनें। इनपुट में कमांड जोड़ें। "लक्ष्य" "क्लीन पैकेज" बटन पर क्लिक करें। "उन्नत" इनपुट में "pom.xml" जोड़ें। "POM" अंत में, आपको पाइपलाइन के साथ अपाचे मावेन के एकीकरण को पूरा करने के लिए और बटन पर क्लिक करना चाहिए। "लागू करें" "सहेजें" चरण 7: पाइपलाइन में एकीकृत अपाचे मावेन का परीक्षण करें अब आप अपना Github प्रोजेक्ट बनाने के लिए अपनी अद्यतन पाइपलाइन का उपयोग कर सकते हैं। ऐसा करने के लिए आपको **"बिल्ड नाउ"**बटन पर क्लिक करना होगा। परिणामस्वरूप, आप बिल्ड इतिहास में एक सफल कार्य परिणाम देखेंगे। यदि आप अपना AWS EC2 टर्मिनल खोलते हैं। आप जांच सकते हैं कि पाइपलाइन अच्छी तरह से काम करती है। बस इस आदेश का प्रयोग करें. cd /var/lib/jenkins/workspace/{your pipeline name}/target इस तरह आप JAR आर्टिफैक्ट देख सकते हैं, जो GitHub से आपके प्रोजेक्ट के सफल निर्माण का संकेत देता है। [मॉड्यूल 5]: डॉकर अब "Ansible Server" नाम से एक नया EC2 इंस्टेंस बनाएं जहां आप Docker और Ansible इंस्टॉल करने जा रहे हैं। चरण 1: AWS EC2 वर्चुअल सर्वर इंस्टेंस लॉन्च करें इस चरण को पूरा करने के लिए इस ट्यूटोरियल के " अनुभाग के निर्देशों का उपयोग करें। सुरक्षा समूह सेटअप जोड़ना न भूलें. यह डॉकर और एसएसएच को क्रमशः पोर्ट 8080 और 22 पर काम करने की अनुमति देता है। AWS EC2 वर्चुअल सर्वर इंस्टेंस लॉन्च करें" चरण 2: AWS EC2 वर्चुअल सर्वर इंस्टेंस से कनेक्ट करें "कनेक्ट" बटन पर क्लिक करें। अब आप EC2 वर्चुअल सर्वर इंस्टेंस ऑनलाइन टर्मिनल देख सकते हैं। sudo chown ansible-admin:ansible-admin /opt/docker चरण 3: Ansible EC2 वर्चुअल सर्वर पर डॉकर स्थापित करें। अब आपको अपने Ansible EC2 इंस्टेंस पर docker इंस्टॉल करना होगा। ऐसा करने के लिए आपको एक नया डॉकर फ़ोल्डर बनाना होगा। sudo mkdir /opt/docker फिर, अगले कमांड को निष्पादित करके डॉकर इंस्टॉल करें। sudo yum install docker -y चरण 4: वर्तमान उपयोगकर्ता को Ansible EC2 वर्चुअल सर्वर पर डॉकर समूह में जोड़ें आपको Docker को व्यवस्थापकीय विशेषाधिकार देने के लिए वर्तमान उपयोगकर्ता EC2 वर्चुअल सर्वर पर Docker समूह में जोड़ना होगा। "ansible-admin" को "AnsibleServer" sudo usermod -a -G docker ansible-admin इन परिवर्तनों को प्रभावी करने के लिए आपको लॉगआउट और वापस लॉग इन करना होगा। फिर आप अगला कमांड निष्पादित कर सकते हैं id ansible-admin यह देखने के लिए कि नया डॉकर उपयोगकर्ता मौजूद है। चरण 5: डॉकर लॉन्च करें अब चूंकि डॉकर Ansible EC2 इंस्टेंस पर स्थापित है, आप इसे अगले कमांड को निष्पादित करके लॉन्च कर सकते हैं। sudo systemctl start docker जैसे ही डॉकर शुरू होता है आप अगला कमांड निष्पादित कर सकते हैं sudo systemctl status docker यह देखने के लिए कि डॉकर सक्रिय है और अभी चल रहा है। चरण 6: डॉकरफ़ाइल बनाएं पाइपलाइन के अंतिम संस्करण में, प्रक्रिया में आपके GitHub प्रोजेक्ट से एक नई डॉकर छवि बनाना और इसे डॉकर हब पर धकेलना शामिल होगा। इसे पूरा करने के लिए, आपके GitHub प्रोजेक्ट में एक Dockerfile होनी चाहिए। यदि आपने प्रोजेक्ट का उपयोग किया है जो " मॉड्यूल में पेश किया गया था, तो आपको एक नया डॉकरफाइल बनाने की आवश्यकता नहीं है क्योंकि इस प्रोजेक्ट रिपॉजिटरी में पहले से ही डॉकरफाइल शामिल है। "हैलो" [मॉड्यूल 3]: गिट और जीथब" FROM eclipse-temurin:17-jre-jammy ENV HOME=/opt/app WORKDIR $HOME ADD hello-0.0.1-SNAPSHOT.jar $HOME ENTRYPOINT ["java", "-jar", "/opt/app/hello-0.0.1-SNAPSHOT.jar" ] यदि आपने अपने स्वयं के प्रोजेक्ट रिपॉजिटरी का उपयोग किया है और इसमें डॉकरफाइल नहीं है, तो आपको एक नया डॉकरफाइल बनाना होगा। एक नई Dockerfile बनाने के लिए, निम्नलिखित कमांड निष्पादित करें, जो नई फ़ाइल बनाएगी। sudo touch Dockerfile फिर आप इस फ़ाइल को कमांड के अनुक्रम से भर सकते हैं जो बताता है कि कंटेनरीकृत एप्लिकेशन वातावरण कैसे बनाया जाए। इन आदेशों में छवि में फ़ाइलों की प्रतिलिपि बनाना, सॉफ़्टवेयर स्थापित करना, पर्यावरण चर सेट करना और कंटेनर को कॉन्फ़िगर करना जैसी क्रियाएं शामिल हैं। इन कमांडों के साथ डॉकरफाइल को भरने के लिए, निम्नलिखित कमांड निष्पादित करें। vim Dockerfile Dockerfile उपयोग के लिए तैयार है। चरण 7: डॉकर लॉगिन करें अब जब आपकी Dockerfile उपयोग के लिए तैयार है, तो अपने प्रोजेक्ट के JAR आर्टिफैक्ट को **"JenkinsServer"**EC2 इंस्टेंस से कॉपी करके और इसे EC2 इंस्टेंस पर पेस्ट करके आगे बढ़ें। यह ध्यान रखना महत्वपूर्ण है कि यह स्थानांतरण आगे पाइपलाइन के माध्यम से स्वचालित हो जाएगा। "AnsibleServer" इस चरण को पूरा करके, आप अपने द्वारा सेट किए गए डॉकर वातावरण के साथ अपनी डॉकरफ़ाइल का परीक्षण करने के लिए तैयार होंगे। परीक्षण शुरू करने से पहले, डॉकरहब पर स्वयं को प्रमाणित करना सुनिश्चित करें। निम्नलिखित आदेश निष्पादित करें. docker login यह कमांड आपको आपके उपयोगकर्ता नाम और पासवर्ड सहित अपना डॉकरहब लॉगिन क्रेडेंशियल प्रदान करने के लिए प्रेरित करेगा। इसके साथ, आपने में लॉग इन करने की प्रक्रिया पूरी कर ली है और अब परीक्षण के लिए आगे बढ़ने के लिए तैयार हैं। डॉकर डॉकर वातावरण और डॉकरफाइल का परीक्षण चरण 8: Dockerhub में आपका सफल लॉगिन पूरा होने के साथ, अब आप अपने द्वारा तैयार किए गए Dockerfile का परीक्षण शुरू करने के लिए तैयार हैं। डॉकर छवि बनाने के लिए इस आदेश को निष्पादित करें। docker build -t hello:latest . इसके बाद, एक टैग स्थापित करने के लिए निम्नलिखित कमांड निष्पादित करें जो छवि को डॉकरहब पर अपलोड करने की सुविधा प्रदान करेगा: docker tag hello:latest zufarexplainedit/hello:latest अंत में, इस कमांड के निष्पादन के माध्यम से डॉकर छवि को डॉकरहब पर धकेलने के लिए आगे बढ़ें। docker push zufarexplainedit/hello:latest इन चरणों का पालन करते हुए, यह सत्यापित करने के लिए अपने डॉकरहब खाते पर जाएँ कि आप एक नई छवि देख सकते हैं या नहीं। अब आपको देखना चाहिए कि छवि प्रभावी ढंग से जोड़ दी गई है। यह परिणाम डॉकर वातावरण की सफल स्थापना की पुष्टि करता है और आपकी डॉकरफ़ाइल सही है। [मॉड्यूल 6]: उत्तरयोग्य अब हम EC2 वर्चुअल सर्वर इंस्टेंस पर Ansible सर्वर को कॉन्फ़िगर करते हैं। चरण 1: एक AWS EC2 वर्चुअल सर्वर इंस्टेंस बनाएं Ansible को चलाने के लिए आपको एक वर्चुअल सर्वर की आवश्यकता है। इस चरण को पूरा करने और Ansible के लिए अनुभाग के निर्देशों का पालन करें। EC2 वर्चुअल सर्वर इंस्टेंस बनाने के लिए इस ट्यूटोरियल के [मॉड्यूल 1]: AWS EC2 वर्चुअल सर्वर सुरक्षा समूह सेटअप जोड़ना न भूलें. यह और क्रमशः पोर्ट और पर काम करने की अनुमति देता है। Ansible SSH को 8080 22 अपने EC2 वर्चुअल सर्वर इंस्टेंस को अलग करने के लिए नाम का उपयोग करें। "AnsibleServer" आप नए EC2 उदाहरण के लिए सुरक्षा समूह और का पुन: उपयोग कर सकते हैं। "AnsibleServer" "CI_CD_Pipeline" "CI_CD_Pipeline_Key_Pair" चरण 2: AWS EC2 वर्चुअल सर्वर इंस्टेंस से कनेक्ट करें AWS कंसोल होम पेज → EC2 प्रबंधन कंसोल डैशबोर्ड → इंस्टेंस → AnsibleServer पर जाएं। फिर बटन पर क्लिक करें। "कनेक्ट" फिर आपको यह वेब पेज दिखाई देगा. आपको फिर से बटन पर क्लिक करना चाहिए। "कनेक्ट" अब आप EC2 वर्चुअल सर्वर इंस्टेंस ऑनलाइन टर्मिनल देख सकते हैं। अब EC2 वर्चुअल सर्वर इंस्टेंस पर Ansible सर्वर को कॉन्फ़िगर करते हैं। चरण 3: "AnsibleServer" AWS EC2 वर्चुअल सर्वर इंस्टेंस का होस्टनाम बदलें जब आप EC2 वर्चुअल सर्वर इंस्टेंस पर AnsibleServer को कॉन्फ़िगर करना चाहते हैं तो सबसे पहली चीज़ जो आपको करने की ज़रूरत है वह है इसका होस्टनाम बदलना। चलो यह करते हैं। होस्टनाम फ़ाइल खोलने के लिए इस आदेश को निष्पादित करें: sudo vi /etc/hostname आपको कुछ इस तरह देखना चाहिए: इस होस्टनाम को फिर, इसे रीबूट करें। "ansible-server" से बदलें। sudo init 6 चरण 4: "AnsibleServer" AWS EC2 वर्चुअल सर्वर इंस्टेंस में एक नया उपयोगकर्ता जोड़ें और कॉन्फ़िगर करें अब AWS EC2 वर्चुअल सर्वर इंस्टेंस में एक नया उपयोगकर्ता जोड़ें। ansible-admin ऐसा करने के लिए इस आदेश का उपयोग करें: sudo useradd ansible-admin फिर, उपयोगकर्ता के लिए पासवर्ड सेट करें। ansible-admin sudo passwd ansible-admin साथ ही, आपको फ़ाइल को संपादित करके उपयोगकर्ता विशेषाधिकारों को कॉन्फ़िगर करने की आवश्यकता है। sudoers sudo visudo इस फ़ाइल में जोड़ें। sudoers "ansible-admin ALL=(ALL) ALL" साथ ही, आपको पासवर्ड प्रमाणीकरण सक्षम करने के लिए फ़ाइल को संपादित करना होगा। /etc/ssh/sshd_config sudo vi /etc/ssh/sshd_config फिर आपको इन परिवर्तनों की पुष्टि करने के लिए सेवा को पुनः लोड करना होगा। sudo service sshd reload इस आदेश को निष्पादित करने के परिणामस्वरूप, आप देखेंगे: अब आप आगे की सभी कमांड के लिए sudo जोड़ने से बचने के लिए इस कमांड का उपयोग कर सकते हैं। sudo su - ansible-admin चरण 5: AWS EC2 वर्चुअल सर्वर इंस्टेंस में कुंजी जेनरेट करें आप इस आलेख में आगे K8s EC2 वर्चुअल सर्वर इंस्टेंसेस जैसे दूरस्थ सर्वर प्रबंधित करने की योजना बना रहे हैं। इसीलिए आपको SSH कुंजियाँ सेट करने की आवश्यकता है। ssh-keygen इस आदेश को निष्पादित करने के परिणामस्वरूप, आप देखेंगे: अब SSH कुंजियाँ जनरेट हो गई हैं और उपयोग के लिए तैयार हैं। चरण 6: अन्सिबल स्थापित करें अब आप अपने EC2 वर्चुअल सर्वर इंस्टेंस पर Ansible इंस्टॉल कर सकते हैं। "AnsibleServer" चलो यह करते हैं। Ansible को स्थापित करने के लिए इस आदेश को निष्पादित करें। sudo amazon-linux-extras install ansible2 Ansible को सत्यापित करने के लिए, इस कमांड का उपयोग करें: ansible --version इस आदेश को निष्पादित करने के परिणामस्वरूप, आप देखेंगे: चरण 7: जेनकिंस सर्वर EC2 उदाहरण पर जेनकिंस "एसएसएच पर प्रकाशित करें" प्लगइन स्थापित करें चूँकि Ansible आपके EC2 वर्चुअल सर्वर इंस्टेंस पर स्थापित है, आप इसे Ansible के साथ एकीकृत करने के लिए जेनकींस को कॉन्फ़िगर कर सकते हैं। जेनकींस को EC2 वर्चुअल सर्वर इंस्टेंस जहां Ansible स्थापित है और अन्य EC2 वर्चुअल सर्वर इंस्टेंस जहां स्थापित है, के साथ एकीकृत करने के लिए आपको प्लगइन स्थापित करने की आवश्यकता है। "AnsibleServer" Kubernetes "SSH पर प्रकाशित करें" → " → → पर जाएं। "डैशबोर्ड" जेनकींस प्रबंधित करें" "सिस्टम कॉन्फ़िगर करें" "उपलब्ध प्लगइन्स" फिर खोज बॉक्स में दर्ज करें। "एसएसएच पर प्रकाशित करें" बटन पर क्लिक करें। डाउनलोडिंग प्रक्रिया समाप्त होने तक प्रतीक्षा करें। "रीस्टार्ट किए बिना इंस्टॉल करें" अब "पब्लिश ओवर एसएसएच" प्लगइन जेनकिंस ईसी2 वर्चुअल सर्वर इंस्टेंस पर इंस्टॉल हो गया है। चरण 8: जेनकींस "एसएसएच पर प्रकाशित करें" प्लगइन कॉन्फ़िगर करें अपाचे मावेन जेनकींस प्लगइन की सफल स्थापना के साथ, अब आप इस प्लगइन का उपयोग उस पाइपलाइन के भीतर करने में सक्षम हैं जिसे आपने मॉड्यूल 2 और 3 में बनाया और अपडेट किया था। ऐसा करने के लिए, इन चरणों का पालन करें: → → → पर जाएं। "डैशबोर्ड" "जेनकींस प्रबंधित करें" "सिस्टम कॉन्फ़िगर करें" "एसएसएच पर प्रकाशित करें" स्क्रीनशॉट पर मौजूद सभी आवश्यक डेटा दर्ज करें, जिसमें होस्टनाम, उपयोगकर्ता नाम और निजी कुंजी (या यदि लागू हो तो पासवर्ड) शामिल है। फिर और बटन पर क्लिक करें। "लागू करें" "सहेजें" यहां आपने जेनकींस प्लगइन को कॉन्फ़िगर करना समाप्त कर लिया है। "SSH पर प्रकाशित करें" इसके बाद, यह सत्यापित करने के लिए कि प्लगइन सही ढंग से काम कर रहा है, "टेस्ट कॉन्फ़िगरेशन" पर क्लिक करें। बाईं ओर आप देख सकते हैं कि परीक्षण प्लगइन कॉन्फ़िगरेशन स्थिति "सफलता" है। इसका मतलब है कि प्लगइन कॉन्फ़िगरेशन सही है. चरण 9: AnsibleServer में नई डॉकर निर्देशिका बनाएं आपको AnsibleServer EC2 इंस्टेंस पर एक नया फ़ोल्डर बनाने की आवश्यकता है जहां प्रोजेक्ट JAR संग्रहीत किया जाएगा। इस जार का उपयोग बाद में डॉकर छवि बनाने के लिए किया जाएगा। चलो शुरू करो। AnsibleServer EC2 उदाहरण में फ़ोल्डर पर जाएँ। "/opt" cd /opt वहां एक नया फ़ोल्डर बनाएं। "डॉकर" sudo mkdir docker इस फ़ोल्डर को विशेषाधिकार दें। "डॉकर" sudo chown ansible-admin:ansible-admin docker अब, इस आदेश को निष्पादित करके फ़ोल्डर विशेषाधिकारों की जांच करें। "डॉकर" ll आप देख सकते हैं कि फ़ोल्डर उपयोगकर्ता के साथ पहुंच योग्य है। "docker" "ansible-admin" में "एसएसएच पर प्रकाशित करें" जीथब प्लगइन को एकीकृत करें चरण 10: पाइपलाइन अब जीथब प्लगइन स्थापित और कॉन्फ़िगर किया गया है, अब आप इसे उस पाइपलाइन में एकीकृत करने में सक्षम हैं जिसे आपने "[मॉड्यूल 2]: जेनकिंस सर्वर" में प्रोजेक्ट जार आर्टिफैक्ट को " से स्थानांतरित करने के लिए बनाया था। । "एसएसएच पर प्रकाशित करें" जेनकिंस सर्वर" "AnsibleServer" खैर, पाइपलाइन में जीथब प्लगइन को एकीकृत करने के लिए आपको इन चरणों का पालन करना होगा: "एसएसएच पर प्रकाशित करें" "डैशबोर्ड" → "CI_CD_Pipeline" → "कॉन्फ़िगर करें" → "पोस्ट-बिल्ड एक्शन" पर नेविगेट करें। बटन पर क्लिक करें। "पोस्ट-बिल्ड एक्शन जोड़ें" विकल्प चुनें। "SSH पर निर्मित कलाकृतियाँ भेजें" अनुभाग में इनपुट में जोड़ें**।** "SSH सर्वर" "नाम" "AnsibleServer" अनुभाग में इनपुट में जोड़ें**।** "ट्रांसफर सेट" "स्रोत फ़ाइलें" "लक्ष्य/*.jar" अनुभाग में इनपुट में जोड़ें**।** "ट्रांसफर सेट" "लक्ष्य/" को "उपसर्ग हटाएं" अनुभाग में इनपुट में जोड़ें**।** "ट्रांसफर सेट" "दूरस्थ निर्देशिका" "//opt/docker/" अभी के लिए, बस 'ट्रांसफर सेट' अनुभाग के अंतर्गत 'एक्सेक कमांड' इनपुट में एक खाली स्ट्रिंग डालें। अंत में, आपको पाइपलाइन के साथ " प्लगइन का एकीकरण पूरा करने के लिए और बटन पर क्लिक करना चाहिए। एसएसएच पर प्रकाशित करें" "लागू करें" "सहेजें" जीथब प्लगइन "एसएसएच पर प्रकाशित करें" का परीक्षण करें चरण 11: पाइपलाइन में एकीकृत अब आप प्रोजेक्ट जार आर्टिफैक्ट को " से में स्थानांतरित करने के लिए अपनी अद्यतन पाइपलाइन का उपयोग कर सकते हैं। ऐसा करने के लिए आपको बटन पर क्लिक करना होगा। परिणामस्वरूप आप निर्माण इतिहास में एक सफल कार्य परिणाम देखेंगे। जेनकिंससर्वर" "एन्सिबलसर्वर" "बिल्ड नाउ" यदि आप अपना AWS EC2 टर्मिनल खोलते हैं। आप जांच सकते हैं कि पाइपलाइन अच्छी तरह से काम करती है। "AnsibleServer" बस इस आदेश का प्रयोग करें. cd /opt/docker इस तरह आप JAR आर्टिफैक्ट देख सकते हैं, जो GitHub से आपके प्रोजेक्ट के सफल निर्माण का संकेत देता है। चरण 12: अन्सिबल होस्ट कॉन्फ़िगर करें जब आप एक अन्सिबल प्लेबुक चलाते हैं, तो आप उन होस्टों को निर्दिष्ट करते हैं जिन पर इसे चलाना चाहिए। आप इसे दो तरीकों से कर सकते हैं: अपनी प्लेबुक में, आप पैरामीटर को आईपी पते या होस्टनाम की सूची में सेट कर सकते हैं। सीधे प्लेबुक में होस्ट निर्दिष्ट करें: hosts Ansible आपको इन्वेंट्री फ़ाइल में होस्ट की एक सूची को परिभाषित करने और अपनी प्लेबुक चलाते समय इस फ़ाइल को संदर्भित करने की अनुमति देता है। डिफ़ॉल्ट इन्वेंट्री फ़ाइल है। इन्वेंट्री फ़ाइल का उपयोग करें: /etc/ansible/hosts संपादित करके, आप हर बार प्लेबुक चलाने पर उनके आईपी पते लिखे बिना आसानी से होस्ट के समूहों को प्रबंधित कर सकते हैं। /etc/ansible/hosts आइए निम्नलिखित कमांड निष्पादित करके AnsibleServer EC2 इंस्टेंस होस्ट का पता लगाएं। sudo ifconfig AnsibleServer EC2 इंस्टेंस होस्ट का पता लगाने के बाद, आप इसे निम्न कमांड निष्पादित करके Ansible होस्ट फ़ाइल में जोड़ सकते हैं। sudo vi /etc/ansible/hosts आप संदर्भ के रूप में "[ansible]" भी जोड़ सकते हैं यदि आप सर्वरों का एक समूह प्रबंधित कर रहे हैं और आप उन सभी पर एक प्लेबुक लागू करना चाहते हैं, तो प्लेबुक में प्रत्येक सर्वर के आईपी पते को निर्दिष्ट करने के बजाय, आप बस सभी सर्वरों को इन्वेंट्री फ़ाइल में एक समूह में जोड़ सकते हैं और फिर निर्दिष्ट कर सकते हैं प्लेबुक में समूह. चरण 13: Ansible के लिए पासवर्ड रहित SSH प्रमाणीकरण को लोकलहोस्ट पर कॉन्फ़िगर करें Ansible को दूरस्थ सर्वर पर कार्यों को स्वचालित करने के लिए डिज़ाइन किया गया है। पासवर्ड रहित SSH प्रमाणीकरण, Ansible को मैन्युअल पासवर्ड प्रविष्टि की आवश्यकता के बिना उन सर्वरों से कनेक्ट करने का अधिकार देता है। अपने कंप्यूटर से दूसरे कंप्यूटर (जैसे आईपी एड्रेस 172.31.34.41 पर एक) के साथ एक सुरक्षित कनेक्शन बनाने के लिए, ansible-admin उपयोगकर्ता की SSH कुंजी का उपयोग करके इस कमांड को निष्पादित करें। sudo ssh-copy-id -i /home/{your user name}/.ssh/id_rsa.pub {your user name}@{your host address} मेरे मामले में, यह इस तरह दिखता है. sudo ssh-copy-id -i /home/ansible-admin/.ssh/id_rsa.pub ansible-admin@172.31.34.41 अब आप देख सकते हैं। इसका मतलब है कि पासवर्ड रहित एसएसएच प्रमाणीकरण इंस्टॉलेशन सफलतापूर्वक पूरा हो गया था। "जोड़ी गई कुंजी(कुंजियों) की संख्या: 1" चरण 14: डॉकर कार्यों के लिए एक नई एन्सिबल प्लेबुक बनाएं अब जब Ansible पूरी तरह तैयार हो गया है और जाने के लिए तैयार है, तो आप अपनी पाइपलाइन के लिए एक नई Ansible प्लेबुक बना सकते हैं। यह प्लेबुक Ansible को एक नई Docker छवि बनाने और Dockerhub को भेजने देगी। यहां बताया गया है कि आप यह कैसे कर सकते हैं: एक नई Ansible प्लेबुक फ़ाइल बनाकर प्रारंभ करें। बस इस आदेश का प्रयोग करें. touch hello-app.yml फिर, नव निर्मित फ़ाइल को संपादित करें। इस आदेश के साथ संपादन के लिए इसे खोलें। hello-app.yml vi hello-app.yml फ़ाइल के अंदर, निम्नलिखित सामग्री टाइप करें। --- - hosts: ansible user: root tasks: - name: create docker image command: docker build -t hello:latest . args: chdir: /opt/docker - name: create tag to push image onto dockerhub command: docker tag hello:latest zufarexplainedit/hello:latest - name: push docker image onto dockerhub command: docker push zufarexplainedit/hello:latest डॉकर कार्यों के लिए अन्सिबल प्लेबुक उपयोग के लिए तैयार है। चरण 13: डॉकर कार्यों के साथ एन्सिबल प्लेबुक का परीक्षण करें Ansible, Ansible प्लेबुक, AnsibleServer और जेनकिंस सर्वर सभी को ठीक से कॉन्फ़िगर करने के साथ, यह Ansible प्लेबुक का परीक्षण करने का समय है। अपनी Ansible प्लेबुक के स्थान पर नेविगेट करें। cd /opt/docker फिर, निम्न आदेश निष्पादित करें। sudo -u ansible-admin ansible-playbook /opt/docker/hello-app.yml पूरा होने पर, आप अपनी Ansible प्लेबुक का सफल निष्पादन परिणाम देखेंगे। इसके अलावा, अपने डॉकरहब खाते पर जाने के लिए कुछ समय निकालें और सत्यापित करें कि क्या अब कोई नई छवि दिखाई दे रही है। आपको नई जोड़ी गई छवि देखनी चाहिए. यह परिणाम पुष्टि करता है कि आपकी अन्सिबल प्लेबुक सही है। में एकीकृत करें चरण 14: Ansible Docker कार्यों को पाइपलाइन अब जीथब प्लगइन, एन्सिबल और डॉकर स्थापित और कॉन्फ़िगर किए गए हैं, अब आप प्रोजेक्ट जार आर्टिफैक्ट को स्थानांतरित करने के लिए "[मॉड्यूल 2]: जेनकिंस सर्वर" में बनाई गई पाइपलाइन में उन सभी को एकीकृत करने में सक्षम हैं। " से तक और फिर अपने प्रोजेक्ट से एक नई डॉकर छवि बनाएं और फिर इस डॉकर छवि को डॉकरहब पर धकेलें। "एसएसएच पर प्रकाशित करें" जेनकिंससर्वर" "एन्सिबलसर्वर" इसे प्राप्त करने के लिए आपको इन चरणों का पालन करना होगा: "डैशबोर्ड" → "सीआई_सीडी_पाइपलाइन" → "कॉन्फ़िगर" → "पोस्ट-बिल्ड एक्शन" → "एसएसएच पर बिल्ड आर्टवर्क भेजें" पर नेविगेट करें। इनपुट में कमांड जोड़ें। "Exec कमांड" "sudo -u ansible-admin ansible-playbook /opt/docker/hello-app.yml" अंत में, पाइपलाइन के साथ एकीकरण Ansible Docker कार्यों को पूरा करने के लिए और बटन पर क्लिक करें। "लागू करें" "सहेजें" चरण 15: पाइपलाइन में एकीकृत "डॉकर कार्यों के साथ एन्सिबल प्लेबुक" का परीक्षण करें अब आप प्रोजेक्ट जार आर्टिफैक्ट को " से में स्थानांतरित करने के लिए अपनी उन्नत पाइपलाइन का परीक्षण कर सकते हैं, फिर अपने प्रोजेक्ट से एक नई डॉकर छवि बना सकते हैं और फिर इस डॉकर छवि को डॉकरहब पर धकेल सकते हैं। ऐसा करने के लिए आपको बटन पर क्लिक करना होगा। परिणामस्वरूप आप निर्माण इतिहास में एक सफल कार्य परिणाम देखेंगे। जेनकिंससर्वर" "एन्सिबलसर्वर" "बिल्ड नाउ" इसके अलावा, अपने डॉकरहब खाते पर जाने के लिए कुछ समय निकालें और सत्यापित करें कि क्या अब कोई नई छवि दिखाई दे रही है। आपको नई जोड़ी गई छवि देखनी चाहिए. यह परिणाम पुष्टि करता है कि डॉकर कार्यों के साथ आपकी एंसिबल प्लेबुक को पाइपलाइन में सफलतापूर्वक एकीकृत किया गया था। [मॉड्यूल 7]: कुबेरनेट्स आइए अब K8s को EC2 इंस्टेंस पर कॉन्फ़िगर करें। आप एक नया EC2 इंस्टेंस बनाने जा रहे हैं और क्लस्टर के साथ आगे इंटरैक्ट करने के लिए उनके kubectl कमांड-लाइन टूल को इंस्टॉल करेंगे। Kubernetes चरण 1: AWS EC2 वर्चुअल सर्वर इंस्टेंस लॉन्च करें इस चरण को पूरा करने के लिए इस ट्यूटोरियल के " अनुभाग के निर्देशों का उपयोग करें। AWS EC2 वर्चुअल सर्वर इंस्टेंस लॉन्च करें" सुरक्षा समूह सेटअप जोड़ना न भूलें. यह और क्रमशः पोर्ट और पर काम करने की अनुमति देता है। सभी टूल्स एसएसएच को 8080 22 अपने EC2 वर्चुअल सर्वर इंस्टेंस को अलग करने के लिए नाम का उपयोग करें। "K8sServer" आप नए EC2 उदाहरण के लिए सुरक्षा समूह और का पुन: उपयोग कर सकते हैं। "K8sServer" "CI_CD_Pipeline" "CI_CD_Pipeline_Key_Pair" चरण 2: AWS EC2 वर्चुअल सर्वर इंस्टेंस से कनेक्ट करें "कनेक्ट" बटन पर क्लिक करें। अब आप EC2 वर्चुअल सर्वर इंस्टेंस ऑनलाइन टर्मिनल देख सकते हैं। चरण 3: "कुबेरनेट्ससर्वर" AWS EC2 वर्चुअल सर्वर इंस्टेंस का होस्टनाम बदलें जब आप EC2 वर्चुअल सर्वर इंस्टेंस पर KuberenetesServer को कॉन्फ़िगर करना चाहते हैं तो सबसे पहले आपको इसका होस्टनाम बदलना होगा। चलो यह करते हैं। होस्टनाम फ़ाइल खोलने के लिए इस आदेश को निष्पादित करें: sudo vi /etc/hostname आपको कुछ इस तरह देखना चाहिए. इस होस्टनाम को फिर इसे रीबूट करें। "कुबेरनेट्स-सर्वर" से बदलें और sudo init 6 आपका होस्टनाम बदल दिया गया है. चरण 4: AWS CLI संस्करण की जाँच करें संस्करण की जाँच करने के लिए इस कमांड का उपयोग करें। AWS aws --version इस तरह आप अपना वर्तमान aws-cli संस्करण देख सकते हैं। यदि आप संस्करण देख सकते हैं, तो आपको नवीनतम संस्करण डाउनलोड करना चाहिए। aws-cli/1.18 चरण 5: एडब्ल्यूएस सीएलआई अपडेट करें अब जैसा कि आपको पता चला है कि आपके EC2 इंस्टेंस पर एक पुराना aws-cli संस्करण है, आपको इसे अपडेट करने की आवश्यकता है। इसके लिए AWS → दस्तावेज़ीकरण → AWS कमांड लाइन इंटरफ़ेस → संस्करण 2 के लिए उपयोगकर्ता मार्गदर्शिका पर जाएँ। कॉपी-पेस्ट करें। कर्ल कमांड को सबसे पहले, awscli संस्करण 2 डाउनलोड करने के लिए इस कमांड को निष्पादित करें। curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip" डाउनलोडिंग प्रक्रिया शुरू होने तक प्रतीक्षा करें। आपको कुछ इस तरह देखना चाहिए. दूसरा, आपको awscli संस्करण 2 संग्रह को अनज़िप करने के लिए इस कमांड को निष्पादित करने की आवश्यकता है। unzip awscliv2.zip तीसरा, आपको awscli संस्करण 2 को स्थापित करने के लिए इस कमांड को निष्पादित करना चाहिए। sudo ./aws/install फिर, Kubernetes EC2 वर्चुअल सर्वर इंस्टेंस ऑनलाइन टर्मिनल को पुनः लोड करें। इसके बाद, AWS संस्करण की जाँच करने के लिए इस कमांड का उपयोग करें aws --version आप देख सकते हैं कि aws cli में aws-cli/2 है। चरण 6: कुबेक्टल स्थापित करें अंतर्निहित बुनियादी ढांचे की परवाह किए बिना, किसी भी Kubernetes क्लस्टर के साथ बातचीत करने के लिए एक मौलिक कमांड-लाइन उपकरण है। यह आपको कुबेरनेट्स क्लस्टर के भीतर संसाधनों को प्रबंधित करने, एप्लिकेशन तैनात करने, नेटवर्किंग कॉन्फ़िगर करने, लॉग तक पहुंचने और कई अन्य कार्य करने की अनुमति देता है। Kubectl अब आपको Kubernetes क्लस्टर के साथ आगे इंटरैक्ट करने के लिए kubectl कमांड-लाइन टूल इंस्टॉल करना होगा। इसके लिए आपको → → → → या → पर जाना होगा। AWS दस्तावेज़ीकरण Amazon EKS उपयोगकर्ता गाइड kubectl इंस्टॉल अपडेट करना Linux या बस लिंक पर क्लिक करें। https://docs.aws.amazon.com/eks/latest/userguide/install-kubectl.html सबसे पहले, kubectl डाउनलोड करने के लिए इस कमांड को निष्पादित करें। curl -O https://s3.us-west-2.amazonaws.com/amazon-eks/1.27.1/2023-04-19/bin/linux/amd64/kubectl डाउनलोडिंग प्रक्रिया की प्रतीक्षा करें। आपको कुछ ऐसा दिखेगा. Kubectl को अनुमति दें. chmod +x kubectl Kubectl को /usr/local/bin फ़ोल्डर में ले जाएँ। sudo mv kubectl /usr/local/bin Kubectl के संस्करण की जाँच करें। kubectl version --output=yaml चरण 7: eksctl स्थापित करें एक अन्य कमांड-लाइन टूल है जो विशेष रूप से अमेज़ॅन ईकेएस सेवा के लिए तैयार किया गया है। एक्ससीटीएल का उपयोग एडब्ल्यूएस ईकेएस क्लस्टर बनाने, नोड समूहों को प्रबंधित करने और ईकेएस के लिए विशिष्ट कार्यों को करने के लिए किया जा सकता है, जैसे कि एडब्ल्यूएस इंफ्रास्ट्रक्चर सेटअप और प्रबंधन के अधिकांश हिस्से को हटाकर आईएएम भूमिकाओं और अन्य एडब्ल्यूएस सेवाओं के साथ एकीकृत करना। एक्ससीटीएल Kubectl डाउनलोड करने के लिए कमांड निष्पादित करें। curl --silent --location "https://github.com/weaveworks/eksctl/releases/latest/download/eksctl_$(uname -s)_amd64.tar.gz" | tar xz -C /tmp eksctl को /usr/local/bin फ़ोल्डर में ले जाएँ। sudo mv /tmp/eksctl /usr/local/bin eksctl का संस्करण जांचें. eksctl version आपको संस्करण देखना चाहिए चरण 8: eksctl के लिए IAM भूमिका बनाएँ आपको एक IAM भूमिका बनानी होगी और इसे अपने EC2 इंस्टेंस से जोड़ना होगा। "KubernetesServer" ऐसा करने के लिए आपको खोज बॉक्स में EC2 ढूंढना होगा। / लिंक पर क्लिक करके EC2 वर्चुअल सर्वर चुनें। https://us-east-1.console.aws.amazon.com/ec2 → पर जाएँ। IAM डैशबोर्ड भूमिकाएँ भूमिकाएँ वेब पेज पर बटन पर क्लिक करें। IAM "भूमिका बनाएँ" फिर और बटन पर क्लिक करें। "AWS सेवा", "EC2" चुनें। "अगला" फिर, खोज बॉक्स में , , , ढूंढें और फिर बटन पर क्लिक करें। "AmazonEC2FullAccess" "AmazonEC2FullAccess" "IAMFullAccess" "AWSCloudFormationFullAccess" "अनुमतियां जोड़ें" और फिर बटन पर क्लिक करें। "अगला" फिर इनपुट में टाइप करें। "भूमिका नाम" "Eksctl_Role" और बटन पर क्लिक करें। "भूमिका बनाएं" भूमिका अंततः निर्मित होती है। चरण 9: IAM भूमिका को eksctl से जोड़ें AWS EC2 इंस्टेंस वेब पेज पर जाएँ। फिर → → "कुबेरबेट्ससर्वर" चुनें। "क्रियाएँ" "सुरक्षा" "IAM भूमिका संशोधित करें" पर क्लिक करें। चुनें और फिर बटन पर क्लिक करें। "Eksctl_Role" "अपडेट IAM रोल" अब आपकी IAM भूमिका आपके और eksctl टूल से जुड़ गई है। "EKS_Server" चरण 10: eksctl क्लस्टर बनाएं क्लस्टर एडब्ल्यूएस पर एक प्रबंधित कुबेरनेट्स वातावरण है, जो सेटअप, स्केलिंग और रखरखाव जैसे जटिल बुनियादी ढांचे के कार्यों को स्वचालित करता है। यह आवश्यक है क्योंकि यह कंटेनरीकृत अनुप्रयोगों को तैनात करने, प्रबंधित करने और स्केल करने, संचालन को सुव्यवस्थित करने और डेवलपर्स को अंतर्निहित बुनियादी ढांचे के प्रबंधन के बजाय कोडिंग पर ध्यान केंद्रित करने के लिए एक कुशल, सुरक्षित और एडब्ल्यूएस-अनुकूलित मंच प्रदान करता है। अमेज़ॅन ईकेएस (इलास्टिक कुबेरनेट्स सर्विस) अब, आपका ईकेएस क्लस्टर स्थापित करने का समय आ गया है। इसे प्राप्त करने के लिए, इन चरणों का पालन करें: अपनी विशिष्ट जानकारी के साथ निम्नलिखित आदेश को संशोधित करें। eksctl create cluster --name cluster-name \ --region region-name \ --node-type instance-type \ --nodes-min 2 \ --nodes-max 2 \ --zones <AZ-1>,<AZ-2> उदाहरण के लिए, मेरे मामले में, यह इस तरह दिखता है। eksctl create cluster --name zufarexplainedit \ --region eu-north-1 \ --node-type t3.micro संशोधित आदेश निष्पादित करें और धैर्यपूर्वक क्लस्टर निर्माण प्रक्रिया के पूरा होने की प्रतीक्षा करें। आप देखेंगे कि ईकेएस क्लस्टर स्थिति को एडब्ल्यूएस क्लाउडफॉर्मेशन वेब पेज पर के रूप में दर्शाया गया है। "बनाना" क्लस्टर निर्माण प्रक्रिया में आमतौर पर लगभग 20 मिनट लगते हैं। एक बार पूरा होने पर, टर्मिनल प्रक्रिया का परिणाम प्रदर्शित करेगा। इसके अलावा, आप AWS CloudFormation वेब पेज पर सफल निर्माण स्थिति को सत्यापित कर सकते हैं। EKS क्लस्टर चरण 11: Kubernetes परिनियोजन yaml फ़ाइल बनाएँ YAML प्रारूप में लिखी गई एक कॉन्फ़िगरेशन स्क्रिप्ट है जो परिभाषित करती है कि Kubernetes क्लस्टर के भीतर किसी विशिष्ट एप्लिकेशन या सेवा को कैसे प्रबंधित और बनाए रखा जाए। यह एप्लिकेशन चलाने वाले कंटेनरों की तैनाती, स्केलिंग, अपडेटिंग और निगरानी को व्यवस्थित करने के लिए निर्देशों को समाहित करता है। इस फ़ाइल में कंटेनर छवि, प्रतिकृतियों की वांछित संख्या, संसाधन सीमाएं, पर्यावरण चर, नेटवर्किंग सेटिंग्स और बहुत कुछ जैसे विवरण शामिल हैं। जब कुबेरनेट्स क्लस्टर पर लागू किया जाता है, तो परिनियोजन YAML फ़ाइल एप्लिकेशन की वांछित स्थिति सुनिश्चित करती है, उपलब्धता और विश्वसनीयता के वांछित स्तर को बनाए रखने के लिए कंटेनरों के निर्माण, स्केलिंग और पुनर्प्राप्ति को स्वचालित रूप से प्रबंधित करती है। Kubernetes परिनियोजन YAML फ़ाइल अब, जैसे ही Kubernetes क्लस्टर, eksctl, kubectl स्थापित और कॉन्फ़िगर किया गया है, आप Kubernetes परिनियोजन yaml फ़ाइल बना सकते हैं। आप निम्न आदेश निष्पादित करके ऐसा कर सकते हैं। touch hello-app-deployment.yaml फिर, निम्न आदेश निष्पादित करके इस फ़ाइल को संपादित करें। vi hello-app-deployment.yaml इस सामग्री को hello-app-deployment.yaml में जोड़ें। apiVersion: apps/v1 kind: Deployment metadata: name: zufarexplainedit-hello-app labels: app: hello-app spec: replicas: 2 selector: matchLabels: app: hello-app template: metadata: labels: app: hello-app spec: containers: - name: hello-app image: zufarexplainedit/hello imagePullPolicy: Always ports: - containerPort: 8080 strategy: type: RollingUpdate rollingUpdate: maxSurge: 1 maxUnavailable: 1 अब hello-app-deployment.yaml बन गया है और उपयोग के लिए तैयार है। चरण 12: Kubernetes Service yaml फ़ाइल बनाएँ YAML प्रारूप में लिखी गई एक कॉन्फ़िगरेशन स्क्रिप्ट है जो पॉड्स के एक सेट के लिए नेटवर्क एब्स्ट्रैक्शन को परिभाषित करती है, जिससे उन्हें Kubernetes क्लस्टर के भीतर लगातार एक्सेस करने की अनुमति मिलती है। यह फ़ाइल बताती है कि अन्य सेवाओं या बाहरी ग्राहकों द्वारा सेवा को कैसे खोजा, एक्सेस किया जाना चाहिए और लोड-संतुलित किया जाना चाहिए। इसमें सेवा प्रकार (क्लस्टरआईपी, नोडपोर्ट, लोडबैलेंसर), पोर्ट नंबर, पॉड्स की पहचान करने के लिए चयनकर्ता और बहुत कुछ जैसे विनिर्देश शामिल हैं। जब कुबेरनेट्स क्लस्टर पर लागू किया जाता है, तो सेवा YAML फ़ाइल एक वर्चुअल आईपी और पोर्ट बनाती है जो ट्रैफ़िक को उपयुक्त पॉड्स तक रूट करती है, अंतर्निहित पॉड परिवर्तनों को अमूर्त करती है और संचार के लिए एक स्थिर समापन बिंदु प्रदान करती है, जिससे निर्बाध कनेक्टिविटी और गतिशील स्केलिंग सक्षम होती है। Kubernetes Service YAML फ़ाइल जैसे ही Kubernetes क्लस्टर, eksctl, kubectl स्थापित और कॉन्फ़िगर किया जाता है, आप Kubernetes Service yaml फ़ाइल बना सकते हैं। ऐसा करने के लिए आपको निम्नलिखित कमांड निष्पादित करके एक Kubernetes Service yaml फ़ाइल बनानी होगी। touch hello-app-service.yaml फिर, निम्न आदेश निष्पादित करके इस फ़ाइल को संपादित करें। vi hello-app-service.yaml इस सामग्री को hello-app-deployment.yaml में जोड़ें। apiVersion: v1 kind: Service metadata: name: zufarexplainedit-hello-app-service labels: app: hello-app spec: selector: app: hello-app ports: - port: 8080 targetPort: 8080 type: LoadBalancer अब hello-app-service.yaml बन गया है और उपयोग के लिए तैयार है। चरण 13: कुबेक्टल का उपयोग करके कुबेरनेट्स क्लस्टर का परीक्षण करें आपके कुबेरनेट्स ईकेएस क्लस्टर के सफलतापूर्वक स्थापित और कॉन्फ़िगर होने और आपकी कुबेरनेट्स सेवा और परिनियोजन फ़ाइलें तैयार होने के साथ, कुबेक्टल कमांड का उपयोग करके चीजों को परीक्षण में डालने का समय आ गया है। परिनियोजन लागू करें. परिनियोजन कॉन्फ़िगरेशन लागू करने के लिए निम्न आदेश का उपयोग करें। kubectl apply -f hello-app-deployment.yaml यह आपके एप्लिकेशन की उपलब्धता और प्रबंधनीयता सुनिश्चित करते हुए, प्रतिकृतियों की निर्दिष्ट संख्या और एक रोलिंग अपडेट रणनीति के साथ एक तैनाती तैयार करेगा। 2. सेवा लागू करें. इसके बाद, सेवा कॉन्फ़िगरेशन लागू करें। kubectl apply -f hello-app-service.yaml यह आपके एप्लिकेशन को इंटरनेट पर उजागर करते हुए एक लोडबैलेंसर प्रकार की सेवा स्थापित करेगा। ध्यान दें कि लोडबैलेंसर को प्रावधानित करने और बाहरी आईपी पता प्राप्त करने में थोड़ा समय लग सकता है। लोडबैलेंसर स्थिति जांचें। अपनी सेवा का उपयोग करके उसकी स्थिति की निगरानी करें। kubectl get service zufarexplainedit-hello-app-service जब एक बाहरी आईपी असाइन किया जाता है, तो आप अपने एप्लिकेशन तक पहुंचने के लिए लगभग तैयार होते हैं। अपने एप्लिकेशन तक पहुंचें. वेब ब्राउज़र का उपयोग करते हुए, निर्दिष्ट बाहरी आईपी पता और उसके बाद :8080 दर्ज करें। थोड़ी देर के बाद, पेज लोड हो जाएगा और "हैलोवर्ल्ड" संदेश प्रदर्शित होगा। ध्यान रखें कि प्रारंभिक लोडिंग में कुछ सेकंड लग सकते हैं। Kubectl कमांड के साथ सफाई जब आपको अपने कुबेरनेट्स वातावरण में संसाधनों को व्यवस्थित करने की आवश्यकता होती है, तो आप तैनाती, पॉड्स और सेवाओं को प्रभावी ढंग से हटाने के लिए निम्नलिखित कुबेक्टल कमांड का उपयोग कर सकते हैं। । 1. सभी परिनियोजन हटाएँ सभी परिनियोजनों को हटाने के लिए, आप निम्न आदेश का उपयोग कर सकते हैं। kubectl delete deployments --all यह क्रिया सुनिश्चित करती है कि आपके क्लस्टर में कोई सक्रिय परिनियोजन उदाहरण नहीं बचा है। । 2. सभी पॉड्स हटाएं यदि आपको सभी पॉड्स को हटाने की आवश्यकता है, चाहे वे परिनियोजन द्वारा प्रबंधित हों या नहीं, तो आप निम्न कमांड का उपयोग कर सकते हैं। kubectl delete pods --all पॉड्स साफ़ करने से आपके क्लस्टर स्थिति को रीसेट करने या नई तैनाती के लिए तैयार होने में मदद मिल सकती है। । 3. सभी सेवाएँ हटाएँ आपके एप्लिकेशन को नेटवर्क पर उजागर करने वाली सेवाओं को साफ़ करने के लिए, आप निम्न कमांड का उपयोग कर सकते हैं। kubectl delete services --all सेवाओं को हटाने से डाउनटाइम शामिल हो सकता है, इसलिए आगे बढ़ने से पहले निहितार्थों पर विचार करें। Amazon EKS क्लस्टर को हटाना वर्कर नोड्स, नेटवर्किंग घटकों और अन्य संसाधनों सहित, के साथ बनाए गए निर्दिष्ट अमेज़ॅन ईकेएस क्लस्टर से जुड़े सभी संसाधनों को हटाने के लिए, आप निम्न कमांड का उपयोग कर सकते हैं। eksctl eksctl delete cluster --name {your cluster name} --region {your region name} मेरे लिए यह। eksctl delete cluster --name zufarexplainedit --region eu-north-1 सुनिश्चित करें कि आप क्लस्टर को रोकने के बारे में निश्चित हैं, क्योंकि यह क्रिया अपरिवर्तनीय है और इसके परिणामस्वरूप डेटा हानि होगी। चरण 14: "कुबेरनेट्ससर्वर" AWS EC2 वर्चुअल सर्वर इंस्टेंस में एक नया उपयोगकर्ता जोड़ें और कॉन्फ़िगर करें अब AWS EC2 वर्चुअल सर्वर इंस्टेंस में एक नया उपयोगकर्ता जोड़ें। "KubernetesServer" ansible-admin ऐसा करने के लिए इस कमांड का उपयोग करें. sudo useradd ansible-admin फिर, उपयोगकर्ता के लिए पासवर्ड सेट करें। ansible-admin sudo passwd ansible-admin साथ ही, आपको फ़ाइल को संपादित करके उपयोगकर्ता विशेषाधिकारों को कॉन्फ़िगर करने की आवश्यकता है। sudoers sudo visudo इस फ़ाइल में जोड़ें। sudoers "ansible-admin ALL=(ALL) ALL" साथ ही, आपको पासवर्ड प्रमाणीकरण सक्षम करने के लिए फ़ाइल को संपादित करना होगा। /etc/ssh/sshd_config sudo vi /etc/ssh/sshd_config फिर आपको ये परिवर्तन करने के लिए सेवा को पुनः लोड करना होगा। sudo service sshd reload इस आदेश को निष्पादित करने के परिणामस्वरूप, आप देखेंगे: अब आप आगे की सभी कमांड के लिए sudo जोड़ने से बचने के लिए इस कमांड का उपयोग कर सकते हैं। sudo su - ansible-admin चरण 15: AWS EC2 वर्चुअल सर्वर इंस्टेंस में कुंजी जेनरेट करें आप इस आलेख में आगे EC2 वर्चुअल सर्वर इंस्टेंस जैसे दूरस्थ सर्वर को प्रबंधित करने की योजना बना रहे हैं। इसीलिए आपको SSH कुंजियाँ सेट करने की आवश्यकता है। K8s ssh-keygen इस आदेश को निष्पादित करने के परिणामस्वरूप, आप देखेंगे: अब SSH कुंजियाँ जनरेट हो गई हैं और उपयोग के लिए तैयार हैं। चरण 16: Ansible के लिए पासवर्ड रहित SSH प्रमाणीकरण को लोकलहोस्ट पर कॉन्फ़िगर करें Ansible को दूरस्थ सर्वर पर कार्यों को स्वचालित करने के लिए डिज़ाइन किया गया है। पासवर्ड रहित SSH प्रमाणीकरण, Ansible को मैन्युअल पासवर्ड प्रविष्टि की आवश्यकता के बिना उन सर्वरों से कनेक्ट करने का अधिकार देता है। अपने कंप्यूटर से दूसरे कंप्यूटर (जैसे आईपी एड्रेस 172.31.34.41 पर एक) के साथ एक सुरक्षित कनेक्शन बनाने के लिए, ansible-admin उपयोगकर्ता की SSH कुंजी का उपयोग करके इस कमांड को निष्पादित करें। sudo ssh-copy-id -i /home/{your user name}/.ssh/id_rsa.pub {your user name}@{your host address} मेरे मामले में, यह इस तरह दिखता है. sudo ssh-copy-id -i /home/ansible-admin/.ssh/id_rsa.pub ansible-admin@172.31.34.41 अब आप देख सकते हैं। इसका मतलब है कि पासवर्ड रहित एसएसएच प्रमाणीकरण इंस्टॉलेशन सफलतापूर्वक पूरा हो गया था। "जोड़ी गई कुंजी(कुंजियों) की संख्या: 1" चरण 17: AnsibleServer EC2 उदाहरण में Ansible होस्ट कॉन्फ़िगर करें जब आप एक अन्सिबल प्लेबुक चलाते हैं, तो आप उन होस्टों को निर्दिष्ट करते हैं जिन पर इसे चलाना चाहिए। इस चरण में आपको KubernetesServer EC2 इंस्टेंस होस्ट निर्दिष्ट करने की आवश्यकता है। ऐसा करने के लिए आपको वही चरण दोहराने होंगे जो आपने " [मॉड्यूल 6]: एन्सिबल" में पारित किए थे। आइए निम्नलिखित कमांड निष्पादित करके KubernetesServer EC2 इंस्टेंस होस्ट का पता लगाएं। sudo ifconfig KubernetesServer EC2 इंस्टेंस होस्ट मिलने के बाद, आप इसे निम्न कमांड निष्पादित करके Ansible होस्ट फ़ाइल में जोड़ सकते हैं। sudo vi /etc/ansible/hosts आप संदर्भ के रूप में "[कुबेरनेट्स]" भी जोड़ सकते हैं चरण 18: कुबेरनेट्स कार्यों के लिए एक नई अन्सिबल प्लेबुक बनाएं अब जबकि Kubernetes पूरी तरह तैयार हो चुका है और उपयोग के लिए तैयार है, आप अपनी पाइपलाइन के लिए Kubernetes कार्यों के साथ एक नई Ansible प्लेबुक बना सकते हैं। यह प्लेबुक Ansible को आपके ऐप को Kubernetes क्लस्टर पर kubectl कमांड के साथ चलाने देगा। यहां बताया गया है कि आप यह कैसे कर सकते हैं: एक नई Ansible प्लेबुक फ़ाइल बनाकर प्रारंभ करें। बस इस आदेश का प्रयोग करें. touch kubernetes-hello-app.yml फिर, नव निर्मित फ़ाइल को संपादित करें। इस आदेश के साथ संपादन के लिए इसे खोलें। hello-app.yml vi kubernetes-hello-app.yml फ़ाइल के अंदर, निम्नलिखित टाइप करें: --- - hosts: kubernetes tasks: - name: deploy regapp on kubernetes command: kubectl apply -f hello-app-deployment.yaml - name: create service for regapp command: kubectl apply -f hello-app-service.yaml - name: update deployment with new pods if image updated in docker hub command: kubectl rollout restart deployment.apps/zufarexplainedit-hello-app Kubernetes कार्यों के लिए Ansible प्लेबुक उपयोग के लिए तैयार है। चरण 19: जेनकिंस के साथ कुबेरनेट्स कार्यों के लिए एक नई एन्सिबल प्लेबुक को एकीकृत करें अब जब Kubernetes कार्यों के लिए Kubernetes, Ansible, और Ansible प्लेबुक पूरी तरह से सेट हो गए हैं और जाने के लिए तैयार हैं, तो आप इसे जेनकिंस के साथ एकीकृत कर सकते हैं। जेनकिंस सर्वर → जेनकिंस डैशबोर्ड → नए आइटम पर जाएं। "सीडी-जॉब" नाम से नया जेनकींस फ्रीस्टाइल प्रोजेक्ट बनाएं। "ओके" बटन पर क्लिक करें। "पोस्ट-बिल्ड एक्शन" अनुभाग पर जाएँ। "पोस्ट-बिल्ड एक्शन जोड़ें" बटन पर क्लिक करें। "SSH पर निर्मित कलाकृतियाँ भेजें" विकल्प चुनें। SSH सर्वर के रूप में "AnsibleServer" चुनें। इस कमांड को "exec कमांड" इनपुट में जोड़ें। sudo -u ansible-admin ansible-playbook /opt/docker/kubernetes-hello-app.yml "लागू करें" और "सहेजें" बटन पर क्लिक करें। जेनकिंस डैशबोर्ड → “CI_CD_Pipeline” → कॉन्फ़िगर करें → “पोस्ट-बिल्ड एक्शन” अनुभाग पर जाएँ। "पोस्ट-बिल्ड एक्शन जोड़ें" बटन पर क्लिक करें। "अन्य प्रोजेक्ट बनाएँ" विकल्प चुनें। "अन्य प्रोजेक्ट बनाएँ" अनुभाग पर जाएँ। "केवल तभी ट्रिगर करें जब निर्माण स्थिर हो" विकल्प चुनें। "प्रोजेक्ट टू बिल्ड" इनपुट में "सीडी-जॉब" जोड़ें। "लागू करें" और "सहेजें" बटन पर क्लिक करें। अब आप मान सकते हैं कि पाइपलाइन पूरी तरह से तैयार है और उपयोग के लिए तैयार है। चरण 20: अंतिम पाइपलाइन संस्करण का परीक्षण अब अंतिम पाइपलाइन संस्करण का परीक्षण करने का समय आ गया है। जेनकींस → जेनकींस डैशबोर्ड → "CI_CD_Pipeline" पर नेविगेट करें। "बिल्ड नाउ" बटन पर क्लिक करें। परिणाम देखने के लिए, बिल्ड कंसोल लॉग की समीक्षा करें। आप देखेंगे कि बिल्ड कंसोल लॉग में "सीडी-जॉब" ट्रिगर किया गया था, और अंतिम स्थिति को सफलता के रूप में चिह्नित किया गया है। 4 इसके अलावा, आप नई डॉकर छवि को जोड़ने की पुष्टि करने के लिए डॉकरहब पर जा सकते हैं। और अंत में, आप वेब ब्राउज़र का उपयोग करके अपने एप्लिकेशन तक पहुंच सकते हैं। निर्दिष्ट बाहरी आईपी पता और उसके बाद ":8080" दर्ज करें। थोड़ी देर के बाद, पेज लोड हो जाएगा, जिसमें "हैलोवर्ल्ड" संदेश दिखाई देगा। निष्कर्ष इस आधुनिक सीआई/सीडी पाइपलाइन की स्थापना के लिए बधाई! आपने बहुत बढ़िया काम किया है और आप असली हीरो हैं! आपके सभी प्रयासों के लिए धन्यवाद! लेखक के बारे में एक अनुभवी वरिष्ठ सॉफ़्टवेयर इंजीनियर हैं जिन्हें आधुनिक सॉफ़्टवेयर सिस्टम डिज़ाइन करने का शौक है। ज़ुफ़र सनगाटोव सिटी (लंदन), एमटीएस (मॉस्को) और अन्य कंपनियों के लिए जावा, कोटलिन, एडब्ल्यूएस, डॉकर और कुबेरनेट्स का उपयोग करके उच्च-प्रदर्शन वितरित सिस्टम विकसित किया गया ( )। अधिक जानकारी के लिए आप ज़ुफ़र के लिंक्डइन प्रोफ़ाइल का अनुसरण कर सकते हैं शुरू से ही एक ओपन-सोर्स ऑनलाइन मार्केटप्लेस, आइस लाटे की स्थापना की (आप ज़ुफ़र की टीम में शामिल हो सकते हैं और GitHub पर उनके प्रोजेक्ट में योगदान कर सकते हैं: )। https://github.com/Sunagatov/Online-Store अपने ज्ञान और अनुभव को दूसरों के साथ साझा करने के लिए ZufarExplainedIT समुदाय की स्थापना की (आप Zufar के IT टेलीग्राम समुदाय का अनुसरण कर सकते हैं: )। https://t.me/zufarexplained 3000 मिनट से अधिक समय तक मार्गदर्शन किया और एडीपीलिस्ट पर 60 सत्र आयोजित किए, महत्वाकांक्षी प्रतिभाओं का पोषण किया ( )। आप एडीपीलिस्ट पर ज़ुफ़र द्वारा मार्गदर्शन प्राप्त कर सकते हैं सम्मेलनों और आईटी यूट्यूब चैनलों पर एक वक्ता के रूप में दर्शकों को शामिल किया, अमूल्य अंतर्दृष्टि साझा की (उनके यूट्यूब वीडियो के उदाहरणों में शामिल हैं: , )। "Тестовое собеседование Java разработчика #27 - Зуфар Сунагато в" "आकांक्षी वक्ता लंचटाइम लाइटनिंग टॉक्स 28 मई" 7000 से अधिक बार देखे गए अत्यधिक लोकप्रिय आईटी लेख लिखे (उनके लेखों के उदाहरण हैं: , ). "माइक्रोसर्विस आर्किटेक्चर पैटर्न भाग 1: अपघटन पैटर्न" "Что значит «вариативный»? Объясняем простыми словами”