paint-brush
AWS, K8S, Docker, Ansible, Git, Github, Apache Maven और जेनकिंस के साथ CI/CD पाइपलाइन का निर्माणद्वारा@zufarexplained
38,449 रीडिंग
38,449 रीडिंग

AWS, K8S, Docker, Ansible, Git, Github, Apache Maven और जेनकिंस के साथ CI/CD पाइपलाइन का निर्माण

द्वारा Zufar Sunagatov46m2023/09/07
Read on Terminal Reader

बहुत लंबा; पढ़ने के लिए

ज़ुफ़र सनगाटोव के साथ AWS, K8S, Docker, Ansible, Apache Maven, Git, Github और जेनकिंस के साथ एक उन्नत CI/CD पाइपलाइन बनाना सीखें। इस ट्यूटोरियल के अंत तक, आपको उपयोग के लिए तैयार आधुनिक सीआई/सीडी पाइपलाइन मिलेगी जो जीथब पर आपके किसी भी प्रोजेक्ट पर लागू होती है।
featured image - AWS, K8S, Docker, Ansible, Git, Github, Apache Maven और जेनकिंस के साथ CI/CD पाइपलाइन का निर्माण
Zufar Sunagatov HackerNoon profile picture
0-item
1-item




अपने पिछले लेख में, मैंने माइक्रोसर्विसेज की आकर्षक दुनिया - माइक्रोसर्विस आर्किटेक्चर पैटर्न भाग 1: डीकंपोजिशन पैटर्न के बारे में विस्तार से बताया। यह माइक्रोसर्विसेज और उनके पैटर्न पर मेरी व्यापक लेख श्रृंखला की शुरुआत थी।


जबकि तार्किक कदम इस श्रृंखला के भाग 2 को जारी रखना होगा, मैंने फैसला किया है कि अगली चीज जो मैं तलाशना और आपको बताना चाहूंगा वह इन माइक्रोसर्विसेज को अंतिम उपयोगकर्ता तक निर्बाध रूप से पहुंचाने की महत्वपूर्ण प्रक्रिया है।


सामग्री अवलोकन

  • प्रेरणा
  • [मॉड्यूल 1]: AWS EC2 वर्चुअल सर्वर
  • [मॉड्यूल 2]: जेनकींस सर्वर
  • [मॉड्यूल 3]: गिट और गिथूब
  • [मॉड्यूल 4]: अपाचे मावेन
  • [मॉड्यूल 5]: डॉकर
  • [मॉड्यूल 6]: उत्तरयोग्य
  • [मॉड्यूल 7]: कुबेरनेट्स
  • निष्कर्ष
  • लेखक के बारे में



प्रेरणा

सीआई/सीडी ग्राहकों तक ऐप पहुंचाने की एक तकनीक है, जिसे ऐप विकास के विभिन्न चरणों में स्वचालन जोड़कर हासिल किया जाता है। मेरा मानना है कि सीआई/सीडी (कंटीन्यूअस इंटीग्रेशन एंड कंटीन्यूअस डिप्लॉयमेंट) को समझने से डेवलपर्स को इस बात की बेहतर समझ हासिल करने में मदद मिल सकती है कि प्रोजेक्ट रिपॉजिटरी की सीमाओं से परे बैकएंड प्रोजेक्ट कलाकृतियां कैसे मौजूद हैं। यह समझ किसी डेवलपर के परिप्रेक्ष्य में मौलिक बदलाव भी ला सकती है। अपने काम को केवल कोड की पंक्तियों के रूप में देखने के बजाय, वे अपने प्रोजेक्ट के व्यापक संदर्भ को एक मूल्यवान उत्पाद के रूप में अपनाना शुरू कर सकते हैं।


इस लेख में, हमारा लक्ष्य व्यावहारिक अनुप्रयोग के माध्यम से सीआई/सीडी प्रक्रिया के रहस्य को उजागर करना है। हम आपको चरण-दर-चरण ट्यूटोरियल के माध्यम से ले जाएंगे, इसे मॉड्यूल द्वारा मॉड्यूल में विभाजित करेंगे, जहां आप मैन्युअल रूप से सीआई/सीडी पाइपलाइन का निर्माण करेंगे। ऐसा करने के लिए, हम AWS, Docker, Kubernetes, Ansible, Git, Apache Maven और Zenkins जैसे समकालीन DevOps टूल की शक्ति का उपयोग करेंगे। तो चलिए शुरू करते हैं यह यात्रा!


[मॉड्यूल 1]: AWS EC2 वर्चुअल सर्वर

यह मॉड्यूल AWS EC2 वर्चुअल सर्वर इंस्टेंस के निर्माण के लिए समर्पित है। इस आलेख के भाग के रूप में, आप जेनकिंस, एन्सिबल और कुबेरनेट्स के लिए तीन EC2 इंस्टेंसेस स्थापित करेंगे। अभी के लिए, आप अगले मॉड्यूल के साथ आगे बढ़ सकते हैं और इस मॉड्यूल को "[मॉड्यूल 2]: जेनकिंस", "[मॉड्यूल 6]: एन्सिबल" और "[मॉड्यूल 7]: कुबेरनेट्स" अनुभागों में फिर से देख सकते हैं।


चरण 1: एक AWS खाता बनाएँ

https://aws.amazon.com पर जाएं।

AWS खाता बनाएं बटन पर क्लिक करें।


"AWS खाता बनाएं" बटन के सूचक के साथ AWS मुख्य वेब पेज का स्क्रीनशॉट


खाता बनाएं वेब पेज पर दिए गए निर्देशों का पालन करें.


चरण 2: अपने AWS खाते में साइन इन करें

https://console.aws.amazon.com/console/home पर जाएं। साइन इन बटन पर क्लिक करें.

"साइन इन" बटन के सूचक के साथ AWS मुख्य वेब पेज का स्क्रीनशॉट


इस वेब पेज पर सभी आवश्यक क्रेडेंशियल दर्ज करें।


चरण 3: EC2 वर्चुअल सर्वर ढूंढें

खोज बॉक्स में EC2 ढूंढें.

खोज बॉक्स के सूचक के साथ AWS वेब पेज का स्क्रीनशॉट


EC2 सेवा पर क्लिक करके EC2 वर्चुअल सर्वर चुनें।

"EC2" AWS सेवा के सूचक के साथ AWS वेब पेज का स्क्रीनशॉट


बटन लॉन्च इंस्टेंस पर क्लिक करें।

"लॉन्च इंस्टेंस" बटन के सूचक के साथ AWS वेब पेज का स्क्रीनशॉट


चरण 4: "नाम और टैग" अनुभाग कॉन्फ़िगर करें

"नाम और टैग" अनुभाग पर जाएँ।

"नाम और टैग" अनुभाग के सूचक के साथ AWS वेब पेज का स्क्रीनशॉट


"नाम" अनुभाग में नए AWS EC2 वर्चुअल सर्वर इंस्टेंस के लिए एक नाम प्रदान करें।

"नाम और टैग" अनुभाग में "नाम" इनपुट बॉक्स के संकेतक के साथ AWS वेब पेज का स्क्रीनशॉट


आप ''अतिरिक्त टैग जोड़ें'' पर क्लिक करके अपने वर्चुअल सर्वर के लिए अतिरिक्त टैग भी जोड़ सकते हैं।


चरण 5: "एप्लिकेशन और ओएस छवियाँ (अमेज़ॅन मशीन छवि)" अनुभाग कॉन्फ़िगर करें


"एप्लिकेशन और ओएस इमेज (अमेज़ॅन मशीन इमेज)" अनुभाग पर जाएं।

"एप्लिकेशन और ओएस इमेज (अमेज़ॅन मशीन इमेज)" अनुभाग के संकेतक के साथ एडब्ल्यूएस वेब पेज का स्क्रीनशॉट


वर्चुअल सर्वर के साथ मुफ़्त में खेलने के लिए:

  1. अपने वर्चुअल सर्वर के लिए ऑपरेटिंग सिस्टम चुनें - अमेज़ॅन लिनक्स
  2. अमेज़ॅन मशीन इमेज (एएमआई) अनुभाग में, फ्री टियर पात्र टैग वाली एक मशीन का चयन करें।



"एप्लिकेशन और ओएस इमेज (अमेज़ॅन मशीन इमेज)" अनुभाग में "ओएस" और "मशीन प्रकार" बटन के संकेतक के साथ एडब्ल्यूएस वेब पेज का स्क्रीनशॉट


चरण 6: "इंस्टेंस प्रकार" अनुभाग कॉन्फ़िगर करें

''इंस्टेंस प्रकार'' अनुभाग पर जाएँ।

"इंस्टेंस प्रकार" अनुभाग के सूचक के साथ AWS वेब पेज का स्क्रीनशॉट


वर्चुअल सर्वर के साथ मुफ़्त में खेलने के लिए:

इंस्टेंस प्रकार अनुभाग में फ्री टियर पात्र टैग के साथ एक प्रकार का चयन करें।

मेरे लिए यह t2.micro (परिवार: t2 1cCPU 1 GiB मेमोरी वर्तमान पीढ़ी: सत्य) है।



"इंस्टेंस प्रकार" अनुभाग में "इंस्टेंस प्रकार" ड्रॉपडाउन के सूचक के साथ AWS वेब पेज का स्क्रीनशॉट


चरण 7: "भंडारण कॉन्फ़िगर करें" अनुभाग कॉन्फ़िगर करें

''भंडारण कॉन्फ़िगर करें'' अनुभाग पर जाएँ।

"कॉन्फ़िगर स्टोरेज" अनुभाग के सूचक के साथ AWS वेब पेज का स्क्रीनशॉट


