Jenkins के साथ स्वचालित परिनियोजन
अपने Docker कंटेनर को लक्षित वातावरण में परिनियोजित करने के लिए Jenkins में CI/CD पाइपलाइन बनाएँ।
Jenkins के साथ स्वचालित परिनियोजन, CoddyKit पर DevOps बूटकैंप का एक निःशुल्क पाठ है। यह 4 में से 3वाँ पाठ है। इस अध्ययन पथ के 3 तक कोई भी पाठ पूरा पढ़ना निःशुल्क है — इसके बाद CoddyKit PRO हर पाठ अनलॉक करता है, साथ ही अंतर्निर्मित कोड संपादक और चौबीसों घंटे एआई शिक्षक के साथ व्यावहारिक अभ्यास भी उपलब्ध कराता है। यह DevOps बूटकैंप सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। DevOps बूटकैंप पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
स्वचालित तैनाती का परिचय
Jenkins और Docker के साथ CI/CD के अंतिम पाठ में आपका स्वागत है! आज हम आपके Docker कंटेनरों की तैनाती को स्वचालित करने पर ध्यान देंगे।
स्वचालित तैनाती, बिना किसी मैन्युअल हस्तक्षेप के सॉफ़्टवेयर को उत्पादन या स्टेजिंग वातावरण में जारी करने की प्रक्रिया है। यह सतत डिलीवरी और तैनाती का महत्वपूर्ण भाग है, जो गति, एकरूपता और विश्वसनीयता सुनिश्चित करता है।

