working aws codedeploy devops tool
AWS कोडडिप का उपयोग करके स्वचालित तैनाती पर ट्यूटोरियल:
में AWS DevOps टूल का भाग 2 , हमने देखा कि कैसे M2en का उपयोग करके J2EE परियोजना के निर्माण के लिए CodeBuild सेवा का उपयोग किया गया था।
इस ट्यूटोरियल में, हम देखेंगे कि कैसे S3 बाल्टी में संग्रहित विरूपण साक्ष्य WAR फ़ाइल कोडकोड सेवा का उपयोग करके टॉमकैट एप्लिकेशन सर्वर पर तैनाती के लिए उपयोग की जा सकती है।
जांच करें => DevOps ट्रेनिंग पर आदर्श गाइड
AWS CodeDeploy एक तैनाती सेवा है जो एप्लिकेशन की तैनाती को Amazon EC2 Linux या Windows इंस्टेंसेस में स्वचालित करती है।
यह ट्यूटोरियल यह भी समझाएगा कि जेनकिंस को कोडडिप्लॉय के साथ कैसे एकीकृत किया जा सकता है।
पूर्व आवश्यक:
- AWS के साथ खाता अधिमानतः एक निशुल्क स्तरीय है।
- अच्छा और तेज इंटरनेट कनेक्शन।
- AWS क्षेत्र का उपयोग किया जाता है - एशिया प्रशांत (सिंगापुर)।
- अमेज़ॅन लिनक्स या आरएचईएल ईसी 2 उदाहरण।
- EC2 उदाहरण पर टॉमकैट स्थापित किया गया।
ध्यान दें: सामग्री को तैनात करने के लिए AWS CodeCommit रिपॉजिटरी CodeDeploy सेवा के लिए समर्थित नहीं है। केवल S3 और GitHub समर्थित हैं।
आप क्या सीखेंगे:
- सेटअप कोडडिप्लोय
- Amazon Linux EC2 इंस्टेंस लॉन्च करें
- S3 के साथ AWS CodeDeploy को एकीकृत करना
- CodeDeploy Application बनाएं
- एडब्ल्यूएस कोडप्लाइ के साथ जेनकिंस एकीकरण
- निष्कर्ष
- अनुशंसित पाठ
सेटअप कोडडिप्लोय
AWS CodeDeploy को EC2 उदाहरण और S3 बाल्टी को एक्सेस करने के लिए दो संस्थाओं के साथ काम करने की आवश्यकता होगी, जहां कलाकृतियों (WAR फ़ाइल) को परिनियोजन के लिए संग्रहीत किया जाता है। उन आईएएम तक पहुंचने के लिए कोडडाइप सेवा के लिए अनुमति प्रदान करने के लिए, भूमिकाएं स्थापित करनी होंगी। IAM भूमिकाओं को IAM उपयोगकर्ताओं के लिए परिभाषित नहीं किया गया है, लेकिन उनके पास केवल संस्थाओं तक पहुंच है।
# 1) बनाएँ पहली भूमिका EC2 उदाहरण का उपयोग करने के लिए CodeDeploy सेवा के लिए।
IAM लॉन्च करें और पर क्लिक करें भूमिकाएँ-> भूमिका बनाएँ।
के अंतर्गत AWS सेवा पर क्लिक करें EC2 -> अपने उपयोग के मामले का चयन करें -> EC2 और पर क्लिक करें अगला-> अनुमतियाँ।
को चुनिए AWSCodeDeployRole नीति नाम और क्लिक के तहत अगला-> समीक्षा करें।
एक भूमिका नाम दर्ज करें और पर क्लिक करें भूमिका बनाएँ।
अंत में, इस भूमिका के लिए ट्रस्ट संबंध को संपादित करें ताकि यह सुनिश्चित हो सके कि कोडडेप्लो सेवा समग्र या विशिष्ट क्षेत्रों / अंतिम बिंदुओं तक पहुँच योग्य है।
इनर ज्वाइन आउटर जॉइन लेफ्ट जॉइन राइट राइट जॉइन
भूमिका पर क्लिक करें और नीचे दिखाए अनुसार विश्वास संबंध को अपडेट करें।
नीति में, EC2 को कोडित करने के लिए बदलें और पर क्लिक करें ट्रस्ट पॉलिसी को अपडेट करें।
दो) बनाएँ दूसरी भूमिका कोड 3 सेवा का उपयोग करने के लिए S3 बाल्टी का उपयोग करने के लिए EC2 उदाहरण के लिए।
इस भूमिका के लिए उपरोक्त चरणों को दोहराएँ और नीचे दर्ज करें:
- के लिए जाओ IAM -> भूमिकाएँ -> भूमिका बनाएँ।
- AWS सेवा के तहत, EC2 का चयन करें।
- उसके तहत अपने उपयोग के मामले को फिर से चुनें और EC2 पर क्लिक करें और बटन पर क्लिक करें अगला-> अनुमतियाँ।
- संलग्न अनुमति नीति स्क्रीन में, चयन करें AmazonS3ReadOnlyAccess और बटन पर क्लिक करें अगला-> समीक्षा करें।
- भूमिका का नाम बताइए HW-Codedeploy-EC2-S3 और पर क्लिक करें भूमिका बनाएँ।
दोनों भूमिकाएं अब उपलब्ध होनी चाहिए।
Amazon Linux EC2 इंस्टेंस लॉन्च करें
इस खंड में, अब हम EC2 उदाहरण का प्रावधान करते हैं।
उदाहरण का प्रावधान करते समय भूमिका का चयन करना सुनिश्चित करें HW-Codedeploy-EC2-S3 दौरान इंस्टेंस विवरण कॉन्फ़िगर करें कदम। इसके अलावा, ओपन पोर्ट 8080 बनाना सुनिश्चित करें।
इसके साथ ही, हमें इंस्टॉल करने की भी आवश्यकता होगी CodeDeploy Agent और टॉमकैट एक एप्लिकेशन सर्वर के रूप में जिसका उपयोग हमारे आवेदन की तैनाती के लिए किया जाएगा।
# 1) Amazon Linux उदाहरण पर CodeDeploy Agent स्थापित और कॉन्फ़िगर करें
CodeDeploy एजेंट तैनाती में मदद करता है और उसे हर उस उदाहरण (वातावरण) में स्थापित करना होता है जहाँ पर तैनाती की जाएगी।
लिनक्स उदाहरण में लॉग इन करें और उपयोग किए जा रहे क्षेत्र के अनुसार एजेंट को डाउनलोड करें। हमारे मामले में, यह सिंगापुर क्षेत्र है जहां पहचानकर्ता है ap-southeast-1.
एजेंट को डाउनलोड करने का आदेश प्रारूप में होगा:
wget https: // aws-codedeploy-। s3.amazonaws.com/latest/install
# 2) EC2 उदाहरण पर टॉमकैट स्थापित करें
- टॉमकैट को स्थापित और चलाने के लिए क्रम में निम्न चरण करें।
yum इंस्टॉल करें tomcat7 tomcat7-webapps tomcat7-docs-webapp tomcat7-admin-webapps
- एप्लिकेशन प्रबंधक के लिए टॉमकैट उपयोगकर्ता को सक्षम करें। /Etc/tomcat7/tomcat-users.xml फ़ाइल में दिखाए गए परिवर्तन करें
- अंत में, टॉमकैट सेवा शुरू करें।
सेवा tomcat7 प्रारंभ
- प्रक्षेपण टॉमकैट वेब एप्लीकेशन मैनेजर और जांचें कि क्या यह URL http: //: 8080 / manager का उपयोग करके काम कर रहा है
S3 के साथ AWS CodeDeploy को एकीकृत करना
जैसा कि भाग 2 में उल्लेख किया गया है कि कोड डिपॉजिट केवल S3 और GitHub को कोड रिपॉजिटरी के रूप में समर्थन करता है जिसका उपयोग एप्लिकेशन के नवीनतम संस्करणों को तैनात करने के लिए किया जाता है। चूंकि हमारी एप्लिकेशन WAR फ़ाइल S3 बाल्टी में संग्रहीत है, हमें यह सुनिश्चित करने की आवश्यकता है कि बनाए रखा गया प्रारूप ज़िप फ़ाइल है।
इसका अर्थ है कि WAR फ़ाइल एक ज़िप फ़ाइल में होनी चाहिए जो कि कोडडेप्लो का उपयोग करके तैनाती प्रक्रिया द्वारा समर्थित है।
- लिनक्स उदाहरण पर AWS CLI (कमांड लाइन इंटरफ़ेस) को भी स्थापित करने की आवश्यकता है। कृपया देखें यूआरएल स्थापित करने के लिए।
- W3 को S3 बाल्टी से डाउनलोड करने के लिए लिनक्स उदाहरण में निम्नलिखित चरण चलाएँ। निम्नलिखित चरणों का निर्माण मशीन पर आम तौर पर किया जाना चाहिए।
AWS_ACCESS_KEY_ID = सेट करें
AWS_SECRET_ACCESS_KEY = सेट करें
AWS_DEFAULT_REGION = ap-southeast-1 सेट करें
सीडी / ऑप्ट / निरंजन
aws s3 cp s3: //hwcodebuildbucket/HWJavaWebTarget/target/AWS-HelloWorld-1.0.0.war / opt / niranjan
- CodeDeploy एक का उपयोग करता है appspec.yml फ़ाइल जिसमें EC2 उदाहरणों में परिनियोजन निर्देश हैं। यह फ़ाइल एक फ़ोल्डर की जड़ में होनी चाहिए जहां एप्लिकेशन WAR फ़ाइल डाउनलोड की जाती है।
नीचे दिखाए अनुसार appspec.yml फ़ाइल और स्क्रिप्ट फ़ोल्डर बनाएँ:
ईवेंट्स परिनियोजन के दौरान निम्न क्रम में चलते हैं।
(1) ApplicationStop
# 2) पहले
# 3) स्थापित करें (फ़ाइल अनुभाग कहा जाता है और WAR फ़ाइल की प्रतिलिपि बनाई गई है)
# 4) ApplicationStart
- फ़ोल्डर पदानुक्रम का उपयोग किया जाता है
/ ऑप्ट / निरंजन
appspec.yml
AWS-HelloWorld-1.0.0.war
स्क्रिप्ट
start_application
stop_application
uninstall_war_file
- लिपियों सामग्री
stop_application:
curl –user tomcat: tomcat http://ec2-54-169-56-238.ap-southeast-1.compute.amazonaws.com:8080/manager/text/stop?path=AWS-HelloWorld-1.0
start_application:
curl –user tomcat: tomcat http://ec2-54-169-56-238.ap-southeast-1.compute.amazonaws.com:8080/manager/text/start?path=AWS-HelloWorld-1.0
uninstall_war_file
rm -rf /var/lib/tomcat7/webapps/AWS-HelloWorld-1.0.0.war
rm -rf /var/lib/tomcat7/webapps/AWS-HelloWorld-1.0.0
- सामग्री को ज़िप करें और ज़िप फ़ाइल को S3 बाल्टी में अपलोड करें। सुनिश्चित करें कि बाल्टी पर VERSIONING सक्षम है।
zip -r AWS-HelloWorld-1.0.0.war.zip AWS-HelloWorld-1.0.0.war appspec.yml स्क्रिप्ट
aws s3 cp /opt/niranjan/AWS-HelloWorld-1.0.0.war.zip
s3: //hwcodebuildbucket/HWJavaWebTarget/target/AWS-HelloWorld-1.0.0.war.zip
S3 बाल्टी पर अपलोड की गई ज़िप फ़ाइल निम्न स्क्रीन में देखी गई है:
आदेशों को एक-एक करके चलाने के बजाय आप एक निष्पादन योग्य स्क्रिप्ट बना सकते हैं और उपरोक्त आदेशों को इसमें जोड़ सकते हैं और इसे हर बार चला सकते हैं जब बिल्ड से एक नया एप्लिकेशन WAR फ़ाइल उपलब्ध होता है।
CodeDeploy Application बनाएं
CodeDeploy एप्लीकेशन यह सुनिश्चित करने के लिए बनाया गया है कि WAR फ़ाइल का उचित संशोधन उपयुक्त वातावरण में तैनात किया जाए जो EC2 उदाहरण है।
CodeDeploy सेवा लॉन्च करें और पर क्लिक करें एप्लिकेशन बनाएं बटन।
आवेदन का नाम, तैनाती समूह (दर्ज करें) उदाहरण: QA-Env) और EC2 इंस्टेंस चला रहे हैं।
प्रपत्र के अंत में सेवा की भूमिका का चयन करें। यह दूसरी भूमिका है जिसे पहले ट्यूटोरियल में बनाया गया था।
पर क्लिक करें एप्लिकेशन बनाएं बटन।
परिनियोजन समूह (QA-Env) का चयन करें और चुनें कार्य -> नया संशोधन नियुक्त करें।
चूंकि ज़िप फ़ाइल S3 बाल्टी में है, इस प्रकार रिविजन स्थान दर्ज करें:
s3: //hwcodebuildbucket/HWJavaWebTarget/target/AWS-HelloWorld-1.0.0.war.zip
पर क्लिक करें तैनाती बटन। नीचे दिखाए अनुसार तैनाती सफल है।
WAR फ़ाइल को सफलतापूर्वक tomcat webapps निर्देशिका में कॉपी किया जाता है।
यह सुनिश्चित करने के लिए एप्लिकेशन URL ब्राउज़ करें कि एप्लिकेशन सफलतापूर्वक तैनात है।
एडब्ल्यूएस कोडप्लाइ के साथ जेनकिंस एकीकरण
जैसा कि हमने पिछले 2 ट्यूटोरियल में देखा है, जेनकिंस AWS DevOps टूल के साथ बहुत अच्छी तरह से एकीकृत करता है। कोडपीपल के साथ जेनकिंस को एकीकृत करने के लिए, प्लगइन को स्थापित करने की आवश्यकता है। क्लिक यहां CodeDeploy प्लगइन डाउनलोड और स्थापित करने के लिए।
सबसे पहले IAM उपयोगकर्ता के लिए प्रवेश और गुप्त कुंजी दर्ज करें जेनकिंस -> विन्यास ।
निष्कर्ष
अब तक हमने देखा कि किस तरह से कोडडेपल का उपयोग S3 बकेट में संग्रहीत J2EE एप्लिकेशन WAR फ़ाइल को EC2 उदाहरण में संग्रहीत करने के लिए किया जा सकता है जो कि टॉमकैट एप्लिकेशन सर्वर चला रहा है।
इन तीन उपकरणों की श्रृंखला अर्थात् कोडकॉमिट, कोडबील और कोडडिप्लॉय कंटीन्यूअस इंटीग्रेशन और कंटीन्यूअस डिलीवरी डिलेवरीज़ ऑफ़ द डेप्स में मदद करते हैं। इन 3 उपकरणों के साथ, AWS कोडपिपलाइन एक अन्य उपकरण है जो एप्लिकेशन डिलीवरी के अंत में दृश्य को समाप्त करने में मदद करता है।
लोचदार बीनस्टॉक का उपयोग करके AWS के लिए .NET वेब अनुप्रयोग परिनियोजन के बारे में अधिक जानने के लिए हमारे आगामी ट्यूटोरियल के लिए बने रहें।
PREV ट्यूटोरियल | अगले ट्यूटोरियल
अनुशंसित पाठ
- क्लाउड बिल्ड और परिनियोजन के लिए शीर्ष AWS DevOps टूल
- DevOps में निरंतर तैनाती
- क्लाउड में DevOps कार्यान्वयन के लिए AWS कोडकॉमिट ट्यूटोरियल
- DevOps में सतत वितरण
- DevOps में निरंतर परीक्षण
- DevOps में वितरण की छोटी वृद्धि का महत्व
- AWS CodeBuild ट्यूटोरियल: मावेन बिल्ड से कोड निकालना
- DevOps स्वचालन: DevOps अभ्यास में स्वचालन कैसे लागू होता है