वर्चुअल सर्वर के साथ मुफ़्त में खेलने के लिए:

डिफ़ॉल्ट सेटिंग्स न बदलें. फ्री टियर पात्र ग्राहक 30 जीबी ईबीएस सामान्य प्रयोजन (एसएसडी) या मैग्नेटिक स्टोरेज प्राप्त कर सकते हैं।



"कॉन्फ़िगर स्टोरेज" अनुभाग में स्टोरेज के संभावित कॉन्फ़िगरेशन के संकेतक के साथ AWS वेब पेज का स्क्रीनशॉट


चरण 8: "नेटवर्क सेटिंग्स" अनुभाग कॉन्फ़िगर करें

"नेटवर्क सेटिंग" अनुभाग पर जाएँ।

"नेटवर्क सेटिंग्स" अनुभाग के सूचक के साथ AWS वेब पेज का स्क्रीनशॉट


आपको अपने वर्चुअल सर्वर की सुरक्षा स्थापित करने की आवश्यकता है। यह करने के लिए,

  1. "सुरक्षा समूह बनाएं" बटन पर क्लिक करें।
  2. "सुरक्षा समूह का नाम" अनुभाग में अपने नए सुरक्षा समूह का नाम जोड़ें।
  3. "विवरण" अनुभाग में अपने नए सुरक्षा समूह का विवरण जोड़ें।

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



"नेटवर्क सेटिंग्स" अनुभाग में "सुरक्षा समूह" के सूचक के साथ AWS वेब पेज का स्क्रीनशॉट


चरण 9: "कुंजी जोड़ी (लॉगिन)" अनुभाग कॉन्फ़िगर करें

''कुंजी जोड़ी (लॉगिन)'' अनुभाग पर जाएँ।

"केट जोड़ी (लॉगिन)" अनुभाग के सूचक के साथ AWS वेब पेज का स्क्रीनशॉट


यदि आपने इसे अभी तक नहीं बनाया है तो एक नई कुंजी-जोड़ी बनाएं।

"केट जोड़ी (लॉगिन)" अनुभाग में "कुंजी जोड़ी नाम", "कुंजी जोड़ी प्रकार", "निजी कुंजी फ़ाइल प्रारूप" के सूचक के साथ AWS वेब पेज का स्क्रीनशॉट


यदि आपने अभी तक "कुंजी-जोड़ी" नहीं बनाई है:

  1. "नई कुंजी जोड़ी बनाएं" बटन पर क्लिक करें।
  2. अपनी नई कुंजी-जोड़ी को "कुंजी जोड़ी का नाम" अनुभाग में एक नाम दें।
  3. कुंजी-जोड़ी प्रकार RSA या ED25519 चुनें। मैं आरएसए प्रकार चुनता हूं।
  4. निजी कुंजी फ़ाइल स्वरूप का चयन करें. .pem और .ppk का विकल्प। मैं .pem प्रारूप चुनता हूं।
  5. "कुंजी जोड़ी बनाएं" बटन पर क्लिक करें।
  6. आपको एक पॉप-अप विंडो मिलेगी जो आपको निजी कुंजी फ़ाइल डाउनलोड करने के लिए प्रेरित करेगी। सहमत हों और फ़ाइल को अपने कंप्यूटर पर डाउनलोड करें।

चरण 10: EC2 वर्चुअल सर्वर इंस्टेंस लॉन्च करें


"लॉन्च इंस्टेंस" बटन पर क्लिक करके EC2 वर्चुअल सर्वर इंस्टेंस लॉन्च करें।

"लॉन्च इंस्टेंस" बटन के सूचक के साथ AWS वेब पेज का स्क्रीनशॉट


EC2 वर्चुअल सर्वर इंस्टेंस निर्माण प्रक्रिया पूरी होने के बाद, आप निम्नलिखित देखेंगे।


AWS वेब पेज का स्क्रीनशॉट 'सफलता' अधिसूचना प्रदर्शित करता है, जो EC2 वर्चुअल सर्वर इंस्टेंस निर्माण प्रक्रिया के सफल समापन का संकेत देता है


फिर आपको " सभी उदाहरण देखें" बटन पर क्लिक करके "उदाहरण" अनुभाग पर जाना चाहिए।


EC2 इंस्टेंस चलाने के सूचक के साथ AWS वेब पेज का स्क्रीनशॉट

अब आप देख सकते हैं कि आपका AWS EC2 वर्चुअल सर्वर इंस्टेंस चल रहा है।



[मॉड्यूल 2]: जेनकींस सर्वर

अब, आइए EC2 वर्चुअल सर्वर इंस्टेंस पर जेनकिंससर्वर को कॉन्फ़िगर करें।

चरण 1: एक AWS EC2 वर्चुअल सर्वर इंस्टेंस बनाएं

जेनकींस चलाने के लिए आपको एक वर्चुअल सर्वर की आवश्यकता है।

इस चरण को पूरा करने के लिए इस ट्यूटोरियल के [मॉड्यूल 1]: एडब्ल्यूएस ईसी2 वर्चुअल सर्वर अनुभाग के निर्देशों का पालन करें और जेनकिंससर्वर नाम से एक ईसी2 वर्चुअल सर्वर इंस्टेंस बनाएं।

सुरक्षा समूह सेटअप जोड़ना न भूलें. यह जेनकींस और एसएसएच को क्रमशः पोर्ट 8080 और 22 पर काम करने की अनुमति देता है।


अपने EC2 वर्चुअल सर्वर इंस्टेंस को अलग करने के लिए "JenkinsServer" नाम का उपयोग करें।

नए "जेनकिंससर्वर" AWS EC2 उदाहरण के लिए "CI_CD_Pipeline" सुरक्षा समूह और "CI_CD_Pipeline_Key_Pair" बनाएं। आप लेख में आगे उनका पुन: उपयोग कर सकते हैं।


चरण 2: AWS EC2 वर्चुअल सर्वर इंस्टेंस से कनेक्ट करें

AWS कंसोल होम पेजEC2 मैनेजमेंट कंसोल डैशबोर्डइंस्टेंसेस पर जाएँ।

फिर आपको जेनकिंस सर्वर चुनना चाहिए और फिर "कनेक्ट" बटन पर क्लिक करना चाहिए।

"कनेक्ट" बटन के सूचक के साथ AWS "इंस्टेंस" वेब पेज का स्क्रीनशॉट


फिर आपको यह वेब पेज दिखाई देगा। आपको फिर से "कनेक्ट" बटन पर क्लिक करना चाहिए।

"कनेक्ट" बटन के सूचक के साथ AWS "कनेक्ट टू इंस्टेंस" वेब पेज का स्क्रीनशॉट


अब आप EC2 वर्चुअल सर्वर इंस्टेंस ऑनलाइन टर्मिनल देख सकते हैं।

AWS EC2 वर्चुअल सर्वर इंस्टेंस ऑनलाइन टर्मिनल का स्क्रीनशॉट


चरण 3: जेनकिंस रिपॉजिटरी डाउनलोड करें

अब आपको अपने EC2 वर्चुअल सर्वर इंस्टेंस पर जेनकींस डाउनलोड करना होगा।

इन निर्देशों का पालन करें:


  1. जेनकींस डाउनलोड वेबपेज पर जाएं।

  2. आप स्थिर (एलटीएस) और नियमित रिलीज़ (साप्ताहिक) विकल्प देख सकते हैं। Red Hat/Fedora/Alma/Rocky/CentOS LTS विकल्प चुनें।


आपको यह वेब पेज दिखाई देगा.

जेनकींस डाउनलोड वेब पेज का स्क्रीनशॉट


  1. "sudo get.." कमांड को कॉपी करें और इंटरनेट पर जेनकिंस रिपॉजिटरी से जेनकिंस फ़ाइलों को डाउनलोड करने के लिए इसे निष्पादित करें और उन्हें अपने EC2 वर्चुअल सर्वर इंस्टेंस पर निर्दिष्ट स्थान पर सहेजें।
 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


आपको कुछ ऐसा ही दिखेगा.

स्थापित JDK 11 के साथ AWS EC2 वर्चुअल सर्वर इंस्टेंस ऑनलाइन टर्मिनल का स्क्रीनशॉट


चरण 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


आपको आउटपुट वैसा ही दिखेगा जैसा नीचे स्क्रीनशॉट में है:

स्थापित जेनकींस के साथ AWS EC2 वर्चुअल सर्वर इंस्टेंस ऑनलाइन टर्मिनल का स्क्रीनशॉट


जेनकींस को अब सक्रिय होना चाहिए।

चरण 9: जेनकींस तक पहुंचें

जेनकिंस एप्लिकेशन तक पहुंचने के लिए, कोई भी वेब ब्राउज़र खोलें और अपने EC2 इंस्टेंस का सार्वजनिक आईपी पता या डोमेन नाम और उसके बाद पोर्ट 8080 दर्ज करें।


 http://<your-ec2-ip>:8080


पहली बार जब आप जेनकींस एक्सेस करेंगे, तो इसे ऑटोजेनरेटेड पासवर्ड से लॉक कर दिया जाएगा।

प्रशासक पासवर्ड के सूचक के साथ AWS EC2 वर्चुअल सर्वर पर स्थापित जेनकींस का स्क्रीनशॉट


आपको निम्नलिखित कमांड का उपयोग करके यह पासवर्ड प्रदर्शित करना होगा।

 sudo cat /var/lib/jenkins/secrets/initialAdminPassword


इस पासवर्ड को कॉपी करें, अपने ब्राउज़र पर वापस लौटें, इसे एडमिनिस्ट्रेटर पासवर्ड फ़ील्ड में पेस्ट करें और "जारी रखें" पर क्लिक करें।