तैनाती को स्वचालित क्यों करें
अनुप्रयोगों को मैन्युअल रूप से तैनात करना धीमा, त्रुटिपूर्ण और असंगत हो सकता है। स्वचालन इन चुनौतियों का समाधान करता है:
- गति: नई सुविधाएँ या सुधार तेज़ी से तैनात करें।
- विश्वसनीयता: मानकीकृत प्रक्रियाओं से मानवीय त्रुटियाँ कम करें।
- एकरूपता: सुनिश्चित करें कि हर तैनाती में समान चरणों का पालन हो।
- दक्षता: डेवलपरों को तैनाती के कार्यों के बजाय कोड लिखने पर ध्यान देने का समय दें।
तैनाती पाइपलाइन के चरण
Docker तैनाती के लिए एक सामान्य Jenkins पाइपलाइन में कई महत्वपूर्ण चरण होते हैं:
- निर्माण: Docker इमेज बनाएँ (पिछले पाठों में बताया गया)।
- परीक्षण: इमेज पर स्वचालित परीक्षण चलाएँ।
- भेजना: इमेज को Docker रजिस्ट्री पर भेजें।
- तैनाती: रजिस्ट्री से इमेज प्राप्त करके लक्षित सर्वर पर चलाएँ।
- सत्यापन: पुष्टि करें कि नई तैनाती सही ढंग से काम कर रही है।
आज हम 'तैनाती' और 'सत्यापन' चरणों पर ध्यान देंगे।
लक्षित वातावरण सेट अप करना
Jenkins द्वारा तैनाती करने से पहले आपका लक्षित सर्वर तैयार होना चाहिए। आमतौर पर इसका अर्थ है:
- Docker इंस्टॉल: लक्षित सर्वर पर Docker Engine इंस्टॉल होना चाहिए।
- SSH पहुँच: Jenkins को लक्षित सर्वर तक सुरक्षित Shell (SSH) पहुँच की आवश्यकता होती है।
- उपयोगकर्ता अनुमतियाँ: SSH उपयोगकर्ता के पास Docker कमांड चलाने की अनुमतियाँ होनी चाहिए।
हम आमतौर पर Jenkins के भीतर SSH प्रमाण-पत्रों को सुरक्षित रूप से प्रबंधित करते हैं।
SSH के लिए Jenkins प्रमाण-पत्र
दूरस्थ सर्वर से कनेक्ट करने के लिए Jenkins SSH प्रमाण-पत्रों का उपयोग करता है। आमतौर पर ये SSH उपयोगकर्ता नाम और निजी कुंजी की जोड़ियाँ होती हैं, जिन्हें Jenkins के प्रमाण-पत्र प्रबंधक में सुरक्षित रूप से संग्रहित किया जाता है।
पाइपलाइन परिभाषित करते समय आप Jenkins को विशिष्ट चरणों के लिए इन प्रमाण-पत्रों का उपयोग करने के लिए कह सकते हैं, जिससे वह आपके लक्षित सर्वर पर कमांड चला सके।
बुनियादी तैनाती स्क्रिप्ट का उदाहरण
यहाँ एक सरल शेल स्क्रिप्ट है, जिसे Docker कंटेनर को अपडेट करने के लिए लक्षित सर्वर पर चलाया जा सकता है। यह पुराने कंटेनर को रोकती है, उसे हटाती है, नई इमेज प्राप्त करती है और उसे चलाती है।
APP_NAME और IMAGE_NAME पर्यावरण चरों के रूप में दिए जाएँगे।
#!/bin/bash
# Stop and remove existing container
docker stop ${APP_NAME} || true
docker rm ${APP_NAME} || true
# Pull the new Docker image
docker pull ${IMAGE_NAME}
# Run the new container
docker run -d --name ${APP_NAME} -p 80:80 ${IMAGE_NAME}
echo "Deployment of ${APP_NAME} complete!"Jenkins पाइपलाइन के साथ एकीकरण
Jenkinsfile में आप दूरस्थ होस्ट पर कमांड चलाने के लिए sshPublisher प्लगइन या SSH एजेंट फ़ॉरवर्डिंग के साथ एक सरल sh चरण का उपयोग कर सकते हैं। SSH कॉन्फ़िगर होने पर, बुनियादी sh चरण का उपयोग करके तैनाती चरण इस प्रकार दिख सकता है।
agent { label 'remote-deploy-host' } का अर्थ है कि यह चरण लक्षित सर्वर पर चलता है।
stage('Deploy to Production') {
agent { label 'remote-deploy-host' }
steps {
withEnv([
"APP_NAME=my-webapp",
"IMAGE_NAME=myregistry/my-webapp:latest"
]) {
sh '''
docker stop ${APP_NAME} || true
docker rm ${APP_NAME} || true
docker pull ${IMAGE_NAME}
docker run -d --name ${APP_NAME} -p 80:80 ${IMAGE_NAME}
echo "Deployment successful!"
'''
}
}
}क्रमिक अपडेट प्राप्त करना
बिना सेवा बंद किए तैनाती के लिए केवल रोकना और फिर शुरू करना पर्याप्त नहीं है। आमतौर पर आप इस तरह की रणनीति का उपयोग करेंगे:
- क्रमिक अपडेट: पुराने कंटेनरों को एक-एक करके धीरे-धीरे नए कंटेनरों से बदलें और सेवा उपलब्धता सुनिश्चित करें।
- ब्लू/ग्रीन तैनाती: नए संस्करण (ग्रीन) को पुराने संस्करण (ब्लू) के साथ तैनात करें, फिर ट्रैफ़िक को नए संस्करण पर भेज दें।
Jenkins इनका समन्वय कर सकता है, लेकिन Docker Swarm या Kubernetes जैसे उपकरण अधिक उन्नत रणनीतियों के लिए मूलभूत समर्थन देते हैं।
तैनाती का सत्यापन
तैनाती के बाद यह सत्यापित करना बहुत महत्वपूर्ण है कि अनुप्रयोग सही ढंग से चल रहा है। इसमें निम्नलिखित शामिल हो सकते हैं:
- स्वास्थ्य जाँच: अनुप्रयोग के स्वास्थ्य एंडपॉइंट पर सरल HTTP GET अनुरोध।
- लॉग की निगरानी: त्रुटियों के लिए कंटेनर लॉग जाँचें।
- एकीकरण परीक्षण: नई तैनात की गई आवृत्ति पर परीक्षणों का एक छोटा समूह चलाएँ।
इन जाँचों को स्वचालित करने के लिए आपकी Jenkins पाइपलाइन में 'सत्यापन' चरण शामिल किया जा सकता है।
अपने ज्ञान की जाँच करें
तैनाती चरण के लिए निम्नलिखित Jenkinsfile अंश पर विचार करें। docker stop ${APP_NAME} || true का मुख्य उद्देश्य क्या है?
पुनरावलोकन: स्वचालित तैनाती
बहुत अच्छा! आपने Jenkins और Docker के साथ स्वचालित तैनाती का तरीका सीख लिया है।
- स्वचालित तैनाती तेज़, विश्वसनीय और एकरूप रिलीज़ सुनिश्चित करती है।
- लक्षित वातावरणों में Docker और SSH पहुँच आवश्यक है।
- Jenkins दूरस्थ सर्वरों से कनेक्ट करने के लिए सुरक्षित प्रमाण-पत्रों का उपयोग करता है।
- तैनाती स्क्रिप्ट आमतौर पर पुराने कंटेनरों को रोकती हैं, नई इमेज प्राप्त करती हैं और नए कंटेनर शुरू करती हैं।
- सफल तैनाती की पुष्टि के लिए सत्यापन चरण बहुत महत्वपूर्ण हैं।
इसके साथ Jenkins और Docker के हमारे CI/CD पाठ्यक्रम का समापन होता है। इन शक्तिशाली उपकरणों में निपुणता पाने के लिए अभ्यास करते रहें!
एआई शिक्षक के साथ DevOps बूटकैंप सीखें — निःशुल्क
अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।
- पाठ्यक्रम
- 142
- पाठ
- 568
अक्सर पूछे जाने वाले प्रश्न
क्या “Jenkins के साथ स्वचालित परिनियोजन” पाठ निःशुल्क है?
हाँ — DevOps बूटकैंप अध्ययन पथ के 3 तक कोई भी पाठ, जिसमें “Jenkins के साथ स्वचालित परिनियोजन” भी शामिल है, यहाँ वेब पर पूरा पढ़ना निःशुल्क है। इसके बाद CoddyKit PRO हर पाठ अनलॉक करता है, साथ ही अंतर्निर्मित कोड संपादक और चौबीसों घंटे एआई शिक्षक के साथ इंटरैक्टिव अभ्यास भी उपलब्ध कराता है। DevOps बूटकैंप पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
“Jenkins के साथ स्वचालित परिनियोजन” में मैं क्या सीखूँगा?
अपने Docker कंटेनर को लक्षित वातावरण में परिनियोजित करने के लिए Jenkins में CI/CD पाइपलाइन बनाएँ। आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ DevOps बूटकैंप का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।
क्या DevOps बूटकैंप शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?
पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर DevOps बूटकैंप शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 4 में से 3वाँ पाठ है।
“Jenkins के साथ स्वचालित परिनियोजन” पाठ पूरा करने में कितना समय लगता है?
CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।
क्या मैं इस DevOps बूटकैंप पाठ में कोड लिख और चला सकता हूँ?
हाँ। हर DevOps बूटकैंप पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।
इस पाठ्यक्रम के सभी पाठ
- Jenkins का परिचय
- Jenkins के साथ Docker इमेज बनाना
- Jenkins के साथ स्वचालित परिनियोजन
- Jenkinsfile से कोड के रूप में Jenkins Pipeline