আমার পূর্ববর্তী প্রবন্ধে, আমি মাইক্রোসার্ভিসের আকর্ষণীয় জগতের সন্ধান করেছি - । এটি ছিল মাইক্রোসার্ভিসেস এবং তাদের নিদর্শনগুলির উপর আমার ব্যাপক নিবন্ধ সিরিজের শুরু। মাইক্রোসার্ভিস আর্কিটেকচার প্যাটার্নস পার্ট 1: ডিকম্পোজিশন প্যাটার্নস যদিও যৌক্তিক পদক্ষেপটি এই সিরিজের পার্ট 2 এর সাথে চালিয়ে যাওয়া হবে, আমি সিদ্ধান্ত নিয়েছি যে পরবর্তী যে জিনিসটি আমি অন্বেষণ করতে চাই এবং আপনাকে বলতে চাই তা হল এই মাইক্রোসার্ভিসগুলিকে নির্বিঘ্নে শেষ ব্যবহারকারীর কাছে পৌঁছে দেওয়ার গুরুত্বপূর্ণ প্রক্রিয়া। বিষয়বস্তু ওভারভিউ প্রেরণা [মডিউল 1]: AWS EC2 ভার্চুয়াল সার্ভার [মডিউল 2]: জেনকিন্স সার্ভার [মডিউল 3]: Git এবং Github [মডিউল 4]: Apache Maven [মডিউল 5]: ডকার [মডিউল 6]: উত্তরযোগ্য [মডিউল 7]: কুবারনেটস উপসংহার লেখক সম্পর্কে প্রেরণা CI/CD হল গ্রাহকদের কাছে অ্যাপ সরবরাহ করার একটি কৌশল, যা অ্যাপ বিকাশের বিভিন্ন পর্যায়ে অটোমেশন যোগ করে অর্জন করা হয়। আমি বিশ্বাস করি যে CI/CD (কন্টিনিউয়াস ইন্টিগ্রেশন এবং কন্টিনিউয়াস ডিপ্লোয়মেন্ট) উপলব্ধি করা ডেভেলপারদের ক্ষমতায়িত করতে পারে যাতে প্রকল্পের ভান্ডারের সীমানা ছাড়িয়ে ব্যাকএন্ড প্রকল্পের নিদর্শনগুলি কীভাবে বিদ্যমান তা আরও ভালভাবে বোঝার জন্য। এই বোধগম্যতা একজন বিকাশকারীর দৃষ্টিভঙ্গিতে একটি মৌলিক পরিবর্তনও তৈরি করতে পারে। কেবলমাত্র তাদের কাজকে কোডের লাইন হিসাবে দেখার পরিবর্তে, তারা একটি মূল্যবান পণ্য হিসাবে তাদের প্রকল্পের বিস্তৃত প্রেক্ষাপটকে আলিঙ্গন করতে শুরু করতে পারে। এই নিবন্ধে, আমরা ব্যবহারিক প্রয়োগের মাধ্যমে সিআই/সিডি প্রক্রিয়াটিকে রহস্যময় করার লক্ষ্য রাখি। আমরা আপনাকে একটি ধাপে ধাপে টিউটোরিয়ালের মাধ্যমে নিয়ে যাব, এটিকে মডিউল দ্বারা মডিউল ভেঙ্গে, যেখানে আপনি ম্যানুয়ালি একটি CI/CD পাইপলাইন তৈরি করবেন। এটি করার জন্য, আমরা এবং এর মত সমসাময়িক DevOps টুলের শক্তি ব্যবহার করব। সুতরাং, আসুন এই যাত্রা শুরু করা যাক! AWS, Docker, Kubernetes, Ansible, Git, Apache Maven Jenkins [মডিউল 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: "অ্যাপ্লিকেশন এবং ওএস ইমেজ (অ্যামাজন মেশিন ইমেজ)" বিভাগ কনফিগার করুন বিভাগে যান। "Application and OS Images (Amazon Machine Image)" ভার্চুয়াল সার্ভারের সাথে খেলতে: বিনামূল্যে আপনার ভার্চুয়াল সার্ভারের জন্য অপারেটিং সিস্টেম নির্বাচন করুন - । অ্যামাজন লিনাক্স বিভাগে, সহ একটি মেশিন নির্বাচন করুন৷ Amazon Machine Image (AMI) বিনামূল্যের স্তরের যোগ্য ট্যাগ ধাপ 6: "ইনস্ট্যান্স টাইপ" বিভাগটি কনফিগার করুন বিভাগে যান। "ইনস্ট্যান্স টাইপ" ভার্চুয়াল সার্ভারের সাথে খেলতে: বিনামূল্যে বিভাগে সহ একটি প্রকার নির্বাচন করুন। ইন্সট্যান্স টাইপ মুক্ত স্তরের যোগ্য ট্যাগ আমার জন্য এটি t2.micro (পরিবার: t2 1cCPU 1 GiB মেমরি বর্তমান প্রজন্ম:সত্য)। ধাপ 7: "সঞ্চয়স্থান কনফিগার করুন" বিভাগটি কনফিগার করুন বিভাগে যান। "সঞ্চয়স্থান কনফিগার করুন" ভার্চুয়াল সার্ভারের সাথে খেলতে: বিনামূল্যে ডিফল্ট সেটিংস পরিবর্তন করবেন না। বিনামূল্যের স্তরের যোগ্য গ্রাহকরা পেতে পারেন। 30 GB EBS জেনারেল পারপাস (SSD) বা ম্যাগনেটিক স্টোরেজ ধাপ 8: "নেটওয়ার্ক সেটিংস" বিভাগটি কনফিগার করুন বিভাগে যান। "নেটওয়ার্ক সেটিংস" আপনাকে আপনার ভার্চুয়াল সার্ভারের নিরাপত্তা সেট আপ করতে হবে। এটা করতে, বোতামে ক্লিক করুন। "নিরাপত্তা গোষ্ঠী তৈরি করুন" বিভাগে আপনার নতুন নিরাপত্তা গোষ্ঠীর নাম যোগ করুন। "নিরাপত্তা গোষ্ঠীর নাম" বিভাগে আপনার নতুন নিরাপত্তা গোষ্ঠীর একটি বিবরণ যোগ করুন। "বিবরণ" ডিফল্টরূপে, আপনার ভার্চুয়াল সার্ভারটি ( ) এর মাধ্যমে অ্যাক্সেসযোগ্য। আপনার যদি অতিরিক্ত সংযোগ প্রকারের প্রয়োজন হয়, অতিরিক্ত অন্তর্মুখী নিরাপত্তা গোষ্ঠীর নিয়মগুলি যোগ করে সেগুলি যোগ করুন৷ প্রকার - SSH, প্রোটোকল - TCP, পোর্ট - 22 ধাপ 9: "কী জোড়া (লগইন)" বিভাগটি কনফিগার করুন বিভাগে যান। "কী জোড়া (লগইন)" আপনি যদি এখনও এটি তৈরি না করে থাকেন তবে একটি নতুন কী-জোড়া তৈরি করুন৷ আপনি যদি এখনও তৈরি না করে থাকেন: "কী-পেয়ার" বোতামে ক্লিক করুন। "নতুন কী জোড়া তৈরি করুন" বিভাগে আপনার নতুন কী-জোড়ার একটি নাম দিন। "কী জোড়ার নাম" কী-পেয়ার টাইপ বা নির্বাচন করুন। আমি প্রকার নির্বাচন করি। RSA ED25519 RSA ব্যক্তিগত কী ফাইল বিন্যাস নির্বাচন করুন. এবং এর পছন্দ। আমি ফরম্যাট বেছে নিই। .pem .ppk- .pem বোতামে ক্লিক করুন। "কী জোড়া তৈরি করুন" আপনি একটি পপ-আপ উইন্ডো পাবেন যা আপনাকে প্রাইভেট কী ফাইল ডাউনলোড করতে বলবে। সম্মত হন এবং আপনার কম্পিউটারে ফাইলটি ডাউনলোড করুন। ধাপ 10: EC2 ভার্চুয়াল সার্ভার ইনস্ট্যান্স চালু করুন বোতামে ক্লিক করে EC2 ভার্চুয়াল সার্ভার ইনস্ট্যান্স চালু করুন। "লঞ্চ ইনস্ট্যান্স" EC2 ভার্চুয়াল সার্ভার ইনস্ট্যান্স তৈরির প্রক্রিয়া শেষ হওয়ার পরে, আপনি নিম্নলিখিতগুলি দেখতে পাবেন। তারপরে আপনাকে " বোতামে ক্লিক করে বিভাগে যেতে হবে। সব দৃষ্টান্ত দেখুন" "ইনস্ট্যান্স" এখন আপনি দেখতে পাচ্ছেন যে আপনার AWS EC2 ভার্চুয়াল সার্ভার ইনস্ট্যান্স চলছে৷ [মডিউল 2]: জেনকিন্স সার্ভার এখন, EC2 ভার্চুয়াল সার্ভার ইনস্ট্যান্সে জেনকিন্স সার্ভার কনফিগার করা যাক। ধাপ 1: একটি AWS EC2 ভার্চুয়াল সার্ভার উদাহরণ তৈরি করুন জেনকিন্স চালানোর জন্য আপনার একটি ভার্চুয়াল সার্ভার প্রয়োজন। বিভাগে এবং JenkinsServer নামের একটি EC2 ভার্চুয়াল সার্ভারের উদাহরণ তৈরি করুন। [মডিউল 1] থেকে নির্দেশাবলী অনুসরণ করুন: এই ধাপটি শেষ করার জন্য এই টিউটোরিয়ালের AWS EC2 ভার্চুয়াল সার্ভার একটি নিরাপত্তা গ্রুপ সেটআপ যোগ করতে ভুলবেন না. এটি এবং যথাক্রমে এবং পোর্টে কাজ করার অনুমতি দেয়। জেনকিন্স এসএসএইচকে 8080 22 আপনার EC2 ভার্চুয়াল সার্ভারের উদাহরণকে আলাদা করতে নামটি ব্যবহার করুন। "জেনকিন্স সার্ভার" একটি নতুন AWS EC2 উদাহরণের জন্য নিরাপত্তা গোষ্ঠী এবং তৈরি করুন। আপনি নিবন্ধে তাদের আরও পুনরায় ব্যবহার করতে পারেন। "জেনকিন্স সার্ভার" "CI_CD_Pipeline" "CI_CD_Pipeline_Key_Pair" ধাপ 2: একটি AWS EC2 ভার্চুয়াল সার্ভার ইনস্ট্যান্সের সাথে সংযোগ করুন যান → → AWS কনসোলের হোম পেজে EC2 ম্যানেজমেন্ট কনসোল ড্যাশবোর্ড ইনস্ট্যান্স। তারপরে আপনার নির্বাচন করা উচিত এবং তারপরে বোতামটি ক্লিক করুন। জেনকিন্স সার্ভার "সংযোগ" তারপর আপনি এই ওয়েব পেজ দেখতে পাবেন. আপনাকে আবার বোতামে ক্লিক করতে হবে। "সংযোগ" এখন আপনি EC2 ভার্চুয়াল সার্ভার ইনস্ট্যান্স অনলাইন টার্মিনাল দেখতে পারেন। ধাপ 3: জেনকিন্স সংগ্রহস্থল ডাউনলোড করুন এখন আপনাকে আপনার EC2 ভার্চুয়াল সার্ভার ইনস্ট্যান্সে জেনকিন্স ডাউনলোড করতে হবে। এই নির্দেশাবলী অনুসরণ করুন: জেনকিন্স ডাউনলোড যান। ওয়েবপেজে আপনি স্থিতিশীল (LTS) এবং নিয়মিত রিলিজ (সাপ্তাহিক) বিকল্প দেখতে পারেন। 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 এইভাবে প্যাকেজ ম্যানেজার যাচাই করতে পারে যে আপনি যে জেনকিন্স প্যাকেজগুলি ইনস্টল করেছেন তা ঠিক জেনকিন্স প্রকল্প দ্বারা প্রকাশিত, এবং সেগুলিকে টেম্পার করা বা দূষিত করা হয়নি৷ "rpm" ধাপ 5: জাভা ইনস্টল করুন জেনকিন্স চালানোর জন্য, আমাদের EC2 ভার্চুয়াল সার্ভার ইনস্ট্যান্সে ইনস্টল করতে হবে। জাভা ইনস্টল করতে, এই কমান্ডটি ব্যবহার করুন। Java sudo amazon-linux-extras install java-openjdk11 -y এই কমান্ডটি ব্যবহার করে সঠিকভাবে ইনস্টল করা হয়েছে কিনা তা যাচাই করুন: জাভা java -version আপনি এমন কিছু দেখতে পাবেন। ধাপ 6: fontconfig ইনস্টল করুন জেনকিন্স চালানোর জন্য, আপনাকে আমাদের EC2 ভার্চুয়াল সার্ভার ইনস্ট্যান্সে ইনস্টল করতে হবে। fontconfig এই কমান্ড ব্যবহার করুন. sudo yum install fontconfig java-11-openjdk -y Fontconfig হল একটি লাইব্রেরি যা সিস্টেম-ব্যাপী ফন্ট কনফিগারেশন, কাস্টমাইজেশন এবং অ্যাপ্লিকেশন অ্যাক্সেস প্রদানের জন্য ডিজাইন করা হয়েছে। এটি জেনকিন্সের প্রয়োজন কারণ জেনকিন্সের বৈশিষ্ট্য রয়েছে যা ফন্ট রেন্ডার করে। ধাপ 7: জেনকিন্স ইনস্টল করুন পূর্ববর্তী ধাপে, আপনি একটি নির্দিষ্ট Jenkins সংগ্রহস্থল ব্যবহার করার জন্য আপনার 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: নতুন জেনকিন্স পাইপলাইন তৈরি করুন এখন, যেহেতু জেনকিন্স ঠিকঠাক কাজ করছে, আপনি জেনকিন্স পাইপলাইন তৈরি করা শুরু করতে পারেন। জেনকিন্স পাইপলাইন তৈরি করতে আপনাকে একটি নতুন "ফ্রিস্টাইল প্রকল্প" তৈরি করতে হবে। একটি নতুন "ফ্রিস্টাইল প্রকল্প" তৈরি করতে আপনাকে জেনকিন্স ড্যাশবোর্ডে যেতে হবে এবং বোতামে ক্লিক করতে হবে। "নতুন আইটেম" Github "ফ্রিস্টাইল প্রজেক্ট" এর নাম লিখুন ("পাইপলাইন" নামটি আরও ব্যবহার করা হবে) এবং তারপরে বোতামটি ক্লিক করুন। "ঠিক আছে" তারপর পাইপলাইনের প্রদান করুন। বিবরণ তারপর "প্রয়োগ করুন" এবং "সংরক্ষণ করুন" বোতামে ক্লিক করুন। এর পরে, এর মানে হল আপনি পাইপলাইনের ভিত্তি তৈরি করেছেন যা এই টিউটোরিয়ালে নির্মিত হতে চলেছে। [মডিউল 3]: Git এবং Github এখন যেহেতু জেনকিন্স AWS EC2 ভার্চুয়াল সার্ভার ইনস্ট্যান্সে চলছে, আপনি পাইপলাইনের সাথে গিট কনফিগার করতে পারেন। Git হল একটি ডিস্ট্রিবিউটেড ভার্সন কন্ট্রোল সিস্টেম (VCS) যা সফ্টওয়্যার দলগুলিকে একটি বিশেষ ধরনের ডাটাবেসে কোডের প্রতিটি পরিবর্তনের ট্র্যাক রাখতে সাহায্য করার জন্য ডিজাইন করা হয়েছে৷ যদি একটি ভুল করা হয়, বিকাশকারীরা ঘড়িটি ফিরিয়ে দিতে পারে এবং সমস্ত দলের সদস্যদের বাধা কমিয়ে ভুল সংশোধন করতে সহায়তা করতে কোডের আগের সংস্করণগুলির তুলনা করতে পারে। VCS এর জন্য বিশেষভাবে উপযোগী দলগুলি যেহেতু তারা তাদের বিকাশের সময় কমাতে এবং সফল স্থাপনা বাড়াতে সহায়তা করে [1]। মুক্ত এবং ওপেন সোর্স DevOps সবচেয়ে জনপ্রিয় ভার্সন কন্ট্রোল সিস্টেম হিসাবে গিট আমাদেরকে আপনার প্রোজেক্ট Github রিপোজিটরি থেকে আপনার EC2 ভার্চুয়াল সার্ভার ইনস্ট্যান্সে লেটেস্ট কোড টানতে সক্ষম করে যেখানে আপনার জেনকিন্স ইনস্টল করা আছে। ধাপ 1: গিট ইনস্টল করুন গিট ইনস্টল করতে এই কমান্ডটি ব্যবহার করুন। sudo yum install git -y এখন যাচাই করুন গিট কাজ করছে, এই কমান্ডটি ব্যবহার করে। git --version এখন গিট EC2 ভার্চুয়াল সার্ভার উদাহরণে ভাল কাজ করছে। ধাপ 2: জেনকিন্স ড্যাশবোর্ড খুলুন যেহেতু গিট EC2 ভার্চুয়াল সার্ভার উদাহরণে ভাল কাজ করছে, আমরা এখন গিটের সাথে জেনকিন্সকে একীভূত করতে পারি। এই ইন্টিগ্রেশন শুরু করতে আসুন Jenkins Github প্লাগইন ইনস্টল করি। জেনকিন্স ড্যাশবোর্ড বিভাগে যান। ধাপ 3: জেনকিন্স প্লাগইন ম্যানেজার খুলুন বোতামটি ক্লিক করুন এবং তারপরে বোতামটি ক্লিক করুন। "জেনকিন্স পরিচালনা করুন" "প্লাগইনগুলি পরিচালনা করুন" ধাপ 4: Github Jenkins প্লাগইন খুঁজুন বোতামে ক্লিক করুন। "উপলভ্য প্লাগইন" প্লাগইন অনুসন্ধান বাক্স খুঁজুন. Github প্লাগইন নির্বাচন করুন। Github ধাপ 5: Github Jenkins প্লাগইন ইনস্টল করুন প্লাগইন নির্বাচন করুন। এবং তারপর বোতামটি ক্লিক করুন। Github "রিস্টার্ট ছাড়াই ইনস্টল করুন" Github প্লাগইন ডাউনলোড শেষ হওয়ার জন্য অপেক্ষা করুন। হ্যাঁ! Jenkins Github প্লাগইন ইনস্টল করা আছে। ধাপ 6: Github Jenkins প্লাগইন কনফিগার করুন এখন GitHub Jenkins প্লাগইন ইনস্টল করা হয়েছে, আপনি অবশেষে Git এর সাথে জেনকিন্সকে একীভূত করতে এই প্লাগইনটি কনফিগার করতে পারেন। এটি করার জন্য আপনাকে "শীর্ষ পৃষ্ঠায় ফিরে যান" বোতামটি ক্লিক করে মূল পৃষ্ঠায় ফিরে যেতে হবে। তারপরে মূল পৃষ্ঠায়, আপনাকে বোতামটি ক্লিক করতে হবে এবং তারপরে বোতামটি ক্লিক করতে হবে। "জেনকিন্স পরিচালনা করুন" "গ্লোবাল টুল কনফিগারেশন" তারপরে গ্লোবাল টুল কনফিগারেশন ওয়েব পৃষ্ঠায় আপনাকে গিট বিভাগে যেতে হবে। গিট বিভাগে, আপনাকে কম্পিউটারে গিট-এর নাম এবং পথ প্রদান করে গিট কনফিগার করতে হবে। তারপরে এবং বোতামে ক্লিক করুন**।** "প্রয়োগ করুন" "সংরক্ষণ করুন" এখানে, আপনি Jenkins Github প্লাগইন কনফিগার করা শেষ করেছেন। ধাপ 7: পাইপলাইনে গিট একত্রিত করুন এখন, জেনকিন্স গিথুব প্লাগইন ইনস্টল এবং কনফিগার করা হয়েছে, আপনি এখন আপনার পাইপলাইনের মধ্যে এই প্লাগইনটি ব্যবহার করতে সক্ষম। এটি আপনার পাইপলাইনকে অনুমতি দেবে যা আপনি মডিউল 2 এ তৈরি করেছেন নির্দিষ্ট গিটহাব রিপোজিটরি থেকে আপনার প্রোজেক্ট কোড টানতে। ঠিক আছে, এই প্লাগইনটিকে আপনার পাইপলাইনে একীভূত করতে আপনাকে সোর্স কোড ম্যানেজমেন্ট বিভাগে যেতে হবে এবং আপনার পাইপলাইনে গিট বেছে নিতে হবে। তারপর আপনাকে আপনার প্রকল্পের সংগ্রহস্থলের URL প্রদান করতে হবে। যদি আপনার প্রকল্পের সংগ্রহস্থল Github-এ সর্বজনীন হয়, তাহলে আপনাকে শংসাপত্র প্রদান করতে হবে না। যদি প্রকল্পের সংগ্রহস্থলটি গিথুবে ব্যক্তিগত হয় তবে আপনাকে শংসাপত্র সরবরাহ করতে হবে। আপনি পরবর্তী রিপোজিটাইরি URL এর সাথে আমার প্রকল্পটি ব্যবহার করতে পারেন: । https://github.com/Sunagatov/Hello.git শুধু কপি করুন এবং এটিকে " ইনপুটে পেস্ট করুন। তারপর পাইপলাইনের সাথে ইন্টিগ্রেশন গিট শেষ করতে এবং বোতামে ক্লিক করুন। রিপোজিটরি URL" "প্রয়োগ করুন" "সংরক্ষণ করুন" ধাপ 8: পরীক্ষা গিট পাইপলাইনে একত্রিত এখন আপনি Github থেকে একটি প্রকল্প টানতে আপনার আপডেট করা পাইপলাইন ব্যবহার করতে পারেন। এটি করার জন্য আপনাকে **"এখনই তৈরি করুন"** বোতামে ক্লিক করতে হবে। ফলস্বরূপ, আপনি বিল্ড ইতিহাসে একটি সফল বিল্ড দেখতে পাবেন। বিল্ড ইতিহাস থেকে প্রথম বিল্ড খুলুন। এখন আপনি প্রথম বিল্ডের সফল কাজের ফলাফল দেখতে পারেন। আপনি যদি আপনার AWS EC2 টার্মিনাল খোলেন। আপনি পরীক্ষা করতে পারেন যে পাইপলাইন ভাল কাজ করে। শুধু এই কমান্ড ব্যবহার করুন. cd /var/lib/jenkins/workspace/{your pipeline name} এইভাবে আপনি দেখতে পাচ্ছেন যে Github থেকে আপনার প্রকল্পটি আপনার AWS EC2 ভার্চুয়াল সার্ভার উদাহরণে টানা হয়েছে। [মডিউল 4]: Apache Maven একটি বহুল ব্যবহৃত বিল্ড অটোমেশন এবং প্রজেক্ট ম্যানেজমেন্ট টুল সফটওয়্যার ডেভেলপমেন্টে। এটি প্রকল্প নির্ভরতাগুলি পরিচালনা করে এবং একটি সামঞ্জস্যপূর্ণ বিল্ড লাইফসাইকেল প্রদান করে কম্পাইলিং, টেস্টিং এবং প্যাকেজিং কোডের প্রক্রিয়াটিকে প্রবাহিত করে। Maven XML-ভিত্তিক কনফিগারেশন ফাইল (POM ফাইল) নিয়োগ করে প্রকল্পের কাঠামো, নির্ভরতা এবং কাজগুলিকে সংজ্ঞায়িত করতে, যা ডেভেলপারদের দক্ষতার সাথে জটিল সফ্টওয়্যার প্রকল্পগুলি পরিচালনা এবং স্থাপন করতে সক্ষম করে। Apache Maven এখন যেহেতু আপনি পাইপলাইনে Git সংহত করেছেন, আপনি Apache Maven অন্তর্ভুক্ত করে পাইপলাইনটিকে আরও উন্নত করতে পারেন যা আপনাকে আপনার প্রকল্প তৈরি করতে, পরীক্ষা করতে এবং প্যাকেজ করতে সক্ষম করে। এটি করার জন্য আপনাকে আপনার AWS EC2 ভার্চুয়াল সার্ভার উদাহরণে Apache Maven ইনস্টল করতে হবে যেখানে Jenkins এবং Git ইনস্টল করা হয়েছিল। ধাপ 1: Apache Maven ডাউনলোড করুন Apache Maven ডাউনলোড করতে ডিরেক্টরিতে যান। "/opt" cd /opt এবং তারপর এই কমান্ড ব্যবহার করুন. sudo wget https://dlcdn.apache.org/maven/maven-3/3.9.4/binaries/apache-maven-3.9.4-bin.tar.gz এই কমান্ডটি সর্বশেষ অফিসিয়াল Apache Maven ডাউনলোড করবে (অফিসিয়াল Apache Maven ওয়েবসাইটে সর্বশেষ সংস্করণটি দেখুন)। সর্বশেষ অফিসিয়াল Apache Maven রিলিজ খুঁজে পেতে, লিঙ্কটি ব্যবহার করুন। https://maven.apache.org/download.cgi ধাপ 2: আর্কাইভ থেকে Apache Maven বের করুন ডাউনলোড করা সংরক্ষণাগার থেকে Apache Maven বের করতে এই কমান্ডটি ব্যবহার করুন: sudo tar -xvzf apache-maven-*.tar.gz ধাপ 3: JAVA_HOME এবং M2_HOME যোগ করুন এই কমান্ডটি ব্যবহার করে রুট ফোল্ডারে যান। cd ~ এই কমান্ড ব্যবহার করে ফাইল সম্পাদনা করুন। .bash_profile vi .bash_profile এবং M2_HOME ভেরিয়েবল যোগ করুন। JAVA_HOME এর জন্য JDK11-এর পাথ এবং ভেরিয়েবলের জন্য maven ডিরেক্টরির পাথ বরাদ্দ করুন। JAVA_HOME- M2_HOME JDK পাথ খুঁজে পেতে, এই কমান্ডটি ব্যবহার করুন। sudo find / -name java কিভাবে ভিআইএম ব্যবহার করবেন ফাইলটি করতে কীবোর্ড বোতাম টিপুন ডেটা সন্নিবেশ করতে। সম্পাদনা “I” ফাইলটি করতে কীবোর্ড বোতাম টিপুন " esc " এবং লিখুন ":w"। সংরক্ষণ ফাইল থেকে করতে কীবোর্ড বোতাম টিপুন এবং লিখুন । প্রস্থান " esc " ":q" পরিবর্তনগুলি সংরক্ষণ করুন। তারপর, সিস্টেম ভেরিয়েবল রিফ্রেশ করতে এই কমান্ডটি চালান। source .bash_profile যাচাই করতে, এই কমান্ডটি ব্যবহার করুন। $PATH echo $PATH যাচাই করতে, এই কমান্ডটি ব্যবহার করুন। Apache Maven mvn -v আপনি যদি সবকিছু সঠিকভাবে করে থাকেন তবে আপনি Apache Maven এর সংস্করণটি দেখতে সক্ষম হবেন। ধাপ 4: Apache Maven Jenkins প্লাগইন ইনস্টল করুন যেহেতু Apache Maven একটি EC2 উদাহরণে ব্যবহার করা যেতে পারে, আপনি পাইপলাইনের সাথে এটিকে একীভূত করতে Apache Maven প্লাগইন ইনস্টল করতে পারেন। এটি অর্জন করতে, এই পদক্ষেপগুলি অনুসরণ করুন: "ড্যাশবোর্ড" → "জেনকিন্স পরিচালনা করুন" → "প্লাগইনগুলি পরিচালনা করুন" → "উপলব্ধ" এ নেভিগেট করুন। অনুসন্ধান বাক্সে, লিখুন। "Maven" প্লাগইন নির্বাচন করুন। "Maven ইন্টিগ্রেশন" ডাউনলোড প্রক্রিয়া শেষ হওয়ার জন্য অপেক্ষা করুন। এবং তারপর বোতামটি ক্লিক করুন। "শীর্ষ পৃষ্ঠায় ফিরে যান" ধাপ 5: Apache Maven Jenkins প্লাগইন কনফিগার করুন Apache Maven Jenkins প্লাগইনটির সফল ইনস্টলেশনের সাথে, আপনি এখন এই প্লাগইনটিকে পাইপলাইনের মধ্যে ব্যবহার করতে পারবেন যা আপনি মডিউল 2 এবং 3 এ তৈরি এবং আপডেট করেছেন। এটি করতে, এই পদক্ষেপগুলি অনুসরণ করুন: এ যান "ড্যাশবোর্ড" → "জেনকিন্স পরিচালনা করুন" → "গ্লোবাল টুল কনফিগারেশন" → "জেডিকে" "JDK যোগ করুন" বোতামে ক্লিক করুন। "স্বয়ংক্রিয়ভাবে ইনস্টল করুন" আনচেক করুন। তারপর বিভাগে যান। বোতামে ক্লিক করুন। "Maven" "Maven যোগ করুন" "স্বয়ংক্রিয়ভাবে ইনস্টল করুন" আনচেক করুন। তারপর এবং পাথ যোগ করুন। নাম MAVEN_HOME এবং বোতামে ক্লিক করুন। "প্রয়োগ করুন" "সংরক্ষণ করুন" এখানে, আপনি Apache Maven Jenkins প্লাগইন কনফিগার করা শেষ করেছেন। ধাপ 6: পাইপলাইনে Apache Maven সংহত করুন এখন যেহেতু Apache Maven GitHub প্লাগইন ইনস্টল এবং কনফিগার করা হয়েছে, আপনি এখন আপনার পাইপলাইনের মধ্যে Apache Maven ব্যবহার করতে পারবেন। এটি আপনার পাইপলাইনকে অনুমতি দেবে যা আপনি "[মডিউল 2]: জেনকিন্স সার্ভার"-এ তৈরি করেছেন একটি জার আর্টিফ্যাক্ট তৈরি করতে আপনার প্রকল্প কোড তৈরি করতে। পাইপলাইনে Apache Maven সংহত করতে আপনাকে এই পদক্ষেপগুলি অনুসরণ করতে হবে: "ড্যাশবোর্ড" → "CI_CD_Pipeline" → "কনফিগার করুন" → "বিল্ড স্টেপস"-এ নেভিগেট করুন। বোতামে ক্লিক করুন। "বিল্ড স্টেপ যোগ করুন" বিকল্পটি বেছে নিন। "টপ-লেভেল ম্যাভেন টার্গেটগুলি ইনভোক করুন" হিসাবে নির্বাচন করুন। "Maven সংস্করণ" "Apache-Maven" ইনপুটে কমান্ড যোগ করুন। "লক্ষ্য" "ক্লিন প্যাকেজ" বোতামে ক্লিক করুন। "উন্নত" ইনপুটে "pom.xml" যোগ করুন। "POM" অবশেষে, পাইপলাইনের সাথে Apache Maven-এর ইন্টিগ্রেশন শেষ করতে আপনার এবং বোতামে ক্লিক করা উচিত। “Apply” “Save” ধাপ 7: পরীক্ষা Apache Maven পাইপলাইনে সংহত এখন আপনি আপনার 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: উত্তরযোগ্য EC2 ভার্চুয়াল সার্ভারে ডকার ইনস্টল করুন। এখন আপনাকে আপনার উত্তরযোগ্য EC2 উদাহরণে ডকার ইনস্টল করতে হবে। এটি করার জন্য আপনাকে একটি নতুন ডকার ফোল্ডার তৈরি করতে হবে। sudo mkdir /opt/docker তারপরে, পরবর্তী কমান্ডটি কার্যকর করে ডকার ইনস্টল করুন। sudo yum install docker -y ধাপ 4: Ansible EC2 ভার্চুয়াল সার্ভারে ডকার গ্রুপে বর্তমান ব্যবহারকারীকে যুক্ত করুন ডকারকে অ্যাডমিন সুবিধা দেওয়ার জন্য আপনাকে EC2 ভার্চুয়াল সার্ভারে ডকার গ্রুপে বর্তমান ব্যবহারকারী যোগ করতে হবে। "অ্যানসিবল সার্ভার" "অ্যান্সিবল-অ্যাডমিন" sudo usermod -a -G docker ansible-admin এই পরিবর্তনগুলি কার্যকর করার জন্য আপনাকে লগআউট করতে হবে এবং আবার লগ ইন করতে হবে৷ তারপর আপনি পরবর্তী কমান্ড চালাতে পারেন id ansible-admin নতুন ডকার ব্যবহারকারী বিদ্যমান তা দেখতে। ধাপ 5: ডকার চালু করুন এখন যেহেতু ডকার Ansible EC2 ইন্সট্যান্সে ইনস্টল করা আছে আপনি পরবর্তী কমান্ডটি কার্যকর করার মাধ্যমে এটি চালু করতে পারেন। sudo systemctl start docker ডকার শুরু হওয়ার সাথে সাথে আপনি পরবর্তী কমান্ডটি চালাতে পারেন sudo systemctl status docker দেখতে যে ডকার সক্রিয় এবং এখন চলছে। ধাপ 6: ডকারফাইল তৈরি করুন পাইপলাইনের চূড়ান্ত সংস্করণে, প্রক্রিয়াটিতে আপনার গিটহাব প্রকল্প থেকে একটি নতুন ডকার চিত্র তৈরি করা এবং এটিকে ডকার হাবে ঠেলে দেওয়া জড়িত। এটি সম্পন্ন করতে, আপনার গিটহাব প্রকল্পে একটি ডকারফাইল থাকা উচিত। আপনি যদি " মডিউলে দেওয়া প্রকল্পটি ব্যবহার করেন, তাহলে আপনাকে একটি নতুন ডকারফাইল তৈরি করতে হবে না কারণ এই প্রকল্পের সংগ্রহস্থলে ইতিমধ্যেই ডকারফাইল রয়েছে। [মডিউল 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" ] আপনি যদি নিজের প্রজেক্ট রিপোজিটরি ব্যবহার করেন এবং এতে ডকারফাইল না থাকে, তাহলে আপনাকে একটি নতুন ডকারফাইল তৈরি করতে হবে। একটি নতুন ডকারফাইল তৈরি করতে, নিম্নলিখিত কমান্ডটি চালান, যা নতুন ফাইল তৈরি করবে। sudo touch Dockerfile তারপরে আপনি এই ফাইলটিকে কমান্ডের একটি ক্রম দিয়ে পূরণ করতে পারেন যা বর্ণনা করে যে কীভাবে একটি কন্টেইনারাইজড অ্যাপ্লিকেশন পরিবেশ তৈরি করা যায়। এই কমান্ডগুলির মধ্যে ফাইলগুলিকে ছবিতে অনুলিপি করা, সফ্টওয়্যার ইনস্টল করা, পরিবেশের ভেরিয়েবল সেট করা এবং কন্টেইনার কনফিগার করার মতো কাজগুলি অন্তর্ভুক্ত রয়েছে। এই কমান্ড দিয়ে ডকারফাইল পূরণ করতে, নিম্নলিখিত কমান্ডটি চালান। vim Dockerfile ডকারফাইল ব্যবহারের জন্য প্রস্তুত। ধাপ 7: ডকার লগইন করুন এখন আপনার ডকারফাইল ব্যবহারের জন্য প্রস্তুত করা হয়েছে, **"জেনকিন্স সার্ভার"**EC2 উদাহরণ থেকে আপনার প্রকল্পের JAR আর্টিফ্যাক্ট অনুলিপি করে এবং 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 ভার্চুয়াল সার্ভার ইনস্ট্যান্সে উত্তরযোগ্য সার্ভার কনফিগার করি। ধাপ 1: একটি AWS EC2 ভার্চুয়াল সার্ভার উদাহরণ তৈরি করুন Ansible চালানোর জন্য আপনার একটি ভার্চুয়াল সার্ভার প্রয়োজন। বিভাগ। [মডিউল 1] থেকে নির্দেশাবলী অনুসরণ করুন: এই ধাপটি শেষ করতে এবং Ansible-এর জন্য একটি EC2 ভার্চুয়াল সার্ভার উদাহরণ তৈরি করতে এই টিউটোরিয়ালের AWS EC2 ভার্চুয়াল সার্ভার একটি নিরাপত্তা গ্রুপ সেটআপ যোগ করতে ভুলবেন না. এটি এবং যথাক্রমে পোর্ট এবং এ কাজ করার অনুমতি দেয়। Ansible SSH কে 8080 22 আপনার EC2 ভার্চুয়াল সার্ভারের উদাহরণকে আলাদা করতে নামটি ব্যবহার করুন। "AnsibleServer" আপনি একটি নতুন EC2 উদাহরণের জন্য নিরাপত্তা গ্রুপ এবং পুনরায় ব্যবহার করতে পারেন। "AnsibleServer" "CI_CD_Pipeline" "CI_CD_Pipeline_Key_Pair" ধাপ 2: একটি AWS EC2 ভার্চুয়াল সার্ভার ইনস্ট্যান্সের সাথে সংযোগ করুন AWS কনসোলের হোম পেজে যান → EC2 ম্যানেজমেন্ট কনসোল ড্যাশবোর্ড → ইনস্ট্যান্স → অ্যান্সিবল সার্ভার। তারপর বোতামে ক্লিক করুন। "সংযোগ" তারপর আপনি এই ওয়েব পেজ দেখতে পাবেন. আপনাকে আবার বোতামে ক্লিক করতে হবে। "সংযোগ" এখন আপনি EC2 ভার্চুয়াল সার্ভার ইনস্ট্যান্স অনলাইন টার্মিনাল দেখতে পারেন। এখন আসুন EC2 ভার্চুয়াল সার্ভার ইনস্ট্যান্সে Ansible সার্ভার কনফিগার করি। ধাপ 3: "AnsibleServer" AWS EC2 ভার্চুয়াল সার্ভার উদাহরণের হোস্টনাম পরিবর্তন করুন আপনি যখন EC2 ভার্চুয়াল সার্ভার ইনস্ট্যান্সে AnsibleServer কনফিগার করতে চান তখন আপনাকে প্রথমে যা করতে হবে তা হল এর হোস্টনাম পরিবর্তন করা। চল এটা করি. হোস্টনাম ফাইল খুলতে এই কমান্ডটি চালান: sudo vi /etc/hostname আপনি এই মত কিছু দেখতে হবে: এই হোস্টনামটি তারপর, এটি রিবুট করুন। "অ্যানসিবল-সার্ভার" দিয়ে প্রতিস্থাপন করুন। sudo init 6 ধাপ 4: "AnsibleServer" AWS EC2 ভার্চুয়াল সার্ভার উদাহরণে একটি নতুন ব্যবহারকারী যোগ করুন এবং কনফিগার করুন এখন AWS EC2 ভার্চুয়াল সার্ভার ইনস্ট্যান্সে একটি নতুন ব্যবহারকারী যোগ করা যাক। উত্তরযোগ্য-প্রশাসক এটি করতে এই কমান্ডটি ব্যবহার করুন: sudo useradd 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: Ansible ইনস্টল করুন এখন আপনি আপনার EC2 ভার্চুয়াল সার্ভার ইনস্ট্যান্সে Ansible ইনস্টল করতে পারেন। “AnsibleServer” চল এটা করি. Ansible ইনস্টল করতে এই কমান্ডটি চালান। sudo amazon-linux-extras install ansible2 Ansible যাচাই করতে, এই কমান্ডটি ব্যবহার করুন: ansible --version এই কমান্ডটি কার্যকর করার ফলস্বরূপ, আপনি দেখতে পাবেন: ধাপ 7: জেনকিন্স সার্ভার EC2 ইন্সট্যান্সে জেনকিন্স "SSH উপর প্রকাশ করুন" প্লাগইন ইনস্টল করুন যেহেতু Ansible আপনার EC2 ভার্চুয়াল সার্ভার ইনস্ট্যান্সে ইনস্টল করা আছে, আপনি এটিকে Ansible-এর সাথে সংহত করতে Jenkins কনফিগার করতে পারেন। EC2 ভার্চুয়াল সার্ভার ইনস্ট্যান্স যেখানে Ansible ইন্সটল করা আছে এবং যেখানে ইন্সটল করা আছে সেখানে অন্যান্য EC2 ভার্চুয়াল সার্ভার ইনস্ট্যান্সের সাথে জেনকিন্সকে ইন্টিগ্রেট করতে আপনাকে প্লাগইন ইনস্টল করতে হবে। “AnsibleServer” Kubernetes “SSH এর উপর প্রকাশ করুন” → " → → এ যান। "ড্যাশবোর্ড" জেনকিন্স পরিচালনা করুন" "সিস্টেম কনফিগার করুন" "উপলব্ধ প্লাগইনস" তারপরে অনুসন্ধান বাক্সে লিখুন। "SSH উপর প্রকাশ করুন" বোতামে ক্লিক করুন। ডাউনলোড প্রক্রিয়া শেষ হওয়ার জন্য অপেক্ষা করুন। "রিস্টার্ট ছাড়াই ইনস্টল করুন" এখন জেনকিন্স EC2 ভার্চুয়াল সার্ভার ইনস্ট্যান্সে "SSH ওভারে প্রকাশ করুন" প্লাগইন ইনস্টল করা আছে। ধাপ 8: জেনকিন্স কনফিগার করুন "SSH উপর প্রকাশ করুন" প্লাগইন Apache Maven Jenkins প্লাগইনটির সফল ইনস্টলেশনের সাথে, আপনি এখন এই প্লাগইনটিকে পাইপলাইনের মধ্যে ব্যবহার করতে পারবেন যা আপনি মডিউল 2 এবং 3 এ তৈরি এবং আপডেট করেছেন। এটি করতে, এই পদক্ষেপগুলি অনুসরণ করুন: → → → যান। "ড্যাশবোর্ড" "জেনকিন্স পরিচালনা করুন" "সিস্টেম কনফিগার করুন" "এসএসএইচ-এ প্রকাশ করুন" এ হোস্টনাম, ইউজারনেম, এবং প্রাইভেট কী (বা প্রযোজ্য হলে পাসওয়ার্ড) সহ স্ক্রিনশটে থাকা সমস্ত প্রয়োজনীয় ডেটা লিখুন। তারপরে এবং বোতামে ক্লিক করুন। "প্রয়োগ করুন" "সংরক্ষণ করুন" এখানে আপনি জেনকিন্স প্লাগইন কনফিগার করা শেষ করেছেন। “SSH এর উপর প্রকাশ করুন” এরপরে, প্লাগইনটি সঠিকভাবে কাজ করছে কিনা তা যাচাই করতে "পরীক্ষা কনফিগারেশন" এ ক্লিক করুন। বাম দিকে আপনি দেখতে পাচ্ছেন যে টেস্ট প্লাগইন কনফিগারেশন স্ট্যাটাস "সফল"। এর মানে প্লাগইন কনফিগারেশন সঠিক। ধাপ 9: AnsibleServer এ নতুন ডকার ডিরেক্টরি তৈরি করুন আপনাকে AnsibleServer EC2 উদাহরণে একটি নতুন ফোল্ডার তৈরি করতে হবে যেখানে প্রকল্প JAR সংরক্ষণ করা হবে। এই জার পরে একটি ডকার ইমেজ তৈরি করতে ব্যবহার করা হবে। চল শুরু করি. AnsibleServer EC2 উদাহরণে ফোল্ডারে যান। "/ opt" cd /opt সেখানে একটি নতুন ফোল্ডার তৈরি করুন। "ডকার" sudo mkdir docker এই ফোল্ডারে বিশেষাধিকার দিন। "ডকার" sudo chown ansible-admin:ansible-admin docker এখন, এই কমান্ডটি কার্যকর করে ফোল্ডারের সুবিধাগুলি পরীক্ষা করুন। "ডকার" ll আপনি দেখতে পাচ্ছেন যে ফোল্ডারটি ব্যবহারকারীর সাথে অ্যাক্সেসযোগ্য। "ডকার" "অ্যানসিবল-অ্যাডমিন" "Publish over SSH" Github প্লাগইন একীভূত করুন ধাপ 10: পাইপলাইনে এখন যেহেতু Github প্লাগইন ইনস্টল এবং কনফিগার করা হয়েছে, আপনি এখন এটিকে "[মডিউল 2]: জেনকিন্স সার্ভার"-এ " থেকে একটি প্রজেক্ট জার আর্টিফ্যাক্ট স্থানান্তর করতে পাইপলাইনে একীভূত করতে সক্ষম । "SSH এর উপর প্রকাশ করুন" জেনকিন্স সার্ভার" "Ansible সার্ভার" ঠিক আছে, পাইপলাইনে Github প্লাগইনকে একীভূত করতে আপনাকে এই পদক্ষেপগুলি অনুসরণ করতে হবে: "SSH এর উপর প্রকাশ করুন" "ড্যাশবোর্ড" → "CI_CD_Pipeline" → "কনফিগার করুন" → "পোস্ট-বিল্ড অ্যাকশন"-এ নেভিগেট করুন। বোতামে ক্লিক করুন। "পোস্ট-বিল্ড অ্যাকশন যোগ করুন" বিকল্পটি বেছে নিন। "SSH ওভার বিল্ড আর্টিফ্যাক্ট পাঠান" বিভাগে ইনপুটে যোগ করুন**.** "SSH সার্ভার" "নাম" "AnsibleServer" বিভাগে ইনপুটে যোগ করুন**.** "ট্রান্সফার সেট" "সোর্স ফাইল" "target/*.jar" বিভাগে ইনপুটে যোগ করুন**।** "ট্রান্সফার সেট" "উপসর্গ সরান" "টার্গেট/" বিভাগে ইনপুটে যোগ করুন**।** "ট্রান্সফার সেট" "রিমোট ডিরেক্টরি" "//অপ্ট/ডকার/" আপাতত, 'ট্রান্সফার সেট' বিভাগের অধীনে 'Exec কমান্ড' ইনপুটে একটি খালি স্ট্রিং রাখুন। অবশেষে, পাইপলাইনের সাথে প্লাগইন ইন্টিগ্রেশন শেষ করতে আপনাকে এবং বোতামে ক্লিক করতে হবে। "Publish over SSH" "প্রয়োগ করুন" "সংরক্ষণ করুন" গিথুব প্লাগইন "এসএসএইচের উপর প্রকাশ করুন" পরীক্ষা করুন ধাপ 11: পাইপলাইনে সমন্বিত এখন আপনি " থেকে এ একটি প্রজেক্ট জার আর্টিফ্যাক্ট স্থানান্তর করতে আপনার আপডেট করা পাইপলাইন ব্যবহার করতে পারেন। এটি করতে আপনাকে বোতামে ক্লিক করতে হবে। ফলস্বরূপ আপনি বিল্ড ইতিহাসে একটি সফল কাজের ফলাফল দেখতে পাবেন। JenkinsServer" "AnsibleServer" "এখনই তৈরি করুন" আপনি যদি আপনার 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 আপনি একটি রেফারেন্স হিসাবে "[উত্তরযোগ্য]" যোগ করতে পারেন আপনি যদি একটি ক্লাস্টার সার্ভার পরিচালনা করেন এবং আপনি প্লেবুকে প্রতিটি সার্ভারের আইপি ঠিকানা নির্দিষ্ট করার পরিবর্তে তাদের সকলের জন্য একটি প্লেবুক প্রয়োগ করতে চান, আপনি কেবল ইনভেন্টরি ফাইলের একটি গ্রুপে সমস্ত সার্ভার যোগ করতে পারেন এবং তারপরে নির্দিষ্ট করতে পারেন প্লেবুকে গ্রুপ। ধাপ 13: উত্তরযোগ্য জন্য লোকালহোস্টে পাসওয়ার্ডহীন SSH প্রমাণীকরণ কনফিগার করুন Ansible রিমোট সার্ভারে স্বয়ংক্রিয় কাজ করার জন্য ডিজাইন করা হয়েছে। পাসওয়ার্ডহীন এসএসএইচ প্রমাণীকরণ ম্যানুয়াল পাসওয়ার্ড এন্ট্রির প্রয়োজন ছাড়াই সেই সার্ভারগুলির সাথে সংযোগ করার ক্ষমতা দেয়। আপনার কম্পিউটার থেকে অন্য কম্পিউটারে একটি সুরক্ষিত সংযোগ তৈরি করতে এই কমান্ডটি চালান (যেমন আইপি ঠিকানা 172.31.34.41 এ), দায়বদ্ধ-অ্যাডমিন ব্যবহারকারীর 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 এখন আপনি দেখতে পারেন। এর অর্থ হল পাসওয়ার্ডহীন SSH প্রমাণীকরণ ইনস্টলেশন সফলভাবে সম্পন্ন হয়েছে। "সংযুক্ত কী(গুলি) সংখ্যা: 1" ধাপ 14: ডকার কাজের জন্য একটি নতুন উত্তরযোগ্য প্লেবুক তৈরি করুন এখন যেহেতু Ansible সব সেট আপ করা হয়েছে এবং যেতে ভালো, আপনি আপনার পাইপলাইনের জন্য একটি নতুন Ansible প্লেবুক তৈরি করতে পারেন। এই প্লেবুকটি Ansible কে Dockerhub-এ একটি নতুন ডকার ইমেজ তৈরি এবং পাঠাতে দেবে। আপনি কিভাবে এটি করতে পারেন তা এখানে: একটি নতুন উত্তরযোগ্য প্লেবুক ফাইল তৈরি করে শুরু করুন। শুধু এই কমান্ড ব্যবহার করুন. 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 playbook, AnsibleServer, এবং JenkinsServer সবগুলো সঠিকভাবে কনফিগার করার সাথে সাথে, Ansible প্লেবুক পরীক্ষা করার সময় এসেছে। আপনার উত্তরযোগ্য প্লেবুকের অবস্থানে নেভিগেট করুন। cd /opt/docker তারপরে, নিম্নলিখিত কমান্ডটি চালান। sudo -u ansible-admin ansible-playbook /opt/docker/hello-app.yml সমাপ্তির পরে, আপনি আপনার উত্তরযোগ্য প্লেবুকের সফল সম্পাদনের ফলাফল দেখতে পাবেন। তদ্ব্যতীত, আপনার ডকারহাব অ্যাকাউন্টটি দেখার জন্য কিছুক্ষণ সময় নিন এবং একটি নতুন চিত্র এখন দৃশ্যমান কিনা তা যাচাই করুন। আপনি নতুন যোগ ইমেজ দেখতে হবে. এই ফলাফল নিশ্চিত করে যে আপনার উত্তরযোগ্য প্লেবুক সঠিক। উত্তরযোগ্য ডকার কাজগুলিকে একীভূত করুন ধাপ 14: পাইপলাইনে এখন Github প্লাগইন, Ansible এবং Docker ইনস্টল এবং কনফিগার করা হয়েছে, আপনি এখন একটি প্রকল্প জার আর্টিফ্যাক্ট স্থানান্তর করতে "[মডিউল 2]: জেনকিন্স সার্ভার"-এ তৈরি করা পাইপলাইনে সেগুলিকে একীভূত করতে সক্ষম। " থেকে এবং তারপরে আপনার প্রকল্প থেকে একটি নতুন ডকার ইমেজ তৈরি করুন এবং তারপরে এই ডকার ইমেজটিকে ডকারহাবের দিকে ঠেলে দিন। "SSH এর উপর প্রকাশ করুন" জেনকিন্স সার্ভার" "অ্যান্সিবল সার্ভার" এটি অর্জন করতে আপনাকে এই পদক্ষেপগুলি অনুসরণ করতে হবে: "ড্যাশবোর্ড" → "CI_CD_Pipeline" → "কনফিগার" → "পোস্ট-বিল্ড অ্যাকশন" → "SSH এর মাধ্যমে বিল্ড আর্টিফ্যাক্ট পাঠান" এ নেভিগেট করুন। ইনপুটে কমান্ড যোগ করুন। "Exec কমান্ড" "sudo -u ansible-admin ansible-playbook /opt/docker/hello-app.yml" অবশেষে, পাইপলাইনের সাথে ইন্টিগ্রেশন অ্যান্সিবল ডকার কাজগুলি শেষ করতে এবং বোতামে ক্লিক করুন। "প্রয়োগ করুন" "সংরক্ষণ করুন" ধাপ 15: পাইপলাইনে একত্রিত "ডকার টাস্ক সহ উত্তরযোগ্য প্লেবুক" পরীক্ষা করুন এখন আপনি " থেকে -এ একটি প্রজেক্ট জার আর্টিফ্যাক্টকে নির্বিঘ্নে স্থানান্তর করতে আপনার আপগ্রেড করা পাইপলাইন পরীক্ষা করতে পারেন তারপর আপনার প্রকল্প থেকে একটি নতুন ডকার ইমেজ তৈরি করুন এবং তারপরে এই ডকার ইমেজটিকে ডকারহাবে ঠেলে দিন। এটি করতে আপনাকে বোতামে ক্লিক করতে হবে। ফলস্বরূপ আপনি বিল্ড ইতিহাসে একটি সফল কাজের ফলাফল দেখতে পাবেন। জেনকিন্স সার্ভার" "অ্যান্সিবল সার্ভার" "এখনই তৈরি করুন" তদ্ব্যতীত, আপনার ডকারহাব অ্যাকাউন্টটি দেখার জন্য কিছুক্ষণ সময় নিন এবং একটি নতুন চিত্র এখন দৃশ্যমান কিনা তা যাচাই করুন। আপনি নতুন যোগ ইমেজ দেখতে হবে. এই ফলাফল নিশ্চিত করে যে ডকার টাস্ক সহ আপনার উত্তরযোগ্য প্লেবুক সফলভাবে পাইপলাইনে একত্রিত হয়েছে। [মডিউল 7]: কুবারনেটস এখন EC2 উদাহরণে K8s কনফিগার করা যাক। আপনি একটি নতুন EC2 ইন্সট্যান্স তৈরি করতে যাচ্ছেন এবং একটি ক্লাস্টারের সাথে আরও ইন্টারঅ্যাক্ট করার জন্য তাদের kubectl কমান্ড-লাইন টুল ইনস্টল করতে যাচ্ছেন। Kubernetes ধাপ 1: একটি AWS EC2 ভার্চুয়াল সার্ভার ইনস্ট্যান্স চালু করুন এই ধাপটি শেষ করতে এই টিউটোরিয়ালের " বিভাগের নির্দেশাবলী ব্যবহার করুন। AWS EC2 ভার্চুয়াল সার্ভার ইনস্ট্যান্স চালু করুন" একটি নিরাপত্তা গ্রুপ সেটআপ যোগ করতে ভুলবেন না. এটি এবং পোর্ট এবং যথাক্রমে কাজ করার অনুমতি দেয়। সমস্ত সরঞ্জাম SSH 8080 22 আপনার EC2 ভার্চুয়াল সার্ভারের উদাহরণকে আলাদা করতে নামটি ব্যবহার করুন৷ "K8sServer" আপনি একটি নতুন EC2 উদাহরণের জন্য নিরাপত্তা গ্রুপ এবং পুনরায় ব্যবহার করতে পারেন। "K8sServer" "CI_CD_Pipeline" "CI_CD_Pipeline_Key_Pair" ধাপ 2: একটি AWS EC2 ভার্চুয়াল সার্ভার ইনস্ট্যান্সের সাথে সংযোগ করুন "সংযোগ" বোতামে ক্লিক করুন। এখন আপনি EC2 ভার্চুয়াল সার্ভার ইনস্ট্যান্স অনলাইন টার্মিনাল দেখতে পারেন। ধাপ 3: "KubernetesServer" AWS EC2 ভার্চুয়াল সার্ভার উদাহরণের হোস্টনাম পরিবর্তন করুন আপনি যখন EC2 ভার্চুয়াল সার্ভার ইনস্ট্যান্সে KuberenetesServer কনফিগার করতে চান তখন আপনাকে প্রথমে যা করতে হবে তা হল এর হোস্টনাম পরিবর্তন করা। চল এটা করি. হোস্টনাম ফাইল খুলতে এই কমান্ডটি চালান: sudo vi /etc/hostname আপনি এই মত কিছু দেখতে হবে. এই হোস্টনামটিকে তারপরে এটি পুনরায় বুট করুন। "kubernetes-server" দিয়ে প্রতিস্থাপন করুন এবং sudo init 6 আপনি হবে হোস্টনাম পরিবর্তন করা হয়েছে. ধাপ 4: AWS CLI সংস্করণ চেক করুন সংস্করণ চেক করতে এই কমান্ডটি ব্যবহার করুন। AWS aws --version এইভাবে আপনি আপনার বর্তমান aws-cli সংস্করণ দেখতে পারেন। আপনি যদি সংস্করণ দেখতে পান তবে আপনার সর্বশেষ সংস্করণটি ডাউনলোড করা উচিত। aws-cli/1.18 ধাপ 5: AWS CLI আপডেট করুন এখন যেমন আপনি খুঁজে পেয়েছেন যে আপনার 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: kubectl ইনস্টল করুন অন্তর্নিহিত অবকাঠামো নির্বিশেষে যেকোন কুবারনেটস ক্লাস্টারের সাথে ইন্টারঅ্যাক্ট করার জন্য হল একটি মৌলিক কমান্ড-লাইন টুল। এটি আপনাকে সম্পদগুলি পরিচালনা করতে, অ্যাপ্লিকেশন স্থাপন করতে, নেটওয়ার্কিং কনফিগার করতে, লগগুলি অ্যাক্সেস করতে এবং কুবারনেটস ক্লাস্টারের মধ্যে অন্যান্য বিভিন্ন কাজ সম্পাদন করতে দেয়। Kubectl এখন আপনাকে কুবারনেটস ক্লাস্টারের সাথে আরও ইন্টারঅ্যাক্ট করার জন্য kubectl কমান্ড-লাইন টুল ইনস্টল করতে হবে। এর জন্য আপনাকে → → → → → বা যেতে হবে। AWS ডকুমেন্টেশন Amazon EKS User Guide 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 /usr/local/bin ফোল্ডারে kubectl সরান। sudo mv kubectl /usr/local/bin kubectl এর সংস্করণ পরীক্ষা করুন। kubectl version --output=yaml ধাপ 7: eksctl ইনস্টল করুন হল আরেকটি কমান্ড-লাইন টুল যা বিশেষভাবে Amazon EKS পরিষেবার জন্য তৈরি। Eksctl AWS EKS ক্লাস্টার তৈরি করতে, নোড গোষ্ঠীগুলি পরিচালনা করতে এবং EKS-এর জন্য নির্দিষ্ট কাজগুলি সম্পাদন করতে ব্যবহার করা যেতে পারে, যেমন AWS পরিকাঠামো সেটআপ এবং পরিচালনার বেশিরভাগ অংশকে বিমূর্ত করে IAM ভূমিকা এবং অন্যান্য AWS পরিষেবাগুলির সাথে একীভূত করা। 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: eksctl এর সাথে IAM ভূমিকা সংযুক্ত করুন AWS EC2 ইনস্ট্যান্স ওয়েব পেজে যান। তারপরে → → "KuberbetesServer" নির্বাচন করুন। "ক্রিয়া" "নিরাপত্তা" "আইএএম ভূমিকা সংশোধন করুন" এ ক্লিক করুন। নির্বাচন করুন এবং তারপর বোতামে ক্লিক করুন। "Eksctl_Role" "আপডেট IAM ভূমিকা" এখন আপনার IAM ভূমিকা আপনার এবং eksctl টুলের সাথে সংযুক্ত। “EKS_Server” ধাপ 10: eksctl ক্লাস্টার তৈরি করুন ক্লাস্টার হল AWS-এ একটি পরিচালিত Kubernetes পরিবেশ, সেটআপ, স্কেলিং এবং রক্ষণাবেক্ষণের মতো জটিল পরিকাঠামোর কাজগুলিকে স্বয়ংক্রিয় করে। এটি অপরিহার্য কারণ এটি একটি দক্ষ, সুরক্ষিত, এবং AWS-অপ্টিমাইজ করা প্ল্যাটফর্ম প্রদান করে কনটেইনারাইজড অ্যাপ্লিকেশন স্থাপন, পরিচালনা এবং স্কেল করার জন্য, ক্রিয়াকলাপগুলিকে স্ট্রিমলাইন করা এবং বিকাশকারীদেরকে অন্তর্নিহিত অবকাঠামো পরিচালনার পরিবর্তে কোডিংয়ে ফোকাস করার জন্য মুক্ত করে৷ একটি Amazon EKS (Elastic Kubernetes Service) এখন, আপনার EKS ক্লাস্টার সেট আপ করার সময়। এটি অর্জন করতে, এই পদক্ষেপগুলি অনুসরণ করুন: আপনার নির্দিষ্ট তথ্য দিয়ে নিম্নলিখিত কমান্ডটি পরিবর্তন করুন। 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 পরিবর্তিত কমান্ডটি চালান এবং ধৈর্য সহকারে ক্লাস্টার তৈরির প্রক্রিয়া সম্পূর্ণ হওয়ার জন্য অপেক্ষা করুন। আপনি লক্ষ্য করবেন যে EKS ক্লাস্টার স্থিতি AWS CloudFormation ওয়েব পৃষ্ঠায় হিসাবে নির্দেশিত হয়েছে৷ "তৈরি করা" ক্লাস্টার তৈরির পদ্ধতিটি সাধারণত প্রায় 20 মিনিট সময় নেয়। একবার সম্পন্ন হলে, টার্মিনাল প্রক্রিয়াটির ফলাফল প্রদর্শন করবে। উপরন্তু, আপনি AWS CloudFormation ওয়েব পৃষ্ঠায় সফল তৈরির স্থিতি যাচাই করতে পারেন। EKS ক্লাস্টার ধাপ 11: Kubernetes Deployment yaml ফাইল তৈরি করুন হল YAML ফর্ম্যাটে লেখা একটি কনফিগারেশন স্ক্রিপ্ট যা একটি Kubernetes ক্লাস্টারের মধ্যে একটি নির্দিষ্ট অ্যাপ্লিকেশন বা পরিষেবা কীভাবে পরিচালনা এবং বজায় রাখতে হয় তা সংজ্ঞায়িত করে। এটি অ্যাপ্লিকেশান চলমান কন্টেইনারগুলির স্থাপনা, স্কেলিং, আপডেট এবং নিরীক্ষণের জন্য নির্দেশাবলী অন্তর্ভুক্ত করে। এই ফাইলটিতে কন্টেইনার ইমেজ, প্রতিলিপির কাঙ্খিত সংখ্যা, রিসোর্স লিমিট, এনভায়রনমেন্ট ভেরিয়েবল, নেটওয়ার্কিং সেটিংস এবং আরও অনেক কিছুর মতো বিবরণ রয়েছে। যখন একটি Kubernetes ক্লাস্টারে প্রয়োগ করা হয়, ডিপ্লয়মেন্ট YAML ফাইলটি অ্যাপ্লিকেশনটির পছন্দসই অবস্থা নিশ্চিত করে, স্বয়ংক্রিয়ভাবে উপলব্ধতা এবং নির্ভরযোগ্যতার পছন্দসই স্তর বজায় রাখার জন্য কন্টেইনার তৈরি, স্কেলিং এবং পুনরুদ্ধার পরিচালনা করে। একটি Kubernetes Deployment YAML ফাইল এখন, যেহেতু Kubernetes ক্লাস্টার, eksctl, kubectl ইনস্টল এবং কনফিগার করা হয়েছে, আপনি একটি Kubernetes Deployment 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 ক্লাস্টারের মধ্যে ধারাবাহিকভাবে অ্যাক্সেস করার অনুমতি দেয়। অন্যান্য পরিষেবা বা বহিরাগত ক্লায়েন্টদের দ্বারা কীভাবে পরিষেবাটি আবিষ্কার করা, অ্যাক্সেস করা এবং লোড-ভারসাম্য করা উচিত এই ফাইলটি রূপরেখা দেয়৷ এতে পরিষেবার ধরন (ClusterIP, NodePort, LoadBalancer), পোর্ট নম্বর, পড শনাক্ত করার জন্য নির্বাচক এবং আরও অনেক কিছুর মতো স্পেসিফিকেশন রয়েছে। যখন একটি Kubernetes ক্লাস্টারে প্রয়োগ করা হয়, পরিষেবা 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: kubectl ব্যবহার করে Kubernetes ক্লাস্টার পরীক্ষা করুন আপনার Kubernetes EKS ক্লাস্টার সফলভাবে ইনস্টল করা এবং কনফিগার করা এবং আপনার Kubernetes পরিষেবা এবং স্থাপনার ফাইলগুলি প্রস্তুত, kubectl কমান্ড ব্যবহার করে জিনিসগুলি পরীক্ষা করার সময় এসেছে। ডিপ্লয়মেন্ট প্রয়োগ করুন। স্থাপনার কনফিগারেশন প্রয়োগ করতে নিম্নলিখিত কমান্ডটি ব্যবহার করুন। kubectl apply -f hello-app-deployment.yaml এটি আপনার অ্যাপ্লিকেশনের প্রাপ্যতা এবং পরিচালনাযোগ্যতা নিশ্চিত করে নির্দিষ্ট সংখ্যক প্রতিলিপি এবং একটি রোলিং আপডেট কৌশল সহ একটি স্থাপনা তৈরি করবে। 2. পরিষেবা প্রয়োগ করুন। এর পরে, পরিষেবা কনফিগারেশন প্রয়োগ করুন। kubectl apply -f hello-app-service.yaml এটি একটি লোডব্যালেন্সার টাইপ পরিষেবা সেট আপ করবে, আপনার অ্যাপ্লিকেশনটি ইন্টারনেটে প্রকাশ করবে। মনে রাখবেন যে লোডব্যালেন্সার প্রভিশন করা এবং একটি বাহ্যিক IP ঠিকানা অর্জন করতে অল্প সময় লাগতে পারে। লোডব্যালেন্সার স্থিতি পরীক্ষা করুন। ব্যবহার করে আপনার পরিষেবার অবস্থা নিরীক্ষণ করুন। kubectl get service zufarexplainedit-hello-app-service যখন একটি বাহ্যিক আইপি বরাদ্দ করা হয়, আপনি আপনার অ্যাপ্লিকেশন অ্যাক্সেস করার জন্য প্রায় প্রস্তুত। আপনার আবেদন অ্যাক্সেস. একটি ওয়েব ব্রাউজার ব্যবহার করে, বরাদ্দকৃত বাহ্যিক আইপি ঠিকানা লিখুন যার পরে :8080। একটি সংক্ষিপ্ত মুহূর্ত পরে, পৃষ্ঠাটি "হ্যালোওয়ার্ল্ড" বার্তা প্রদর্শন করে লোড হবে। মনে রাখবেন প্রাথমিক লোড হতে কয়েক সেকেন্ড সময় লাগতে পারে। kubectl কমান্ড দিয়ে পরিষ্কার করা যখন আপনার Kubernetes পরিবেশের মধ্যে সম্পদ গুছিয়ে রাখার প্রয়োজন হয়, আপনি কার্যকরভাবে স্থাপনা, পড এবং পরিষেবাগুলি সরাতে নিম্নলিখিত kubectl কমান্ডগুলি ব্যবহার করতে পারেন। । 1. সমস্ত স্থাপনা মুছুন সমস্ত স্থাপনা মুছে ফেলতে, আপনি নিম্নলিখিত কমান্ডটি ব্যবহার করতে পারেন। kubectl delete deployments --all এই ক্রিয়াটি নিশ্চিত করে যে আপনার ক্লাস্টারে কোনো সক্রিয় স্থাপনার দৃষ্টান্ত অবশিষ্ট নেই। । 2. সমস্ত পড মুছুন আপনি যদি সমস্ত পড মুছে ফেলতে চান, সেগুলি একটি স্থাপনার দ্বারা পরিচালিত হোক বা না হোক, আপনি নিম্নলিখিত কমান্ডটি ব্যবহার করতে পারেন। kubectl delete pods --all ক্লিয়ারিং পড আপনার ক্লাস্টার স্টেট রিসেট করতে বা নতুন স্থাপনার জন্য প্রস্তুত করতে সাহায্য করতে পারে। ৷ 3. সমস্ত পরিষেবা মুছুন নেটওয়ার্কে আপনার অ্যাপ্লিকেশনগুলিকে প্রকাশ করে এমন পরিষেবাগুলি পরিষ্কার করতে, আপনি নিম্নলিখিত কমান্ডটি ব্যবহার করতে পারেন। kubectl delete services --all পরিষেবাগুলি সরানোর সময় ডাউনটাইম জড়িত হতে পারে, তাই এগিয়ে যাওয়ার আগে প্রভাবগুলি বিবেচনা করুন৷ একটি Amazon EKS ক্লাস্টার মুছে ফেলা হচ্ছে ওয়ার্কার নোড, নেটওয়ার্কিং উপাদান এবং অন্যান্য সংস্থান সহ এর সাথে তৈরি করা নির্দিষ্ট Amazon EKS ক্লাস্টারের সাথে সম্পর্কিত সমস্ত সংস্থানগুলি সরাতে, আপনি নিম্নলিখিত কমান্ডটি ব্যবহার করতে পারেন। eksctl eksctl delete cluster --name {your cluster name} --region {your region name} এটা আমার জন্য. eksctl delete cluster --name zufarexplainedit --region eu-north-1 নিশ্চিত করুন যে আপনি ক্লাস্টার বন্ধ করার বিষয়ে নিশ্চিত, কারণ এই ক্রিয়াটি অপরিবর্তনীয় এবং এর ফলে ডেটা ক্ষতি হবে৷ ধাপ 14: "KubernetesServer" AWS EC2 ভার্চুয়াল সার্ভার উদাহরণে একটি নতুন ব্যবহারকারী যোগ করুন এবং কনফিগার করুন এখন আসুন AWS EC2 ভার্চুয়াল সার্ভার ইনস্ট্যান্সে একটি নতুন ব্যবহারকারী যোগ করি। “KubernetesServer” উত্তরযোগ্য-প্রশাসক এটি করতে এই কমান্ডটি ব্যবহার করুন। sudo useradd 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: উত্তরযোগ্য জন্য লোকালহোস্টে পাসওয়ার্ডহীন SSH প্রমাণীকরণ কনফিগার করুন Ansible রিমোট সার্ভারে স্বয়ংক্রিয় কাজ করার জন্য ডিজাইন করা হয়েছে। পাসওয়ার্ডহীন এসএসএইচ প্রমাণীকরণ ম্যানুয়াল পাসওয়ার্ড এন্ট্রির প্রয়োজন ছাড়াই সেই সার্ভারগুলির সাথে সংযোগ করার ক্ষমতা দেয়। আপনার কম্পিউটার থেকে অন্য কম্পিউটারে একটি সুরক্ষিত সংযোগ তৈরি করতে এই কমান্ডটি চালান (যেমন আইপি ঠিকানা 172.31.34.41 এ), দায়বদ্ধ-অ্যাডমিন ব্যবহারকারীর 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 এখন আপনি দেখতে পারেন। এর অর্থ হল পাসওয়ার্ডহীন SSH প্রমাণীকরণ ইনস্টলেশন সফলভাবে সম্পন্ন হয়েছে। "সংযুক্ত কী(গুলি) সংখ্যা: 1" ধাপ 17: AnsibleServer EC2 উদাহরণে Ansible হোস্ট কনফিগার করুন আপনি যখন একটি উত্তরযোগ্য প্লেবুক চালান, তখন আপনি যে হোস্টগুলি চালান তা নির্দিষ্ট করুন৷ এই ধাপে আপনাকে KubernetesServer EC2 ইনস্ট্যান্স হোস্ট নির্দিষ্ট করতে হবে। এটি করার জন্য আপনাকে " [মডিউল 6]: উত্তরযোগ্য"-এ পাস করা একই পদক্ষেপগুলি পুনরাবৃত্তি করতে হবে। আসুন নিম্নলিখিত কমান্ডটি কার্যকর করার মাধ্যমে KubernetesServer EC2 ইনস্ট্যান্স হোস্ট খুঁজে বের করি। sudo ifconfig আপনি KubernetesServer EC2 ইনস্ট্যান্স হোস্ট খুঁজে পাওয়ার পরে, আপনি নিম্নলিখিত কমান্ডটি কার্যকর করার মাধ্যমে এটিকে উত্তরযোগ্য হোস্ট ফাইলে যুক্ত করতে পারেন। sudo vi /etc/ansible/hosts আপনি একটি রেফারেন্স হিসাবে "[kubernetes]" যোগ করতে পারেন ধাপ 18: Kubernetes কাজের জন্য একটি নতুন উত্তরযোগ্য প্লেবুক তৈরি করুন এখন যেহেতু Kubernetes সব সেটআপ এবং যেতে ভালো, আপনি আপনার পাইপলাইনের জন্য Kubernetes টাস্ক সহ একটি নতুন Ansible প্লেবুক তৈরি করতে পারেন। এই প্লেবুকটি অ্যান্সিবলকে আপনার অ্যাপটি কুবারনেটস ক্লাস্টারে kubectl কমান্ড সহ চালাতে দেবে। আপনি কিভাবে এটি করতে পারেন তা এখানে: একটি নতুন উত্তরযোগ্য প্লেবুক ফাইল তৈরি করে শুরু করুন। শুধু এই কমান্ড ব্যবহার করুন. 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 কার্যগুলির জন্য উত্তরযোগ্য প্লেবুক ব্যবহারের জন্য প্রস্তুত। ধাপ 19: জেনকিন্সের সাথে কুবারনেটস কাজের জন্য একটি নতুন উত্তরযোগ্য প্লেবুক সংহত করুন এখন যেহেতু Kubernetes কাজগুলির জন্য Kubernetes, Ansible এবং Ansible প্লেবুক সব সেট আপ করা হয়েছে এবং যেতে ভাল, আপনি এটি Jenkins-এর সাথে একীভূত করতে পারেন। জেনকিন্স সার্ভার → জেনকিন্স ড্যাশবোর্ড → নতুন আইটেমে যান। "সিডি-জব" নামে নতুন জেনকিন্স ফ্রিস্টাইল প্রকল্প তৈরি করুন। "ঠিক আছে" বোতামে ক্লিক করুন। "পোস্ট-বিল্ড অ্যাকশন" বিভাগে যান। "বিল্ড-পরবর্তী অ্যাকশন যোগ করুন" বোতামে ক্লিক করুন। "SSH ওভার বিল্ড আর্টিফ্যাক্ট পাঠান" বিকল্পটি বেছে নিন। SSH সার্ভার হিসাবে "AnsibleServer" নির্বাচন করুন। এই কমান্ডটি "exec কমান্ড" ইনপুটে যোগ করুন। sudo -u ansible-admin ansible-playbook /opt/docker/kubernetes-hello-app.yml "প্রয়োগ করুন" এবং "সংরক্ষণ করুন" বোতামে ক্লিক করুন। জেনকিন্স ড্যাশবোর্ড → “CI_CD_Pipeline” → কনফিগার → “পোস্ট-বিল্ড অ্যাকশন” বিভাগে যান। "বিল্ড-পরবর্তী অ্যাকশন যোগ করুন" বোতামে ক্লিক করুন। "অন্যান্য প্রকল্প তৈরি করুন" বিকল্পটি নির্বাচন করুন। "অন্যান্য প্রকল্প তৈরি করুন" বিভাগে যান। "বিল্ড স্থিতিশীল হলেই ট্রিগার" বিকল্পটি বেছে নিন। "প্রজেক্ট টু বিল্ড" ইনপুটে "সিডি-জব" যোগ করুন। "প্রয়োগ করুন" এবং "সংরক্ষণ করুন" বোতামে ক্লিক করুন। এখন আপনি বিবেচনা করতে পারেন যে পাইপলাইন সম্পূর্ণরূপে সমাপ্ত এবং ব্যবহারের জন্য প্রস্তুত। ধাপ 20: চূড়ান্ত পাইপলাইন সংস্করণ পরীক্ষা করা হচ্ছে এখন চূড়ান্ত পাইপলাইন সংস্করণ পরীক্ষা করার সময়. জেনকিন্স → জেনকিন্স ড্যাশবোর্ড → "CI_CD_Pipeline"-এ নেভিগেট করুন। "এখনই তৈরি করুন" বোতামে ক্লিক করুন। ফলাফল দেখতে, বিল্ড কনসোল লগগুলি পর্যালোচনা করুন৷ আপনি লক্ষ্য করবেন যে বিল্ড কনসোল লগগুলিতে "সিডি-জব" ট্রিগার হয়েছে, এবং চূড়ান্ত অবস্থা সফল হিসাবে চিহ্নিত করা হয়েছে। 4 তাছাড়া, নতুন ডকার ইমেজ যোগ করার বিষয়টি নিশ্চিত করতে আপনি Dockerhub-এ যেতে পারেন। এবং অবশেষে, আপনি একটি ওয়েব ব্রাউজার ব্যবহার করে আপনার অ্যাপ্লিকেশন অ্যাক্সেস করতে পারেন। ":8080" অনুসরণ করে নির্ধারিত বাহ্যিক আইপি ঠিকানা লিখুন। একটি সংক্ষিপ্ত মুহূর্ত পরে, পৃষ্ঠাটি লোড হবে, "হ্যালোওয়ার্ল্ড" বার্তাটি দেখাচ্ছে৷ উপসংহার এই আধুনিক CI/CD পাইপলাইন সেট আপ করার জন্য ভাল কাজ! আপনি একটি দুর্দান্ত কাজ করেছেন এবং আপনি একজন সত্যিকারের নায়ক! সব আপনার প্রচেষ্টার জন্য ধন্যবাদ! লেখক সম্পর্কে একজন অভিজ্ঞ সিনিয়র সফ্টওয়্যার প্রকৌশলী যিনি আধুনিক সফ্টওয়্যার সিস্টেম ডিজাইন করতে আগ্রহী। জুফার সুনাগাতোভ Citi (লন্ডন), MTS (মস্কো) এবং অন্যান্যদের মতো কোম্পানিগুলির জন্য Java, Kotlin, AWS, Docker, এবং Kubernetes ব্যবহার করে উচ্চ-কার্যক্ষমতা সম্পন্ন বিতরণ সিস্টেম তৈরি করেছে ( )। আপনি আরও তথ্যের জন্য Zufar এর LinkedIn প্রোফাইল অনুসরণ করতে পারেন Ice Latte, প্রথম থেকে একটি ওপেন-সোর্স অনলাইন মার্কেটপ্লেস (আপনি জুফারের দলে যোগ দিতে পারেন এবং GitHub-এ তার প্রকল্পে অবদান রাখতে পারেন: )। https://github.com/Sunagatov/Online-Store অন্যদের সাথে তার জ্ঞান এবং অভিজ্ঞতা শেয়ার করার জন্য ZufarExplainedIT সম্প্রদায় প্রতিষ্ঠা করেছেন (আপনি Zufar এর IT টেলিগ্রাম সম্প্রদায়কে অনুসরণ করতে পারেন: )। https://t.me/zufarexplained 3000 মিনিটেরও বেশি সময় ধরে পরামর্শ দেওয়া হয়েছে এবং ADPlist-এ 60টি সেশন পরিচালনা করেছে, উচ্চাকাঙ্ক্ষী প্রতিভাকে লালন করছে ( )। আপনি ADPlist-এ Zufar দ্বারা পরামর্শ পেতে পারেন কনফারেন্স এবং আইটি ইউটিউব চ্যানেলগুলিতে একজন বক্তা হিসাবে শ্রোতাদের সাথে জড়িত, অমূল্য অন্তর্দৃষ্টি ভাগ করে নেওয়া (তার YouTube ভিডিওগুলির উদাহরণগুলির মধ্যে রয়েছে: , "Тестовое собеседование Java разработчика #27 - Зуфар Сунагатов" "Aspiring Lunchtime" , "Akth2 Lunchtime Talkers" প্রতিটি 7000+ ভিউ সহ অত্যন্ত জনপ্রিয় আইটি নিবন্ধ লিখেছেন (তার নিবন্ধগুলির উদাহরণ হল: , )। "মাইক্রোসার্ভিস আর্কিটেকচার প্যাটার্নস পার্ট 1: পচনশীল প্যাটার্নস" "Что значит «вариативный»? Объясняем простыми"