फिर आप इस वेब पेज को देख पाएंगे।


"कस्टमाइज़ जेनकींस" वेब पेज के पॉइंटर के साथ AWS EC2 वर्चुअल सर्वर पर स्थापित जेनकींस का स्क्रीनशॉट


अब, आप अपने जेनकींस सर्वर का उपयोग कर सकते हैं।


चरण 10: नई जेनकींस पाइपलाइन बनाएं

अब, चूंकि जेनकींस ठीक काम कर रहा है, आप जेनकींस पाइपलाइन बनाना शुरू कर सकते हैं। जेनकींस पाइपलाइन बनाने के लिए आपको एक नया "फ्रीस्टाइल प्रोजेक्ट" बनाना होगा। एक नया "फ्रीस्टाइल प्रोजेक्ट" बनाने के लिए आपको जेनकिंस डैशबोर्ड पर जाना होगा और "नया आइटम" बटन पर क्लिक करना होगा।


"नया आइटम" बटन के सूचक के साथ जेनकींस डैशबोर्ड वेब पेज का स्क्रीनशॉट


जीथब "फ्रीस्टाइल प्रोजेक्ट" का नाम दर्ज करें ("पाइपलाइन" नाम आगे उपयोग किया जाएगा) और फिर "ओके" बटन पर क्लिक करें।


"आइटम नाम" आइटम बॉक्स के सूचक के साथ जेनकींस न्यू आइटम वेब पेज का स्क्रीनशॉट


फिर पाइपलाइन का विवरण प्रदान करें।

"विवरण" इनपुट बॉक्स के सूचक के साथ जेनकींस जॉब कॉन्फ़िगरेशन वेब पेज का स्क्रीनशॉट


फिर "लागू करें" और "सहेजें" बटन पर क्लिक करें। उसके बाद, इसका मतलब है कि आपने पाइपलाइन का मूल आधार तैयार कर लिया है जो इस ट्यूटोरियल में बनने जा रहा है।



[मॉड्यूल 3]: गिट और गिथूब

अब चूंकि जेनकींस AWS EC2 वर्चुअल सर्वर इंस्टेंस पर चल रहा है, आप पाइपलाइन के साथ Git को कॉन्फ़िगर कर सकते हैं।

Git एक स्वतंत्र और खुला स्रोत वितरित संस्करण नियंत्रण प्रणाली (VCS) है जिसे सॉफ्टवेयर टीमों को एक विशेष प्रकार के डेटाबेस में कोड में हर संशोधन पर नज़र रखने में मदद करने के लिए डिज़ाइन किया गया है। यदि कोई गलती हो जाती है, तो डेवलपर्स घड़ी को पीछे कर सकते हैं और टीम के सभी सदस्यों के लिए व्यवधान को कम करते हुए गलती को ठीक करने में मदद के लिए कोड के पुराने संस्करणों की तुलना कर सकते हैं। वीसीएस विशेष रूप से उपयोगी है DevOps टीमें क्योंकि वे उन्हें विकास के समय को कम करने और सफल तैनाती बढ़ाने में मदद करती हैं [1]।

सबसे लोकप्रिय संस्करण नियंत्रण प्रणाली के रूप में 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 वर्चुअल सर्वर इंस्टेंस पर खींच लिया गया था।


Github प्रोजेक्ट का स्क्रीनशॉट 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


JAVA_HOME और M2_HOME वेरिएबल जोड़ें।


JAVA_HOME के लिए JDK11 को पथ और M2_HOME वेरिएबल के लिए मावेन निर्देशिका को पथ निर्दिष्ट करें।


JDK पथ खोजने के लिए, इस कमांड का उपयोग करें।

 sudo find / -name java 



.bash_profile फ़ाइल के साथ AWS EC2 वर्चुअल सर्वर इंस्टेंस टर्मिनल वेब पेज का स्क्रीनशॉट


वीआईएम का उपयोग कैसे करें

  • फ़ाइल को संपादित करने के लिए डेटा डालने के लिए कीबोर्ड बटन "I" दबाएँ।
  • फ़ाइल को सहेजने के लिए कीबोर्ड बटन " esc " दबाएँ और ":w" दर्ज करें।
  • फ़ाइल से बाहर निकलने के लिए कीबोर्ड बटन "esc" दबाएँ और ":q" दर्ज करें।

परिवर्तनों को सुरक्षित करें।


फिर, सिस्टम वेरिएबल्स को रीफ्रेश करने के लिए इस कमांड को निष्पादित करें।

 source .bash_profile


$PATH को सत्यापित करने के लिए, इस कमांड का उपयोग करें।

 echo $PATH


अपाचे मावेन को सत्यापित करने के लिए, इस कमांड का उपयोग करें।

 mvn -v


यदि आपने सब कुछ सही ढंग से किया है, तो आप अपाचे मावेन का संस्करण देख पाएंगे।

Apache Maven के संस्करण के साथ AWS EC2 वर्चुअल सर्वर इंस्टेंस टर्मिनल वेब पेज का स्क्रीनशॉट


चरण 4: अपाचे मावेन जेनकींस प्लगइन स्थापित करें

चूँकि Apache Maven का उपयोग EC2 उदाहरण पर किया जा सकता है, आप इसे पाइपलाइन के साथ एकीकृत करने के लिए Apache Maven प्लगइन स्थापित कर सकते हैं।


इसे प्राप्त करने के लिए, इन चरणों का पालन करें:

  1. "डैशबोर्ड" → "जेनकींस प्रबंधित करें" → "प्लगइन प्रबंधित करें" → "उपलब्ध" पर नेविगेट करें।
  2. खोज बॉक्स में, "मावेन" दर्ज करें।
  3. "मावेन इंटीग्रेशन" प्लगइन चुनें।


मेवेन प्लगइन के पॉइंटर के साथ AWS EC2 वर्चुअल सर्वर पर स्थापित जेनकींस का स्क्रीनशॉट


डाउनलोडिंग प्रक्रिया समाप्त होने तक प्रतीक्षा करें।


और फिर "शीर्ष पृष्ठ पर वापस जाएं" बटन पर क्लिक करें।

मेवेन प्लगइन डाउनलोडिंग प्रक्रिया के पॉइंटर के साथ AWS EC2 वर्चुअल सर्वर पर स्थापित जेनकींस का स्क्रीनशॉट


चरण 5: अपाचे मावेन जेनकींस प्लगइन कॉन्फ़िगर करें

अपाचे मावेन जेनकींस प्लगइन की सफल स्थापना के साथ, अब आप इस प्लगइन का उपयोग उस पाइपलाइन के भीतर करने में सक्षम हैं जिसे आपने मॉड्यूल 2 और 3 में बनाया और अपडेट किया था।


ऐसा करने के लिए, इन चरणों का पालन करें:

  1. "डैशबोर्ड" → "जेनकींस प्रबंधित करें" → "ग्लोबल टूल कॉनफिगरेशन" → "जेडीके" पर जाएं
  2. "जेडीके जोड़ें" बटन पर क्लिक करें।
  3. "स्वचालित रूप से इंस्टॉल करें" को अनचेक करें।



JDK कॉन्फ़िगरेशन के पॉइंटर के साथ AWS EC2 वर्चुअल सर्वर पर स्थापित जेनकींस का स्क्रीनशॉट



फिर "मावेन" अनुभाग पर जाएँ। "मावेन जोड़ें" बटन पर क्लिक करें। "स्वचालित रूप से इंस्टॉल करें" को अनचेक करें।

फिर नाम और MAVEN_HOME पथ जोड़ें।



Apache Maven कॉन्फ़िगरेशन के पॉइंटर के साथ AWS EC2 वर्चुअल सर्वर पर स्थापित जेनकींस का स्क्रीनशॉट



"लागू करें" और "सहेजें" बटन पर क्लिक करें।

यहां, आपने अपाचे मावेन जेनकिंस प्लगइन को कॉन्फ़िगर करना समाप्त कर लिया है।


चरण 6: अपाचे मावेन को पाइपलाइन में एकीकृत करें

अब जैसे ही Apache Maven GitHub प्लगइन स्थापित और कॉन्फ़िगर किया गया है, अब आप अपनी पाइपलाइन के भीतर Apache Maven का उपयोग करने में सक्षम हैं। यह आपकी पाइपलाइन को, जिसे आपने "[मॉड्यूल 2]: जेनकिंस सर्वर" में बनाया था, एक जार आर्टिफैक्ट बनाने के लिए अपना प्रोजेक्ट कोड बनाने की अनुमति देगा।


अपाचे मावेन को पाइपलाइन में एकीकृत करने के लिए आपको इन चरणों का पालन करना होगा:

  1. "डैशबोर्ड" → "CI_CD_Pipeline" → "कॉन्फ़िगर करें" → "बिल्ड स्टेप्स" पर नेविगेट करें।
  2. "बिल्ड चरण जोड़ें" बटन पर क्लिक करें।
  3. "शीर्ष-स्तरीय मावेन लक्ष्यों को आमंत्रित करें" विकल्प चुनें।
  4. "अपाचे-मावेन" को "मावेन संस्करण" के रूप में चुनें।
  5. "लक्ष्य" इनपुट में "क्लीन पैकेज" कमांड जोड़ें।
  6. "उन्नत" बटन पर क्लिक करें।
  7. "POM" इनपुट में "pom.xml" जोड़ें।



"लागू करें" और "सहेजें" बटन के संकेतक के साथ पाइपलाइन कॉन्फ़िगरेशन में "बिल्ड स्टेप्स" अनुभाग का स्क्रीनशॉट



अंत में, आपको पाइपलाइन के साथ अपाचे मावेन के एकीकरण को पूरा करने के लिए "लागू करें" और "सहेजें" बटन पर क्लिक करना चाहिए।

चरण 7: पाइपलाइन में एकीकृत अपाचे मावेन का परीक्षण करें

अब आप अपना Github प्रोजेक्ट बनाने के लिए अपनी अद्यतन पाइपलाइन का उपयोग कर सकते हैं। ऐसा करने के लिए आपको **"बिल्ड नाउ"**बटन पर क्लिक करना होगा। परिणामस्वरूप, आप बिल्ड इतिहास में एक सफल कार्य परिणाम देखेंगे।

यदि आप अपना AWS EC2 टर्मिनल खोलते हैं। आप जांच सकते हैं कि पाइपलाइन अच्छी तरह से काम करती है।


बस इस आदेश का प्रयोग करें.

 cd /var/lib/jenkins/workspace/{your pipeline name}/target


इस तरह आप JAR आर्टिफैक्ट देख सकते हैं, जो GitHub से आपके प्रोजेक्ट के सफल निर्माण का संकेत देता है।



[मॉड्यूल 5]: डॉकर

अब "Ansible Server" नाम से एक नया EC2 इंस्टेंस बनाएं जहां आप Docker और Ansible इंस्टॉल करने जा रहे हैं।


चरण 1: AWS EC2 वर्चुअल सर्वर इंस्टेंस लॉन्च करें

इस चरण को पूरा करने के लिए इस ट्यूटोरियल के " AWS EC2 वर्चुअल सर्वर इंस्टेंस लॉन्च करें" अनुभाग के निर्देशों का उपयोग करें। सुरक्षा समूह सेटअप जोड़ना न भूलें. यह डॉकर और एसएसएच को क्रमशः पोर्ट 8080 और 22 पर काम करने की अनुमति देता है।


चरण 2: AWS EC2 वर्चुअल सर्वर इंस्टेंस से कनेक्ट करें

"कनेक्ट" बटन पर क्लिक करें।

"कनेक्ट" बटन के सूचक के साथ AWS वेब पेज का स्क्रीनशॉट


अब आप EC2 वर्चुअल सर्वर इंस्टेंस ऑनलाइन टर्मिनल देख सकते हैं।

AWS 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 को व्यवस्थापकीय विशेषाधिकार देने के लिए वर्तमान उपयोगकर्ता "ansible-admin" को "AnsibleServer" EC2 वर्चुअल सर्वर पर Docker समूह में जोड़ना होगा।


 sudo usermod -a -G docker ansible-admin


इन परिवर्तनों को प्रभावी करने के लिए आपको लॉगआउट और वापस लॉग इन करना होगा।


फिर आप अगला कमांड निष्पादित कर सकते हैं

 id ansible-admin


यह देखने के लिए कि नया डॉकर उपयोगकर्ता मौजूद है।


डॉकर उपयोगकर्ता के लिए पॉइंटर के साथ Ansible EC2 इंस्टेंस का स्क्रीनशॉट


चरण 5: डॉकर लॉन्च करें

अब चूंकि डॉकर Ansible EC2 इंस्टेंस पर स्थापित है, आप इसे अगले कमांड को निष्पादित करके लॉन्च कर सकते हैं।

 sudo systemctl start docker


जैसे ही डॉकर शुरू होता है आप अगला कमांड निष्पादित कर सकते हैं

 sudo systemctl status docker


यह देखने के लिए कि डॉकर सक्रिय है और अभी चल रहा है।

सक्रिय डॉकर स्थिति के साथ Ansible EC2 इंस्टेंस का स्क्रीनशॉट


चरण 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 इंस्टेंस से कॉपी करके और इसे "AnsibleServer" EC2 इंस्टेंस पर पेस्ट करके आगे बढ़ें। यह ध्यान रखना महत्वपूर्ण है कि यह स्थानांतरण आगे पाइपलाइन के माध्यम से स्वचालित हो जाएगा।

इस चरण को पूरा करके, आप अपने द्वारा सेट किए गए डॉकर वातावरण के साथ अपनी डॉकरफ़ाइल का परीक्षण करने के लिए तैयार होंगे।


परीक्षण शुरू करने से पहले, डॉकरहब पर स्वयं को प्रमाणित करना सुनिश्चित करें। निम्नलिखित आदेश निष्पादित करें.

 docker login


यह कमांड आपको आपके उपयोगकर्ता नाम और पासवर्ड सहित अपना डॉकरहब लॉगिन क्रेडेंशियल प्रदान करने के लिए प्रेरित करेगा।

"AnsibleServer" EC2 उदाहरण में सफल डॉकर लॉगिन का स्क्रीनशॉट


इसके साथ, आपने डॉकर में लॉग इन करने की प्रक्रिया पूरी कर ली है और अब परीक्षण के लिए आगे बढ़ने के लिए तैयार हैं।

चरण 8: डॉकर वातावरण और डॉकरफाइल का परीक्षण

Dockerhub में आपका सफल लॉगिन पूरा होने के साथ, अब आप अपने द्वारा तैयार किए गए Dockerfile का परीक्षण शुरू करने के लिए तैयार हैं।


डॉकर छवि बनाने के लिए इस आदेश को निष्पादित करें।

 docker build -t hello:latest .


इसके बाद, एक टैग स्थापित करने के लिए निम्नलिखित कमांड निष्पादित करें जो छवि को डॉकरहब पर अपलोड करने की सुविधा प्रदान करेगा:

 docker tag hello:latest zufarexplainedit/hello:latest


अंत में, इस कमांड के निष्पादन के माध्यम से डॉकर छवि को डॉकरहब पर धकेलने के लिए आगे बढ़ें।

 docker push zufarexplainedit/hello:latest


इन चरणों का पालन करते हुए, यह सत्यापित करने के लिए अपने डॉकरहब खाते पर जाएँ कि आप एक नई छवि देख सकते हैं या नहीं।

नई छवि के साथ Dockerhub खाते का स्क्रीनशॉट जोड़ा गया


अब आपको देखना चाहिए कि छवि प्रभावी ढंग से जोड़ दी गई है। यह परिणाम डॉकर वातावरण की सफल स्थापना की पुष्टि करता है और आपकी डॉकरफ़ाइल सही है।



[मॉड्यूल 6]: उत्तरयोग्य

अब हम EC2 वर्चुअल सर्वर इंस्टेंस पर Ansible सर्वर को कॉन्फ़िगर करते हैं।


चरण 1: एक AWS EC2 वर्चुअल सर्वर इंस्टेंस बनाएं

Ansible को चलाने के लिए आपको एक वर्चुअल सर्वर की आवश्यकता है।


इस चरण को पूरा करने और Ansible के लिए EC2 वर्चुअल सर्वर इंस्टेंस बनाने के लिए इस ट्यूटोरियल के [मॉड्यूल 1]: AWS EC2 वर्चुअल सर्वर अनुभाग के निर्देशों का पालन करें।

सुरक्षा समूह सेटअप जोड़ना न भूलें. यह Ansible और SSH को क्रमशः पोर्ट 8080 और 22 पर काम करने की अनुमति देता है।


अपने EC2 वर्चुअल सर्वर इंस्टेंस को अलग करने के लिए "AnsibleServer" नाम का उपयोग करें।

आप नए "AnsibleServer" EC2 उदाहरण के लिए "CI_CD_Pipeline" सुरक्षा समूह और "CI_CD_Pipeline_Key_Pair" का पुन: उपयोग कर सकते हैं।


चरण 2: AWS EC2 वर्चुअल सर्वर इंस्टेंस से कनेक्ट करें

AWS कंसोल होम पेज → EC2 प्रबंधन कंसोल डैशबोर्ड → इंस्टेंस → AnsibleServer पर जाएं।


फिर "कनेक्ट" बटन पर क्लिक करें।

"कनेक्ट" बटन के सूचक के साथ AWS वेब पेज का स्क्रीनशॉट


फिर आपको यह वेब पेज दिखाई देगा. आपको फिर से "कनेक्ट" बटन पर क्लिक करना चाहिए।


"कनेक्ट" बटन के सूचक के साथ AWS "कनेक्ट टू इंस्टेंस" वेब पेज का स्क्रीनशॉट


अब आप EC2 वर्चुअल सर्वर इंस्टेंस ऑनलाइन टर्मिनल देख सकते हैं।

AWS EC2 वर्चुअल सर्वर इंस्टेंस ऑनलाइन टर्मिनल का स्क्रीनशॉट


अब EC2 वर्चुअल सर्वर इंस्टेंस पर Ansible सर्वर को कॉन्फ़िगर करते हैं।

चरण 3: "AnsibleServer" AWS EC2 वर्चुअल सर्वर इंस्टेंस का होस्टनाम बदलें

जब आप EC2 वर्चुअल सर्वर इंस्टेंस पर AnsibleServer को कॉन्फ़िगर करना चाहते हैं तो सबसे पहली चीज़ जो आपको करने की ज़रूरत है वह है इसका होस्टनाम बदलना।


चलो यह करते हैं। होस्टनाम फ़ाइल खोलने के लिए इस आदेश को निष्पादित करें:

 sudo vi /etc/hostname


आपको कुछ इस तरह देखना चाहिए:

होस्टनाम फ़ाइल के साथ AWS EC2 वर्चुअल सर्वर इंस्टेंस का स्क्रीनशॉट


इस होस्टनाम को "ansible-server" से बदलें। फिर, इसे रीबूट करें।

 sudo init 6 



होस्टनाम के सूचक के साथ AWS EC2 वर्चुअल सर्वर इंस्टेंस टर्मिनल का स्क्रीनशॉट


चरण 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" जोड़ें।

व्यवस्थापक विशेषाधिकारों के सूचक के साथ AWS EC2 वर्चुअल सर्वर इंस्टेंस टर्मिनल का स्क्रीनशॉट


साथ ही, आपको पासवर्ड प्रमाणीकरण सक्षम करने के लिए /etc/ssh/sshd_config फ़ाइल को संपादित करना होगा।

 sudo vi /etc/ssh/sshd_config 


एडमिन सेटिंग्स के पॉइंटर के साथ AWS EC2 वर्चुअल सर्वर इंस्टेंस टर्मिनल का स्क्रीनशॉट


फिर आपको इन परिवर्तनों की पुष्टि करने के लिए सेवा को पुनः लोड करना होगा।

 sudo service sshd reload


इस आदेश को निष्पादित करने के परिणामस्वरूप, आप देखेंगे:


Sshd पुनः लोड परिणाम के सूचक के साथ AWS EC2 वर्चुअल सर्वर इंस्टेंस टर्मिनल का स्क्रीनशॉट


अब आप आगे की सभी कमांड के लिए sudo जोड़ने से बचने के लिए इस कमांड का उपयोग कर सकते हैं।

 sudo su - ansible-admin


चरण 5: AWS EC2 वर्चुअल सर्वर इंस्टेंस में कुंजी जेनरेट करें

आप इस आलेख में आगे K8s EC2 वर्चुअल सर्वर इंस्टेंसेस जैसे दूरस्थ सर्वर प्रबंधित करने की योजना बना रहे हैं। इसीलिए आपको SSH कुंजियाँ सेट करने की आवश्यकता है।

 ssh-keygen


इस आदेश को निष्पादित करने के परिणामस्वरूप, आप देखेंगे:

ssh-keygen परिणाम के सूचक के साथ AWS EC2 वर्चुअल सर्वर इंस्टेंस टर्मिनल का स्क्रीनशॉट


अब SSH कुंजियाँ जनरेट हो गई हैं और उपयोग के लिए तैयार हैं।

चरण 6: अन्सिबल स्थापित करें

अब आप अपने "AnsibleServer" EC2 वर्चुअल सर्वर इंस्टेंस पर Ansible इंस्टॉल कर सकते हैं।

चलो यह करते हैं।


Ansible को स्थापित करने के लिए इस आदेश को निष्पादित करें।

 sudo amazon-linux-extras install ansible2


Ansible को सत्यापित करने के लिए, इस कमांड का उपयोग करें:

 ansible --version


इस आदेश को निष्पादित करने के परिणामस्वरूप, आप देखेंगे:

Sudo yum install ansible परिणाम के सूचक के साथ AWS EC2 वर्चुअल सर्वर इंस्टेंस टर्मिनल का स्क्रीनशॉट


चरण 7: जेनकिंस सर्वर EC2 उदाहरण पर जेनकिंस "एसएसएच पर प्रकाशित करें" प्लगइन स्थापित करें

चूँकि Ansible आपके "AnsibleServer" EC2 वर्चुअल सर्वर इंस्टेंस पर स्थापित है, आप इसे Ansible के साथ एकीकृत करने के लिए जेनकींस को कॉन्फ़िगर कर सकते हैं। जेनकींस को EC2 वर्चुअल सर्वर इंस्टेंस जहां Ansible स्थापित है और अन्य EC2 वर्चुअल सर्वर इंस्टेंस जहां Kubernetes स्थापित है, के साथ एकीकृत करने के लिए आपको "SSH पर प्रकाशित करें" प्लगइन स्थापित करने की आवश्यकता है।


"डैशबोर्ड" → " जेनकींस प्रबंधित करें""सिस्टम कॉन्फ़िगर करें""उपलब्ध प्लगइन्स" पर जाएं।

फिर खोज बॉक्स में "एसएसएच पर प्रकाशित करें" दर्ज करें।


"उपलब्ध प्लगइन्स" वेब पेज के पॉइंटर के साथ AWS EC2 वर्चुअल सर्वर पर स्थापित जेनकींस का स्क्रीनशॉट


"रीस्टार्ट किए बिना इंस्टॉल करें" बटन पर क्लिक करें। डाउनलोडिंग प्रक्रिया समाप्त होने तक प्रतीक्षा करें।


"डाउनलोड प्रगति" वेब पेज के सूचक के साथ AWS EC2 वर्चुअल सर्वर पर स्थापित जेनकींस का स्क्रीनशॉट



अब "पब्लिश ओवर एसएसएच" प्लगइन जेनकिंस ईसी2 वर्चुअल सर्वर इंस्टेंस पर इंस्टॉल हो गया है।


चरण 8: जेनकींस "एसएसएच पर प्रकाशित करें" प्लगइन कॉन्फ़िगर करें

अपाचे मावेन जेनकींस प्लगइन की सफल स्थापना के साथ, अब आप इस प्लगइन का उपयोग उस पाइपलाइन के भीतर करने में सक्षम हैं जिसे आपने मॉड्यूल 2 और 3 में बनाया और अपडेट किया था।


ऐसा करने के लिए, इन चरणों का पालन करें:


"डैशबोर्ड""जेनकींस प्रबंधित करें""सिस्टम कॉन्फ़िगर करें""एसएसएच पर प्रकाशित करें" पर जाएं।

"SSH पर प्रकाशित करें" प्लगइन के साथ AWS EC2 वर्चुअल सर्वर इंस्टेंस टर्मिनल का स्क्रीनशॉट


स्क्रीनशॉट पर मौजूद सभी आवश्यक डेटा दर्ज करें, जिसमें होस्टनाम, उपयोगकर्ता नाम और निजी कुंजी (या यदि लागू हो तो पासवर्ड) शामिल है।


"SSH पर प्रकाशित करें" प्लगइन के साथ AWS EC2 वर्चुअल सर्वर इंस्टेंस टर्मिनल का स्क्रीनशॉट


फिर "लागू करें" और "सहेजें" बटन पर क्लिक करें।


यहां आपने "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" उपयोगकर्ता के साथ पहुंच योग्य है।


"AnsibleServer" EC2 उदाहरण में "docker" फ़ोल्डर का स्क्रीनशॉट


चरण 10: पाइपलाइन में "एसएसएच पर प्रकाशित करें" जीथब प्लगइन को एकीकृत करें


अब "एसएसएच पर प्रकाशित करें" जीथब प्लगइन स्थापित और कॉन्फ़िगर किया गया है, अब आप इसे उस पाइपलाइन में एकीकृत करने में सक्षम हैं जिसे आपने "[मॉड्यूल 2]: जेनकिंस सर्वर" में प्रोजेक्ट जार आर्टिफैक्ट को " जेनकिंस सर्वर" से स्थानांतरित करने के लिए बनाया था। "AnsibleServer"


खैर, पाइपलाइन में "एसएसएच पर प्रकाशित करें" जीथब प्लगइन को एकीकृत करने के लिए आपको इन चरणों का पालन करना होगा:


  1. "डैशबोर्ड" → "CI_CD_Pipeline" → "कॉन्फ़िगर करें" → "पोस्ट-बिल्ड एक्शन" पर नेविगेट करें।
  2. "पोस्ट-बिल्ड एक्शन जोड़ें" बटन पर क्लिक करें।
  3. "SSH पर निर्मित कलाकृतियाँ भेजें" विकल्प चुनें।
  4. "SSH सर्वर" अनुभाग में "नाम" इनपुट में "AnsibleServer" जोड़ें**।**
  5. "ट्रांसफर सेट" अनुभाग में "स्रोत फ़ाइलें" इनपुट में "लक्ष्य/*.jar" जोड़ें**।**
  6. "ट्रांसफर सेट" अनुभाग में "लक्ष्य/" को "उपसर्ग हटाएं" इनपुट में जोड़ें**।**
  7. "ट्रांसफर सेट" अनुभाग में "दूरस्थ निर्देशिका" इनपुट में "//opt/docker/" जोड़ें**।**
  8. अभी के लिए, बस 'ट्रांसफर सेट' अनुभाग के अंतर्गत 'एक्सेक कमांड' इनपुट में एक खाली स्ट्रिंग डालें।



पाइपलाइन कॉन्फ़िगरेशन में "एसएसएच पर बिल्ड आर्टिफैक्ट भेजें" अनुभाग का स्क्रीनशॉट


अंत में, आपको पाइपलाइन के साथ " एसएसएच पर प्रकाशित करें" प्लगइन का एकीकरण पूरा करने के लिए "लागू करें" और "सहेजें" बटन पर क्लिक करना चाहिए।


चरण 11: पाइपलाइन में एकीकृत जीथब प्लगइन "एसएसएच पर प्रकाशित करें" का परीक्षण करें

अब आप प्रोजेक्ट जार आर्टिफैक्ट को " जेनकिंससर्वर" से "एन्सिबलसर्वर" में स्थानांतरित करने के लिए अपनी अद्यतन पाइपलाइन का उपयोग कर सकते हैं। ऐसा करने के लिए आपको "बिल्ड नाउ" बटन पर क्लिक करना होगा। परिणामस्वरूप आप निर्माण इतिहास में एक सफल कार्य परिणाम देखेंगे।


यदि आप अपना "AnsibleServer" AWS EC2 टर्मिनल खोलते हैं। आप जांच सकते हैं कि पाइपलाइन अच्छी तरह से काम करती है।

बस इस आदेश का प्रयोग करें.


 cd /opt/docker


इस तरह आप JAR आर्टिफैक्ट देख सकते हैं, जो GitHub से आपके प्रोजेक्ट के सफल निर्माण का संकेत देता है।

प्रोजेक्ट जार आर्टिफैक्ट के साथ /opt/docker निर्देशिका का स्क्रीनशॉट


चरण 12: अन्सिबल होस्ट कॉन्फ़िगर करें

जब आप एक अन्सिबल प्लेबुक चलाते हैं, तो आप उन होस्टों को निर्दिष्ट करते हैं जिन पर इसे चलाना चाहिए। आप इसे दो तरीकों से कर सकते हैं:


  1. सीधे प्लेबुक में होस्ट निर्दिष्ट करें: अपनी प्लेबुक में, आप hosts पैरामीटर को आईपी पते या होस्टनाम की सूची में सेट कर सकते हैं।
  2. इन्वेंट्री फ़ाइल का उपयोग करें: Ansible आपको इन्वेंट्री फ़ाइल में होस्ट की एक सूची को परिभाषित करने और अपनी प्लेबुक चलाते समय इस फ़ाइल को संदर्भित करने की अनुमति देता है। डिफ़ॉल्ट इन्वेंट्री फ़ाइल /etc/ansible/hosts है।


/etc/ansible/hosts संपादित करके, आप हर बार प्लेबुक चलाने पर उनके आईपी पते लिखे बिना आसानी से होस्ट के समूहों को प्रबंधित कर सकते हैं।


आइए निम्नलिखित कमांड निष्पादित करके AnsibleServer EC2 इंस्टेंस होस्ट का पता लगाएं।

 sudo ifconfig 


AnsibleServer EC2 इंस्टेंस की नेटवर्क इंटरफ़ेस सेटिंग का स्क्रीनशॉट


AnsibleServer EC2 इंस्टेंस होस्ट का पता लगाने के बाद, आप इसे निम्न कमांड निष्पादित करके Ansible होस्ट फ़ाइल में जोड़ सकते हैं।


 sudo vi /etc/ansible/hosts


आप संदर्भ के रूप में "[ansible]" भी जोड़ सकते हैं

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 [email protected] 


सफल पासवर्ड रहित एसएसएच प्रमाणीकरण स्थापना परिणाम का स्क्रीनशॉट


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

चरण 14: डॉकर कार्यों के लिए एक नई एन्सिबल प्लेबुक बनाएं

अब जब Ansible पूरी तरह तैयार हो गया है और जाने के लिए तैयार है, तो आप अपनी पाइपलाइन के लिए एक नई Ansible प्लेबुक बना सकते हैं। यह प्लेबुक Ansible को एक नई Docker छवि बनाने और Dockerhub को भेजने देगी।

यहां बताया गया है कि आप यह कैसे कर सकते हैं:


  1. एक नई Ansible प्लेबुक फ़ाइल बनाकर प्रारंभ करें। बस इस आदेश का प्रयोग करें.
 touch hello-app.yml


  1. फिर, नव निर्मित hello-app.yml फ़ाइल को संपादित करें। इस आदेश के साथ संपादन के लिए इसे खोलें।
 vi hello-app.yml


  1. फ़ाइल के अंदर, निम्नलिखित सामग्री टाइप करें।
 --- - 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 प्लेबुक का सफल निष्पादन परिणाम देखेंगे।

डॉकर कार्यों के लिए एन्सिबल प्लेबुक के सफल निष्पादन परिणाम का स्क्रीनशॉट


इसके अलावा, अपने डॉकरहब खाते पर जाने के लिए कुछ समय निकालें और सत्यापित करें कि क्या अब कोई नई छवि दिखाई दे रही है।


नई छवि के साथ Dockerhub खाते का स्क्रीनशॉट जोड़ा गया


आपको नई जोड़ी गई छवि देखनी चाहिए. यह परिणाम पुष्टि करता है कि आपकी अन्सिबल प्लेबुक सही है।


चरण 14: Ansible Docker कार्यों को पाइपलाइन में एकीकृत करें

अब "एसएसएच पर प्रकाशित करें" जीथब प्लगइन, एन्सिबल और डॉकर स्थापित और कॉन्फ़िगर किए गए हैं, अब आप प्रोजेक्ट जार आर्टिफैक्ट को स्थानांतरित करने के लिए "[मॉड्यूल 2]: जेनकिंस सर्वर" में बनाई गई पाइपलाइन में उन सभी को एकीकृत करने में सक्षम हैं। " जेनकिंससर्वर" से "एन्सिबलसर्वर" तक और फिर अपने प्रोजेक्ट से एक नई डॉकर छवि बनाएं और फिर इस डॉकर छवि को डॉकरहब पर धकेलें।


इसे प्राप्त करने के लिए आपको इन चरणों का पालन करना होगा:

  1. "डैशबोर्ड" → "सीआई_सीडी_पाइपलाइन" → "कॉन्फ़िगर" → "पोस्ट-बिल्ड एक्शन" → "एसएसएच पर बिल्ड आर्टवर्क भेजें" पर नेविगेट करें।
  2. "Exec कमांड" इनपुट में "sudo -u ansible-admin ansible-playbook /opt/docker/hello-app.yml" कमांड जोड़ें।


पाइपलाइन कॉन्फ़िगरेशन में "एसएसएच पर बिल्ड आर्टिफैक्ट भेजें" अनुभाग का स्क्रीनशॉट


अंत में, पाइपलाइन के साथ एकीकरण Ansible Docker कार्यों को पूरा करने के लिए "लागू करें" और "सहेजें" बटन पर क्लिक करें।

चरण 15: पाइपलाइन में एकीकृत "डॉकर कार्यों के साथ एन्सिबल प्लेबुक" का परीक्षण करें

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


इसके अलावा, अपने डॉकरहब खाते पर जाने के लिए कुछ समय निकालें और सत्यापित करें कि क्या अब कोई नई छवि दिखाई दे रही है।


नई छवि के साथ Dockerhub खाते का स्क्रीनशॉट जोड़ा गया


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


[मॉड्यूल 7]: कुबेरनेट्स

आइए अब K8s को EC2 इंस्टेंस पर कॉन्फ़िगर करें। आप एक नया EC2 इंस्टेंस बनाने जा रहे हैं और Kubernetes क्लस्टर के साथ आगे इंटरैक्ट करने के लिए उनके kubectl कमांड-लाइन टूल को इंस्टॉल करेंगे।


चरण 1: AWS EC2 वर्चुअल सर्वर इंस्टेंस लॉन्च करें

इस चरण को पूरा करने के लिए इस ट्यूटोरियल के " AWS EC2 वर्चुअल सर्वर इंस्टेंस लॉन्च करें" अनुभाग के निर्देशों का उपयोग करें।


सुरक्षा समूह सेटअप जोड़ना न भूलें. यह सभी टूल्स और एसएसएच को क्रमशः पोर्ट 8080 और 22 पर काम करने की अनुमति देता है।


अपने EC2 वर्चुअल सर्वर इंस्टेंस को अलग करने के लिए "K8sServer" नाम का उपयोग करें।

आप नए "K8sServer" EC2 उदाहरण के लिए "CI_CD_Pipeline" सुरक्षा समूह और "CI_CD_Pipeline_Key_Pair" का पुन: उपयोग कर सकते हैं।


चरण 2: AWS EC2 वर्चुअल सर्वर इंस्टेंस से कनेक्ट करें

"कनेक्ट" बटन पर क्लिक करें।

"कनेक्ट" बटन के सूचक के साथ AWS वेब पेज का स्क्रीनशॉट


अब आप EC2 वर्चुअल सर्वर इंस्टेंस ऑनलाइन टर्मिनल देख सकते हैं।

AWS EC2 वर्चुअल सर्वर इंस्टेंस ऑनलाइन टर्मिनल का स्क्रीनशॉट


चरण 3: "कुबेरनेट्ससर्वर" AWS EC2 वर्चुअल सर्वर इंस्टेंस का होस्टनाम बदलें

जब आप EC2 वर्चुअल सर्वर इंस्टेंस पर KuberenetesServer को कॉन्फ़िगर करना चाहते हैं तो सबसे पहले आपको इसका होस्टनाम बदलना होगा।


चलो यह करते हैं। होस्टनाम फ़ाइल खोलने के लिए इस आदेश को निष्पादित करें:

 sudo vi /etc/hostname


आपको कुछ इस तरह देखना चाहिए.

होस्टनाम फ़ाइल के साथ AWS EC2 वर्चुअल सर्वर इंस्टेंस का स्क्रीनशॉट


इस होस्टनाम को "कुबेरनेट्स-सर्वर" से बदलें और फिर इसे रीबूट करें।

 sudo init 6


आपका होस्टनाम बदल दिया गया है.

होस्टनाम के सूचक के साथ AWS EC2 वर्चुअल सर्वर इंस्टेंस टर्मिनल का स्क्रीनशॉट


चरण 4: AWS CLI संस्करण की जाँच करें

AWS संस्करण की जाँच करने के लिए इस कमांड का उपयोग करें।

 aws --version


इस तरह आप अपना वर्तमान aws-cli संस्करण देख सकते हैं।

AWS संस्करण कमांड परिणाम के साथ AWS EC2 वर्चुअल सर्वर इंस्टेंस ऑनलाइन टर्मिनल का स्क्रीनशॉट


यदि आप संस्करण aws-cli/1.18 देख सकते हैं, तो आपको नवीनतम संस्करण डाउनलोड करना चाहिए।


चरण 5: एडब्ल्यूएस सीएलआई अपडेट करें

अब जैसा कि आपको पता चला है कि आपके EC2 इंस्टेंस पर एक पुराना aws-cli संस्करण है, आपको इसे अपडेट करने की आवश्यकता है। इसके लिए AWS → दस्तावेज़ीकरण → AWS कमांड लाइन इंटरफ़ेस → संस्करण 2 के लिए उपयोगकर्ता मार्गदर्शिका पर जाएँ।


संस्करण 2 के लिए उपयोगकर्ता गाइड के साथ AWS EC2 वर्चुअल सर्वर इंस्टेंस वेबपेज का स्क्रीनशॉट


कर्ल कमांड को कॉपी-पेस्ट करें।


सबसे पहले, awscli संस्करण 2 डाउनलोड करने के लिए इस कमांड को निष्पादित करें।

 curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"

डाउनलोडिंग प्रक्रिया शुरू होने तक प्रतीक्षा करें।


आपको कुछ इस तरह देखना चाहिए.

AWS संस्करण 2 परिणाम डाउनलोड करने के साथ AWS EC2 वर्चुअल सर्वर इंस्टेंस ऑनलाइन टर्मिनल का स्क्रीनशॉट


दूसरा, आपको awscli संस्करण 2 संग्रह को अनज़िप करने के लिए इस कमांड को निष्पादित करने की आवश्यकता है।

 unzip awscliv2.zip


तीसरा, आपको awscli संस्करण 2 को स्थापित करने के लिए इस कमांड को निष्पादित करना चाहिए।

 sudo ./aws/install


फिर, Kubernetes EC2 वर्चुअल सर्वर इंस्टेंस ऑनलाइन टर्मिनल को पुनः लोड करें।


इसके बाद, AWS संस्करण की जाँच करने के लिए इस कमांड का उपयोग करें

 aws --version


आप देख सकते हैं कि aws cli में aws-cli/2 है।

AWS संस्करण कोमांड परिणाम के साथ AWS EC2 वर्चुअल सर्वर इंस्टेंस ऑनलाइन टर्मिनल का स्क्रीनशॉट


चरण 6: कुबेक्टल स्थापित करें

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


अब आपको Kubernetes क्लस्टर के साथ आगे इंटरैक्ट करने के लिए kubectl कमांड-लाइन टूल इंस्टॉल करना होगा। इसके लिए आपको AWSदस्तावेज़ीकरणAmazon EKSउपयोगकर्ता गाइडkubectl इंस्टॉल या अपडेट करनाLinux पर जाना होगा।


या बस लिंक https://docs.aws.amazon.com/eks/latest/userguide/install-kubectl.html पर क्लिक करें।


AWS EKS उपयोगकर्ता गाइड का स्क्रीनशॉट



सबसे पहले, kubectl डाउनलोड करने के लिए इस कमांड को निष्पादित करें।

 curl -O https://s3.us-west-2.amazonaws.com/amazon-eks/1.27.1/2023-04-19/bin/linux/amd64/kubectl


डाउनलोडिंग प्रक्रिया की प्रतीक्षा करें।


आपको कुछ ऐसा दिखेगा.

Kubectl परिणाम डाउनलोड करने के साथ AWS EC2 वर्चुअल सर्वर इंस्टेंस ऑनलाइन टर्मिनल का स्क्रीनशॉट


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


आपको संस्करण देखना चाहिए

EWSCTL संस्करण के साथ AWS EC2 वर्चुअल सर्वर इंस्टेंस ऑनलाइन टर्मिनल का स्क्रीनशॉट


चरण 8: eksctl के लिए IAM भूमिका बनाएँ

आपको एक IAM भूमिका बनानी होगी और इसे अपने "KubernetesServer" EC2 इंस्टेंस से जोड़ना होगा।

ऐसा करने के लिए आपको खोज बॉक्स में EC2 ढूंढना होगा।


https://us-east-1.console.aws.amazon.com/ec2 / लिंक पर क्लिक करके EC2 वर्चुअल सर्वर चुनें।

"IAM" के सूचक के साथ AWS वेब पेज का स्क्रीनशॉट


IAM डैशबोर्डभूमिकाएँ पर जाएँ।

"IAM भूमिकाएँ" के सूचक के साथ AWS वेब पेज का स्क्रीनशॉट


IAM भूमिकाएँ वेब पेज पर "भूमिका बनाएँ" बटन पर क्लिक करें।


फिर "AWS सेवा", "EC2" चुनें। और "अगला" बटन पर क्लिक करें।

"IAM भूमिका कॉन्फ़िगरेशन" के सूचक के साथ AWS वेब पेज का स्क्रीनशॉट


फिर, खोज बॉक्स में "AmazonEC2FullAccess" , "AmazonEC2FullAccess" , "IAMFullAccess" , "AWSCloudFormationFullAccess" ढूंढें और फिर "अनुमतियां जोड़ें" बटन पर क्लिक करें।


और फिर "अगला" बटन पर क्लिक करें।

एडमिनिस्ट्रेटर एक्सेस अनुमति के सूचक के साथ AWS वेब पेज का स्क्रीनशॉट

फिर "भूमिका नाम" इनपुट में "Eksctl_Role" टाइप करें।

और "भूमिका बनाएं" बटन पर क्लिक करें।

अनुमति भूमिका कॉन्फ़िगरेशन के सूचक के साथ AWS वेब पेज का स्क्रीनशॉट


भूमिका अंततः निर्मित होती है।


चरण 9: IAM भूमिका को eksctl से जोड़ें

AWS EC2 इंस्टेंस वेब पेज पर जाएँ। "कुबेरबेट्ससर्वर" चुनें। फिर "क्रियाएँ""सुरक्षा""IAM भूमिका संशोधित करें" पर क्लिक करें।


KubernetesServer Security बटन के पॉइंटर के साथ AWS वेब पेज का स्क्रीनशॉट



"Eksctl_Role" चुनें और फिर "अपडेट IAM रोल" बटन पर क्लिक करें।


Elsctl_Role IAM भूमिका के सूचक के साथ AWS वेब पेज का स्क्रीनशॉट


अब आपकी IAM भूमिका आपके "EKS_Server" और eksctl टूल से जुड़ गई है।

चरण 10: eksctl क्लस्टर बनाएं


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


अब, आपका ईकेएस क्लस्टर स्थापित करने का समय आ गया है।


इसे प्राप्त करने के लिए, इन चरणों का पालन करें:


  1. अपनी विशिष्ट जानकारी के साथ निम्नलिखित आदेश को संशोधित करें।
 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


  1. संशोधित आदेश निष्पादित करें और धैर्यपूर्वक क्लस्टर निर्माण प्रक्रिया के पूरा होने की प्रतीक्षा करें। आप देखेंगे कि ईकेएस क्लस्टर स्थिति को एडब्ल्यूएस क्लाउडफॉर्मेशन वेब पेज पर "बनाना" के रूप में दर्शाया गया है।


AWS क्लाउडफ़ॉर्मेशन के सूचक के साथ AWS वेब पेज का स्क्रीनशॉट जहां आप EKS क्लस्टर "निर्माण" स्थिति देख सकते हैं


क्लस्टर निर्माण प्रक्रिया में आमतौर पर लगभग 20 मिनट लगते हैं। एक बार पूरा होने पर, टर्मिनल प्रक्रिया का परिणाम प्रदर्शित करेगा।


AWS EC2 टर्मिनल के पॉइंटर के साथ AWS वेब पेज का स्क्रीनशॉट जहां आप EKS क्लस्टर निर्माण परिणाम देख सकते हैं


इसके अलावा, आप AWS CloudFormation वेब पेज पर सफल EKS क्लस्टर निर्माण स्थिति को सत्यापित कर सकते हैं।


AWS क्लाउडफ़ॉर्मेशन के पॉइंटर के साथ AWS वेब पेज का स्क्रीनशॉट जहां आप EKS क्लस्टर निर्माण परिणाम देख सकते हैं


चरण 11: Kubernetes परिनियोजन yaml फ़ाइल बनाएँ

Kubernetes परिनियोजन YAML फ़ाइल 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 फ़ाइल बनाएँ

Kubernetes Service YAML फ़ाइल YAML प्रारूप में लिखी गई एक कॉन्फ़िगरेशन स्क्रिप्ट है जो पॉड्स के एक सेट के लिए नेटवर्क एब्स्ट्रैक्शन को परिभाषित करती है, जिससे उन्हें Kubernetes क्लस्टर के भीतर लगातार एक्सेस करने की अनुमति मिलती है। यह फ़ाइल बताती है कि अन्य सेवाओं या बाहरी ग्राहकों द्वारा सेवा को कैसे खोजा, एक्सेस किया जाना चाहिए और लोड-संतुलित किया जाना चाहिए। इसमें सेवा प्रकार (क्लस्टरआईपी, नोडपोर्ट, लोडबैलेंसर), पोर्ट नंबर, पॉड्स की पहचान करने के लिए चयनकर्ता और बहुत कुछ जैसे विनिर्देश शामिल हैं। जब कुबेरनेट्स क्लस्टर पर लागू किया जाता है, तो सेवा 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: कुबेक्टल का उपयोग करके कुबेरनेट्स क्लस्टर का परीक्षण करें

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


  1. परिनियोजन लागू करें.

    परिनियोजन कॉन्फ़िगरेशन लागू करने के लिए निम्न आदेश का उपयोग करें।

 kubectl apply -f hello-app-deployment.yaml

यह आपके एप्लिकेशन की उपलब्धता और प्रबंधनीयता सुनिश्चित करते हुए, प्रतिकृतियों की निर्दिष्ट संख्या और एक रोलिंग अपडेट रणनीति के साथ एक तैनाती तैयार करेगा।


2. सेवा लागू करें.

इसके बाद, सेवा कॉन्फ़िगरेशन लागू करें।

 kubectl apply -f hello-app-service.yaml

यह आपके एप्लिकेशन को इंटरनेट पर उजागर करते हुए एक लोडबैलेंसर प्रकार की सेवा स्थापित करेगा।

ध्यान दें कि लोडबैलेंसर को प्रावधानित करने और बाहरी आईपी पता प्राप्त करने में थोड़ा समय लग सकता है।


  1. लोडबैलेंसर स्थिति जांचें।

    अपनी सेवा का उपयोग करके उसकी स्थिति की निगरानी करें।

 kubectl get service zufarexplainedit-hello-app-service

जब एक बाहरी आईपी असाइन किया जाता है, तो आप अपने एप्लिकेशन तक पहुंचने के लिए लगभग तैयार होते हैं।


  1. अपने एप्लिकेशन तक पहुंचें.

    वेब ब्राउज़र का उपयोग करते हुए, निर्दिष्ट बाहरी आईपी पता और उसके बाद :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 वर्चुअल सर्वर इंस्टेंस में एक नया उपयोगकर्ता जोड़ें और कॉन्फ़िगर करें

अब "KubernetesServer" AWS EC2 वर्चुअल सर्वर इंस्टेंस में एक नया ansible-admin उपयोगकर्ता जोड़ें।


ऐसा करने के लिए इस कमांड का उपयोग करें.

 sudo useradd ansible-admin


फिर, ansible-admin उपयोगकर्ता के लिए पासवर्ड सेट करें।

 sudo passwd ansible-admin


साथ ही, आपको sudoers फ़ाइल को संपादित करके उपयोगकर्ता विशेषाधिकारों को कॉन्फ़िगर करने की आवश्यकता है।

 sudo visudo


इस sudoers फ़ाइल में "ansible-admin ALL=(ALL) ALL" जोड़ें।

व्यवस्थापक विशेषाधिकारों के सूचक के साथ AWS EC2 वर्चुअल सर्वर इंस्टेंस टर्मिनल का स्क्रीनशॉट


साथ ही, आपको पासवर्ड प्रमाणीकरण सक्षम करने के लिए /etc/ssh/sshd_config फ़ाइल को संपादित करना होगा।

 sudo vi /etc/ssh/sshd_config 


एडमिन सेटिंग्स के पॉइंटर के साथ AWS EC2 वर्चुअल सर्वर इंस्टेंस टर्मिनल का स्क्रीनशॉट


फिर आपको ये परिवर्तन करने के लिए सेवा को पुनः लोड करना होगा।

 sudo service sshd reload


इस आदेश को निष्पादित करने के परिणामस्वरूप, आप देखेंगे:

Sshd पुनः लोड परिणाम के सूचक के साथ AWS EC2 वर्चुअल सर्वर इंस्टेंस टर्मिनल का स्क्रीनशॉट


अब आप आगे की सभी कमांड के लिए sudo जोड़ने से बचने के लिए इस कमांड का उपयोग कर सकते हैं।

 sudo su - ansible-admin


चरण 15: AWS EC2 वर्चुअल सर्वर इंस्टेंस में कुंजी जेनरेट करें

आप इस आलेख में आगे K8s EC2 वर्चुअल सर्वर इंस्टेंस जैसे दूरस्थ सर्वर को प्रबंधित करने की योजना बना रहे हैं। इसीलिए आपको SSH कुंजियाँ सेट करने की आवश्यकता है।


 ssh-keygen


इस आदेश को निष्पादित करने के परिणामस्वरूप, आप देखेंगे:

ssh-keygen परिणाम के सूचक के साथ AWS EC2 वर्चुअल सर्वर इंस्टेंस टर्मिनल का स्क्रीनशॉट


अब 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 [email protected] 


सफल पासवर्ड रहित एसएसएच प्रमाणीकरण स्थापना परिणाम का स्क्रीनशॉट


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


चरण 17: AnsibleServer EC2 उदाहरण में Ansible होस्ट कॉन्फ़िगर करें

जब आप एक अन्सिबल प्लेबुक चलाते हैं, तो आप उन होस्टों को निर्दिष्ट करते हैं जिन पर इसे चलाना चाहिए। इस चरण में आपको KubernetesServer EC2 इंस्टेंस होस्ट निर्दिष्ट करने की आवश्यकता है। ऐसा करने के लिए आपको वही चरण दोहराने होंगे जो आपने " [मॉड्यूल 6]: एन्सिबल" में पारित किए थे।


आइए निम्नलिखित कमांड निष्पादित करके KubernetesServer EC2 इंस्टेंस होस्ट का पता लगाएं।

 sudo ifconfig 


"ifconfig" फ़ाइल का स्क्रीनशॉट


KubernetesServer EC2 इंस्टेंस होस्ट मिलने के बाद, आप इसे निम्न कमांड निष्पादित करके Ansible होस्ट फ़ाइल में जोड़ सकते हैं।

 sudo vi /etc/ansible/hosts 


एन्सिबल और कुबेरनेट्स होस्ट के साथ "होस्ट" फ़ाइलों का स्क्रीनशॉट


आप संदर्भ के रूप में "[कुबेरनेट्स]" भी जोड़ सकते हैं

चरण 18: कुबेरनेट्स कार्यों के लिए एक नई अन्सिबल प्लेबुक बनाएं

अब जबकि Kubernetes पूरी तरह तैयार हो चुका है और उपयोग के लिए तैयार है, आप अपनी पाइपलाइन के लिए Kubernetes कार्यों के साथ एक नई Ansible प्लेबुक बना सकते हैं। यह प्लेबुक Ansible को आपके ऐप को Kubernetes क्लस्टर पर kubectl कमांड के साथ चलाने देगा।


यहां बताया गया है कि आप यह कैसे कर सकते हैं:


  1. एक नई Ansible प्लेबुक फ़ाइल बनाकर प्रारंभ करें। बस इस आदेश का प्रयोग करें.
 touch kubernetes-hello-app.yml


  1. फिर, नव निर्मित hello-app.yml फ़ाइल को संपादित करें। इस आदेश के साथ संपादन के लिए इसे खोलें।
 vi kubernetes-hello-app.yml


  1. फ़ाइल के अंदर, निम्नलिखित टाइप करें:
 --- - 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 प्लेबुक पूरी तरह से सेट हो गए हैं और जाने के लिए तैयार हैं, तो आप इसे जेनकिंस के साथ एकीकृत कर सकते हैं।


  1. जेनकिंस सर्वर → जेनकिंस डैशबोर्ड → नए आइटम पर जाएं।

  2. "सीडी-जॉब" नाम से नया जेनकींस फ्रीस्टाइल प्रोजेक्ट बनाएं।


    नए जेनकींस फ्रीस्टाइल प्रोजेक्ट "सीडी-जॉब" का स्क्रीनशॉट


  3. "ओके" बटन पर क्लिक करें।

  4. "पोस्ट-बिल्ड एक्शन" अनुभाग पर जाएँ।

  5. "पोस्ट-बिल्ड एक्शन जोड़ें" बटन पर क्लिक करें।

  6. "SSH पर निर्मित कलाकृतियाँ भेजें" विकल्प चुनें।

  7. SSH सर्वर के रूप में "AnsibleServer" चुनें।

  8. इस कमांड को "exec कमांड" इनपुट में जोड़ें।


 sudo -u ansible-admin ansible-playbook /opt/docker/kubernetes-hello-app.yml


  1. "लागू करें" और "सहेजें" बटन पर क्लिक करें।

  2. जेनकिंस डैशबोर्ड → “CI_CD_Pipeline” → कॉन्फ़िगर करें → “पोस्ट-बिल्ड एक्शन” अनुभाग पर जाएँ।

  3. "पोस्ट-बिल्ड एक्शन जोड़ें" बटन पर क्लिक करें।

  4. "अन्य प्रोजेक्ट बनाएँ" विकल्प चुनें।

  5. "अन्य प्रोजेक्ट बनाएँ" अनुभाग पर जाएँ।

  6. "केवल तभी ट्रिगर करें जब निर्माण स्थिर हो" विकल्प चुनें।

  7. "प्रोजेक्ट टू बिल्ड" इनपुट में "सीडी-जॉब" जोड़ें।



    "अन्य प्रोजेक्ट बनाएँ" अनुभाग का स्क्रीनशॉट


  8. "लागू करें" और "सहेजें" बटन पर क्लिक करें।


अब आप मान सकते हैं कि पाइपलाइन पूरी तरह से तैयार है और उपयोग के लिए तैयार है।


चरण 20: अंतिम पाइपलाइन संस्करण का परीक्षण

अब अंतिम पाइपलाइन संस्करण का परीक्षण करने का समय आ गया है।


जेनकींस → जेनकींस डैशबोर्ड → "CI_CD_Pipeline" पर नेविगेट करें।


"बिल्ड नाउ" बटन पर क्लिक करें।


परिणाम देखने के लिए, बिल्ड कंसोल लॉग की समीक्षा करें।


बिल्ड कंसोल लॉग का स्क्रीनशॉट


आप देखेंगे कि बिल्ड कंसोल लॉग में "सीडी-जॉब" ट्रिगर किया गया था, और अंतिम स्थिति को सफलता के रूप में चिह्नित किया गया है।

4

इसके अलावा, आप नई डॉकर छवि को जोड़ने की पुष्टि करने के लिए डॉकरहब पर जा सकते हैं।

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


निष्कर्ष

इस आधुनिक सीआई/सीडी पाइपलाइन की स्थापना के लिए बधाई!

आपने बहुत बढ़िया काम किया है और आप असली हीरो हैं!


आपके सभी प्रयासों के लिए धन्यवाद!




लेखक के बारे में

ज़ुफ़र सनगाटोव एक अनुभवी वरिष्ठ सॉफ़्टवेयर इंजीनियर हैं जिन्हें आधुनिक सॉफ़्टवेयर सिस्टम डिज़ाइन करने का शौक है।


ज़ुफ़र सनगाटोव