paint-brush
AWS, K8S, Docker, Ansible, Git, Github, Apache Maven এবং Jenkins এর সাথে একটি CI/CD পাইপলাইন তৈরি করাদ্বারা@zufarexplained
38,718 পড়া
38,718 পড়া

AWS, K8S, Docker, Ansible, Git, Github, Apache Maven এবং Jenkins এর সাথে একটি CI/CD পাইপলাইন তৈরি করা

দ্বারা Zufar Sunagatov46m2023/09/07
Read on Terminal Reader
Read this story w/o Javascript

অতিদীর্ঘ; পড়তে

AWS, K8S, Docker, Ansible, Apache Maven, Git, Github, এবং Jenkins এর সাথে Zufar Sunagatov-এর সাথে কিভাবে একটি উন্নত CI/CD পাইপলাইন তৈরি করতে হয় তা শিখুন। এই টিউটোরিয়ালের শেষে, আপনি আধুনিক CI/CD পাইপলাইন ব্যবহার করার জন্য একটি প্রস্তুত পাবেন যা Github-এ আপনার যেকোনো প্রকল্পের জন্য প্রযোজ্য।
featured image - AWS, K8S, Docker, Ansible, Git, Github, Apache Maven এবং Jenkins এর সাথে একটি CI/CD পাইপলাইন তৈরি করা
Zufar Sunagatov HackerNoon profile picture
0-item
1-item




আমার পূর্ববর্তী প্রবন্ধে, আমি মাইক্রোসার্ভিসের আকর্ষণীয় জগতের সন্ধান করেছি - মাইক্রোসার্ভিস আর্কিটেকচার প্যাটার্নস পার্ট 1: ডিকম্পোজিশন প্যাটার্নস । এটি ছিল মাইক্রোসার্ভিসেস এবং তাদের নিদর্শনগুলির উপর আমার ব্যাপক নিবন্ধ সিরিজের শুরু।


যদিও যৌক্তিক পদক্ষেপটি এই সিরিজের পার্ট 2 এর সাথে চালিয়ে যাওয়া হবে, আমি সিদ্ধান্ত নিয়েছি যে পরবর্তী যে জিনিসটি আমি অন্বেষণ করতে চাই এবং আপনাকে বলতে চাই তা হল এই মাইক্রোসার্ভিসগুলিকে নির্বিঘ্নে শেষ ব্যবহারকারীর কাছে পৌঁছে দেওয়ার গুরুত্বপূর্ণ প্রক্রিয়া।


বিষয়বস্তু ওভারভিউ

  • প্রেরণা
  • [মডিউল 1]: AWS EC2 ভার্চুয়াল সার্ভার
  • [মডিউল 2]: জেনকিন্স সার্ভার
  • [মডিউল 3]: Git এবং Github
  • [মডিউল 4]: Apache Maven
  • [মডিউল 5]: ডকার
  • [মডিউল 6]: উত্তরযোগ্য
  • [মডিউল 7]: কুবারনেটস
  • উপসংহার
  • লেখক সম্পর্কে



প্রেরণা

CI/CD হল গ্রাহকদের কাছে অ্যাপ সরবরাহ করার একটি কৌশল, যা অ্যাপ বিকাশের বিভিন্ন পর্যায়ে অটোমেশন যোগ করে অর্জন করা হয়। আমি বিশ্বাস করি যে CI/CD (কন্টিনিউয়াস ইন্টিগ্রেশন এবং কন্টিনিউয়াস ডিপ্লোয়মেন্ট) উপলব্ধি করা ডেভেলপারদের ক্ষমতায়িত করতে পারে যাতে প্রকল্পের ভান্ডারের সীমানা ছাড়িয়ে ব্যাকএন্ড প্রকল্পের নিদর্শনগুলি কীভাবে বিদ্যমান তা আরও ভালভাবে বোঝার জন্য। এই বোধগম্যতা একজন বিকাশকারীর দৃষ্টিভঙ্গিতে একটি মৌলিক পরিবর্তনও তৈরি করতে পারে। কেবলমাত্র তাদের কাজকে কোডের লাইন হিসাবে দেখার পরিবর্তে, তারা একটি মূল্যবান পণ্য হিসাবে তাদের প্রকল্পের বিস্তৃত প্রেক্ষাপটকে আলিঙ্গন করতে শুরু করতে পারে।


এই নিবন্ধে, আমরা ব্যবহারিক প্রয়োগের মাধ্যমে সিআই/সিডি প্রক্রিয়াটিকে রহস্যময় করার লক্ষ্য রাখি। আমরা আপনাকে একটি ধাপে ধাপে টিউটোরিয়ালের মাধ্যমে নিয়ে যাব, এটিকে মডিউল দ্বারা মডিউল ভেঙ্গে, যেখানে আপনি ম্যানুয়ালি একটি CI/CD পাইপলাইন তৈরি করবেন। এটি করার জন্য, আমরা AWS, Docker, Kubernetes, Ansible, Git, Apache Maven এবং Jenkins এর মত সমসাময়িক 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: "অ্যাপ্লিকেশন এবং ওএস ইমেজ (অ্যামাজন মেশিন ইমেজ)" বিভাগ কনফিগার করুন


"Application and OS Images (Amazon Machine Image)" বিভাগে যান।

"অ্যাপ্লিকেশন এবং ওএস ইমেজ (অ্যামাজন মেশিন ইমেজ)" বিভাগে পয়েন্টার সহ AWS ওয়েব পৃষ্ঠার স্ক্রিনশট


ভার্চুয়াল সার্ভারের সাথে বিনামূল্যে খেলতে:

  1. আপনার ভার্চুয়াল সার্ভারের জন্য অপারেটিং সিস্টেম নির্বাচন করুন - অ্যামাজন লিনাক্স
  2. Amazon Machine Image (AMI) বিভাগে, বিনামূল্যের স্তরের যোগ্য ট্যাগ সহ একটি মেশিন নির্বাচন করুন৷



"অ্যাপ্লিকেশন এবং ওএস ইমেজ (অ্যামাজন মেশিন ইমেজ)" বিভাগে "OS" এবং "মেশিন টাইপ" বোতামের পয়েন্টার সহ AWS ওয়েব পৃষ্ঠার স্ক্রিনশট


ধাপ 6: "ইনস্ট্যান্স টাইপ" বিভাগটি কনফিগার করুন

"ইনস্ট্যান্স টাইপ" বিভাগে যান।

"ইনস্ট্যান্স টাইপ" বিভাগে পয়েন্টার সহ AWS ওয়েব পৃষ্ঠার স্ক্রিনশট


ভার্চুয়াল সার্ভারের সাথে বিনামূল্যে খেলতে:

ইন্সট্যান্স টাইপ বিভাগে মুক্ত স্তরের যোগ্য ট্যাগ সহ একটি প্রকার নির্বাচন করুন।

আমার জন্য এটি t2.micro (পরিবার: t2 1cCPU 1 GiB মেমরি বর্তমান প্রজন্ম:সত্য)।



"ইনস্ট্যান্স টাইপ" বিভাগে "ইনস্ট্যান্স টাইপ" ড্রপডাউনে পয়েন্টার সহ AWS ওয়েব পৃষ্ঠার স্ক্রিনশট


ধাপ 7: "সঞ্চয়স্থান কনফিগার করুন" বিভাগটি কনফিগার করুন

"সঞ্চয়স্থান কনফিগার করুন" বিভাগে যান।

"সঞ্চয়স্থান কনফিগার করুন" বিভাগে পয়েন্টার সহ AWS ওয়েব পৃষ্ঠার স্ক্রিনশট


ভার্চুয়াল সার্ভারের সাথে বিনামূল্যে খেলতে:

ডিফল্ট সেটিংস পরিবর্তন করবেন না। বিনামূল্যের স্তরের যোগ্য গ্রাহকরা 30 GB EBS জেনারেল পারপাস (SSD) বা ম্যাগনেটিক স্টোরেজ পেতে পারেন।



"সঞ্চয়স্থান কনফিগার করুন" বিভাগে স্টোরেজ সম্ভাব্য কনফিগারেশনের পয়েন্টার সহ AWS ওয়েব পৃষ্ঠার স্ক্রিনশট


ধাপ 8: "নেটওয়ার্ক সেটিংস" বিভাগটি কনফিগার করুন

"নেটওয়ার্ক সেটিংস" বিভাগে যান।

"নেটওয়ার্ক সেটিংস" বিভাগে পয়েন্টার সহ AWS ওয়েব পৃষ্ঠার স্ক্রিনশট


আপনাকে আপনার ভার্চুয়াল সার্ভারের নিরাপত্তা সেট আপ করতে হবে। এটা করতে,

  1. "নিরাপত্তা গোষ্ঠী তৈরি করুন" বোতামে ক্লিক করুন।
  2. "নিরাপত্তা গোষ্ঠীর নাম" বিভাগে আপনার নতুন নিরাপত্তা গোষ্ঠীর নাম যোগ করুন।
  3. "বিবরণ" বিভাগে আপনার নতুন নিরাপত্তা গোষ্ঠীর একটি বিবরণ যোগ করুন।

ডিফল্টরূপে, আপনার ভার্চুয়াল সার্ভারটি ( প্রকার - SSH, প্রোটোকল - TCP, পোর্ট - 22 ) এর মাধ্যমে অ্যাক্সেসযোগ্য। আপনার যদি অতিরিক্ত সংযোগ প্রকারের প্রয়োজন হয়, অতিরিক্ত অন্তর্মুখী নিরাপত্তা গোষ্ঠীর নিয়মগুলি যোগ করে সেগুলি যোগ করুন৷



"নেটওয়ার্ক সেটিংস" বিভাগে "নিরাপত্তা গোষ্ঠী" এর পয়েন্টার সহ AWS ওয়েব পৃষ্ঠার স্ক্রিনশট


ধাপ 9: "কী জোড়া (লগইন)" বিভাগটি কনফিগার করুন

"কী জোড়া (লগইন)" বিভাগে যান।

"কেট পেয়ার (লগইন)" বিভাগে পয়েন্টার সহ AWS ওয়েব পৃষ্ঠার স্ক্রিনশট


আপনি যদি এখনও এটি তৈরি না করে থাকেন তবে একটি নতুন কী-জোড়া তৈরি করুন৷

"কেট পেয়ার (লগইন)" বিভাগে "কী পেয়ারের নাম", "কী পেয়ার টাইপ", "প্রাইভেট কী ফাইল ফরম্যাট" নির্দেশক সহ AWS ওয়েব পৃষ্ঠার স্ক্রিনশট


আপনি যদি এখনও "কী-পেয়ার" তৈরি না করে থাকেন:

  1. "নতুন কী জোড়া তৈরি করুন" বোতামে ক্লিক করুন।
  2. "কী জোড়ার নাম" বিভাগে আপনার নতুন কী-জোড়ার একটি নাম দিন।
  3. কী-পেয়ার টাইপ RSA বা ED25519 নির্বাচন করুন। আমি RSA প্রকার নির্বাচন করি।
  4. ব্যক্তিগত কী ফাইল বিন্যাস নির্বাচন করুন. .pem এবং .ppk- এর পছন্দ। আমি .pem ফরম্যাট বেছে নিই।
  5. "কী জোড়া তৈরি করুন" বোতামে ক্লিক করুন।
  6. আপনি একটি পপ-আপ উইন্ডো পাবেন যা আপনাকে প্রাইভেট কী ফাইল ডাউনলোড করতে বলবে। সম্মত হন এবং আপনার কম্পিউটারে ফাইলটি ডাউনলোড করুন।

ধাপ 10: EC2 ভার্চুয়াল সার্ভার ইনস্ট্যান্স চালু করুন


"লঞ্চ ইনস্ট্যান্স" বোতামে ক্লিক করে EC2 ভার্চুয়াল সার্ভার ইনস্ট্যান্স চালু করুন।

"লঞ্চ ইনস্ট্যান্স" বোতামে পয়েন্টার সহ AWS ওয়েব পৃষ্ঠার স্ক্রিনশট


EC2 ভার্চুয়াল সার্ভার ইনস্ট্যান্স তৈরির প্রক্রিয়া শেষ হওয়ার পরে, আপনি নিম্নলিখিতগুলি দেখতে পাবেন।


AWS ওয়েব পৃষ্ঠার স্ক্রিনশট একটি 'সাফল্য' বিজ্ঞপ্তি প্রদর্শন করে, যা EC2 ভার্চুয়াল সার্ভার ইনস্ট্যান্স তৈরির প্রক্রিয়ার সফল সমাপ্তির ইঙ্গিত দেয়


তারপরে আপনাকে " সব দৃষ্টান্ত দেখুন" বোতামে ক্লিক করে "ইনস্ট্যান্স" বিভাগে যেতে হবে।


EC2 ইনস্ট্যান্স চালানোর পয়েন্টার সহ AWS ওয়েব পৃষ্ঠার স্ক্রিনশট

এখন আপনি দেখতে পাচ্ছেন যে আপনার AWS EC2 ভার্চুয়াল সার্ভার ইনস্ট্যান্স চলছে৷



[মডিউল 2]: জেনকিন্স সার্ভার

এখন, EC2 ভার্চুয়াল সার্ভার ইনস্ট্যান্সে জেনকিন্স সার্ভার কনফিগার করা যাক।

ধাপ 1: একটি AWS EC2 ভার্চুয়াল সার্ভার উদাহরণ তৈরি করুন

জেনকিন্স চালানোর জন্য আপনার একটি ভার্চুয়াল সার্ভার প্রয়োজন।

[মডিউল 1] থেকে নির্দেশাবলী অনুসরণ করুন: এই ধাপটি শেষ করার জন্য এই টিউটোরিয়ালের AWS EC2 ভার্চুয়াল সার্ভার বিভাগে এবং JenkinsServer নামের একটি EC2 ভার্চুয়াল সার্ভারের উদাহরণ তৈরি করুন।

একটি নিরাপত্তা গ্রুপ সেটআপ যোগ করতে ভুলবেন না. এটি জেনকিন্স এবং এসএসএইচকে যথাক্রমে 8080 এবং 22 পোর্টে কাজ করার অনুমতি দেয়।


আপনার EC2 ভার্চুয়াল সার্ভারের উদাহরণকে আলাদা করতে "জেনকিন্স সার্ভার" নামটি ব্যবহার করুন।

একটি নতুন "জেনকিন্স সার্ভার" AWS EC2 উদাহরণের জন্য "CI_CD_Pipeline" নিরাপত্তা গোষ্ঠী এবং "CI_CD_Pipeline_Key_Pair" তৈরি করুন। আপনি নিবন্ধে তাদের আরও পুনরায় ব্যবহার করতে পারেন।


ধাপ 2: একটি AWS EC2 ভার্চুয়াল সার্ভার ইনস্ট্যান্সের সাথে সংযোগ করুন

AWS কনসোলের হোম পেজে যান → EC2 ম্যানেজমেন্ট কনসোল ড্যাশবোর্ডইনস্ট্যান্স।

তারপরে আপনার জেনকিন্স সার্ভার নির্বাচন করা উচিত এবং তারপরে "সংযোগ" বোতামটি ক্লিক করুন।

"সংযোগ" বোতামে পয়েন্টার সহ AWS "ইনস্ট্যান্স" ওয়েব পৃষ্ঠার স্ক্রিনশট


তারপর আপনি এই ওয়েব পেজ দেখতে পাবেন. আপনাকে আবার "সংযোগ" বোতামে ক্লিক করতে হবে।

AWS এর স্ক্রিনশট "কানেক্ট টু ইনস্ট্যান্স" ওয়েব পেজের সাথে পয়েন্টার টু "কানেক্ট" বোতাম


এখন আপনি EC2 ভার্চুয়াল সার্ভার ইনস্ট্যান্স অনলাইন টার্মিনাল দেখতে পারেন।

AWS EC2 ভার্চুয়াল সার্ভার ইনস্ট্যান্স অনলাইন টার্মিনালের স্ক্রিনশট


ধাপ 3: জেনকিন্স সংগ্রহস্থল ডাউনলোড করুন

এখন আপনাকে আপনার EC2 ভার্চুয়াল সার্ভার ইনস্ট্যান্সে জেনকিন্স ডাউনলোড করতে হবে।

এই নির্দেশাবলী অনুসরণ করুন:


  1. জেনকিন্স ডাউনলোড ওয়েবপেজে যান।

  2. আপনি স্থিতিশীল (LTS) এবং নিয়মিত রিলিজ (সাপ্তাহিক) বিকল্প দেখতে পারেন। Red Hat/Fedora/Alma/Rocky/CentOS LTS বিকল্প বেছে নিন।


আপনি এই ওয়েব পেজ দেখতে পাবেন.

জেনকিন্স ডাউনলোড ওয়েব পেজের স্ক্রিনশট


  1. ইন্টারনেটে জেনকিন্স রিপোজিটরি থেকে জেনকিন্স ফাইল ডাউনলোড করতে এবং আপনার 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


আপনি এমন কিছু দেখতে পাবেন।

ইনস্টল করা JDK 11 সহ AWS EC2 ভার্চুয়াল সার্ভার ইনস্ট্যান্স অনলাইন টার্মিনালের স্ক্রিনশট


ধাপ 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


আপনি আউটপুট দেখতে পাবেন যেমনটি নীচের স্ক্রিনশটে রয়েছে:

ইনস্টল করা জেনকিন্স সহ AWS EC2 ভার্চুয়াল সার্ভার ইনস্ট্যান্স অনলাইন টার্মিনালের স্ক্রিনশট


জেনকিন্স এখন আপ এবং চলমান করা উচিত.

ধাপ 9: জেনকিন্স অ্যাক্সেস করুন

জেনকিন্স অ্যাপ্লিকেশানটি অ্যাক্সেস করতে, যেকোনো ওয়েব ব্রাউজার খুলুন এবং আপনার EC2 উদাহরণের সর্বজনীন আইপি ঠিকানা বা পোর্ট 8080 অনুসরণ করে ডোমেন নাম লিখুন।


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


প্রথমবার যখন আপনি জেনকিন্স অ্যাক্সেস করবেন, এটি একটি স্বয়ংক্রিয় পাসওয়ার্ড দিয়ে লক করা হবে।

প্রশাসকের পাসওয়ার্ডের পয়েন্টার সহ AWS EC2 ভার্চুয়াল সার্ভারে ইনস্টল করা জেনকিন্সের স্ক্রিনশট


আপনাকে নিম্নলিখিত কমান্ডটি ব্যবহার করে এই পাসওয়ার্ডটি প্রদর্শন করতে হবে।

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


এই পাসওয়ার্ডটি অনুলিপি করুন, আপনার ব্রাউজারে ফিরে আসুন, এটি অ্যাডমিনিস্ট্রেটর পাসওয়ার্ড ক্ষেত্রে পেস্ট করুন এবং "চালিয়ে যান" এ ক্লিক করুন।


তারপর আপনি এই ওয়েব পেজ দেখতে সক্ষম হবে.


জেনকিন্সের স্ক্রিনশট AWS EC2 ভার্চুয়াল সার্ভারে "জেনকিন্স কাস্টমাইজ" ওয়েব পৃষ্ঠার পয়েন্টার সহ ইনস্টল করা হয়েছে


এখন, আপনি আপনার জেনকিন্স সার্ভার ব্যবহার করতে পারেন।


ধাপ 10: নতুন জেনকিন্স পাইপলাইন তৈরি করুন

এখন, যেহেতু জেনকিন্স ঠিকঠাক কাজ করছে, আপনি জেনকিন্স পাইপলাইন তৈরি করা শুরু করতে পারেন। জেনকিন্স পাইপলাইন তৈরি করতে আপনাকে একটি নতুন "ফ্রিস্টাইল প্রকল্প" তৈরি করতে হবে। একটি নতুন "ফ্রিস্টাইল প্রকল্প" তৈরি করতে আপনাকে জেনকিন্স ড্যাশবোর্ডে যেতে হবে এবং "নতুন আইটেম" বোতামে ক্লিক করতে হবে।


"নতুন আইটেম" বোতামে নির্দেশক সহ জেনকিন্স ড্যাশবোর্ড ওয়েব পৃষ্ঠার স্ক্রিনশট


Github "ফ্রিস্টাইল প্রজেক্ট" এর নাম লিখুন ("পাইপলাইন" নামটি আরও ব্যবহার করা হবে) এবং তারপরে "ঠিক আছে" বোতামটি ক্লিক করুন।


"আইটেমের নাম" আইটেম বক্সের পয়েন্টার সহ জেনকিন্স নিউ আইটেম ওয়েব পৃষ্ঠার স্ক্রিনশট


তারপর পাইপলাইনের বিবরণ প্রদান করুন।

"বিবরণ" ইনপুট বক্সের পয়েন্টার সহ জেনকিন্স জব কনফিগারেশন ওয়েব পৃষ্ঠার স্ক্রিনশট


তারপর "প্রয়োগ করুন" এবং "সংরক্ষণ করুন" বোতামে ক্লিক করুন। এর পরে, এর মানে হল আপনি পাইপলাইনের ভিত্তি তৈরি করেছেন যা এই টিউটোরিয়ালে নির্মিত হতে চলেছে।



[মডিউল 3]: Git এবং Github

এখন যেহেতু জেনকিন্স AWS EC2 ভার্চুয়াল সার্ভার ইনস্ট্যান্সে চলছে, আপনি পাইপলাইনের সাথে গিট কনফিগার করতে পারেন।

Git হল একটি মুক্ত এবং ওপেন সোর্স ডিস্ট্রিবিউটেড ভার্সন কন্ট্রোল সিস্টেম (VCS) যা সফ্টওয়্যার দলগুলিকে একটি বিশেষ ধরনের ডাটাবেসে কোডের প্রতিটি পরিবর্তনের ট্র্যাক রাখতে সাহায্য করার জন্য ডিজাইন করা হয়েছে৷ যদি একটি ভুল করা হয়, বিকাশকারীরা ঘড়িটি ফিরিয়ে দিতে পারে এবং সমস্ত দলের সদস্যদের বাধা কমিয়ে ভুল সংশোধন করতে সহায়তা করতে কোডের আগের সংস্করণগুলির তুলনা করতে পারে। VCS এর জন্য বিশেষভাবে উপযোগী DevOps দলগুলি যেহেতু তারা তাদের বিকাশের সময় কমাতে এবং সফল স্থাপনা বাড়াতে সহায়তা করে [1]।

সবচেয়ে জনপ্রিয় ভার্সন কন্ট্রোল সিস্টেম হিসাবে গিট আমাদেরকে আপনার প্রোজেক্ট 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 প্লাগইন ডাউনলোড শেষ হওয়ার জন্য অপেক্ষা করুন।


ডাউনলোড করা 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 থেকে একটি প্রকল্প টানতে আপনার আপডেট করা পাইপলাইন ব্যবহার করতে পারেন। এটি করার জন্য আপনাকে **"এখনই তৈরি করুন"** বোতামে ক্লিক করতে হবে। ফলস্বরূপ, আপনি বিল্ড ইতিহাসে একটি সফল বিল্ড দেখতে পাবেন।


"এখনই তৈরি করুন" বোতাম এবং "বিল্ড ইতিহাস" বিভাগে পয়েন্টার সহ জেনকিন্স ওয়েব পৃষ্ঠার স্ক্রিনশট



বিল্ড ইতিহাস থেকে প্রথম বিল্ড খুলুন।

সফল কাজের ফলাফল সহ Jenkins Pull_Code_From_Github_Job এর স্ক্রিনশট


এখন আপনি প্রথম বিল্ডের সফল কাজের ফলাফল দেখতে পারেন। আপনি যদি আপনার AWS EC2 টার্মিনাল খোলেন। আপনি পরীক্ষা করতে পারেন যে পাইপলাইন ভাল কাজ করে।


শুধু এই কমান্ড ব্যবহার করুন.

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


এইভাবে আপনি দেখতে পাচ্ছেন যে Github থেকে আপনার প্রকল্পটি আপনার AWS EC2 ভার্চুয়াল সার্ভার উদাহরণে টানা হয়েছে।


Github প্রকল্পের স্ক্রিনশট EC2 ইনস্ট্যান্স টার্মিনালে ডাউনলোড করা হয়েছে



[মডিউল 4]: Apache Maven

Apache Maven একটি বহুল ব্যবহৃত বিল্ড অটোমেশন এবং প্রজেক্ট ম্যানেজমেন্ট টুল সফটওয়্যার ডেভেলপমেন্টে। এটি প্রকল্প নির্ভরতাগুলি পরিচালনা করে এবং একটি সামঞ্জস্যপূর্ণ বিল্ড লাইফসাইকেল প্রদান করে কম্পাইলিং, টেস্টিং এবং প্যাকেজিং কোডের প্রক্রিয়াটিকে প্রবাহিত করে। Maven XML-ভিত্তিক কনফিগারেশন ফাইল (POM ফাইল) নিয়োগ করে প্রকল্পের কাঠামো, নির্ভরতা এবং কাজগুলিকে সংজ্ঞায়িত করতে, যা ডেভেলপারদের দক্ষতার সাথে জটিল সফ্টওয়্যার প্রকল্পগুলি পরিচালনা এবং স্থাপন করতে সক্ষম করে।


এখন যেহেতু আপনি পাইপলাইনে 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


JAVA_HOME এবং M2_HOME ভেরিয়েবল যোগ করুন।


JAVA_HOME- এর জন্য JDK11-এর পাথ এবং M2_HOME ভেরিয়েবলের জন্য maven ডিরেক্টরির পাথ বরাদ্দ করুন।


JDK পাথ খুঁজে পেতে, এই কমান্ডটি ব্যবহার করুন।

 sudo find / -name java 



.bash_profile ফাইল সহ AWS EC2 ভার্চুয়াল সার্ভার ইনস্ট্যান্স টার্মিনাল ওয়েব পৃষ্ঠার স্ক্রিনশট


কিভাবে ভিআইএম ব্যবহার করবেন

  • ফাইলটি সম্পাদনা করতে কীবোর্ড বোতাম টিপুন “I” ডেটা সন্নিবেশ করতে।
  • ফাইলটি সংরক্ষণ করতে কীবোর্ড বোতাম টিপুন " esc " এবং লিখুন ":w"।
  • ফাইল থেকে প্রস্থান করতে কীবোর্ড বোতাম টিপুন " esc " এবং লিখুন ":q"

পরিবর্তনগুলি সংরক্ষণ করুন।


তারপর, সিস্টেম ভেরিয়েবল রিফ্রেশ করতে এই কমান্ডটি চালান।

 source .bash_profile


$PATH যাচাই করতে, এই কমান্ডটি ব্যবহার করুন।

 echo $PATH


Apache Maven যাচাই করতে, এই কমান্ডটি ব্যবহার করুন।

 mvn -v


আপনি যদি সবকিছু সঠিকভাবে করে থাকেন তবে আপনি Apache Maven এর সংস্করণটি দেখতে সক্ষম হবেন।

Apache Maven এর সংস্করণ সহ AWS EC2 ভার্চুয়াল সার্ভার ইনস্ট্যান্স টার্মিনাল ওয়েব পৃষ্ঠার স্ক্রিনশট


ধাপ 4: Apache Maven Jenkins প্লাগইন ইনস্টল করুন

যেহেতু Apache Maven একটি EC2 উদাহরণে ব্যবহার করা যেতে পারে, আপনি পাইপলাইনের সাথে এটিকে একীভূত করতে Apache Maven প্লাগইন ইনস্টল করতে পারেন।


এটি অর্জন করতে, এই পদক্ষেপগুলি অনুসরণ করুন:

  1. "ড্যাশবোর্ড" → "জেনকিন্স পরিচালনা করুন" → "প্লাগইনগুলি পরিচালনা করুন" → "উপলব্ধ" এ নেভিগেট করুন।
  2. অনুসন্ধান বাক্সে, "Maven" লিখুন।
  3. "Maven ইন্টিগ্রেশন" প্লাগইন নির্বাচন করুন।


জেনকিন্সের স্ক্রিনশট AWS EC2 ভার্চুয়াল সার্ভারে মাভেন প্লাগইনের পয়েন্টার সহ ইনস্টল করা হয়েছে


ডাউনলোড প্রক্রিয়া শেষ হওয়ার জন্য অপেক্ষা করুন।


এবং তারপর "শীর্ষ পৃষ্ঠায় ফিরে যান" বোতামটি ক্লিক করুন।

Maven প্লাগইন ডাউনলোড প্রক্রিয়ার পয়েন্টার সহ AWS EC2 ভার্চুয়াল সার্ভারে ইনস্টল করা জেনকিন্সের স্ক্রিনশট


ধাপ 5: Apache Maven Jenkins প্লাগইন কনফিগার করুন

Apache Maven Jenkins প্লাগইনটির সফল ইনস্টলেশনের সাথে, আপনি এখন এই প্লাগইনটিকে পাইপলাইনের মধ্যে ব্যবহার করতে পারবেন যা আপনি মডিউল 2 এবং 3 এ তৈরি এবং আপডেট করেছেন।


এটি করতে, এই পদক্ষেপগুলি অনুসরণ করুন:

  1. "ড্যাশবোর্ড" → "জেনকিন্স পরিচালনা করুন" → "গ্লোবাল টুল কনফিগারেশন" → "জেডিকে" এ যান
  2. "JDK যোগ করুন" বোতামে ক্লিক করুন।
  3. "স্বয়ংক্রিয়ভাবে ইনস্টল করুন" আনচেক করুন।



জেডিকে কনফিগারেশনের পয়েন্টার সহ AWS EC2 ভার্চুয়াল সার্ভারে ইনস্টল করা জেনকিন্সের স্ক্রিনশট



তারপর "Maven" বিভাগে যান। "Maven যোগ করুন" বোতামে ক্লিক করুন। "স্বয়ংক্রিয়ভাবে ইনস্টল করুন" আনচেক করুন।

তারপর নাম এবং MAVEN_HOME পাথ যোগ করুন।



Apache Maven কনফিগারেশনের পয়েন্টার সহ AWS EC2 ভার্চুয়াল সার্ভারে ইনস্টল করা জেনকিন্সের স্ক্রিনশট



"প্রয়োগ করুন" এবং "সংরক্ষণ করুন" বোতামে ক্লিক করুন।

এখানে, আপনি Apache Maven Jenkins প্লাগইন কনফিগার করা শেষ করেছেন।


ধাপ 6: পাইপলাইনে Apache Maven সংহত করুন

এখন যেহেতু Apache Maven GitHub প্লাগইন ইনস্টল এবং কনফিগার করা হয়েছে, আপনি এখন আপনার পাইপলাইনের মধ্যে Apache Maven ব্যবহার করতে পারবেন। এটি আপনার পাইপলাইনকে অনুমতি দেবে যা আপনি "[মডিউল 2]: জেনকিন্স সার্ভার"-এ তৈরি করেছেন একটি জার আর্টিফ্যাক্ট তৈরি করতে আপনার প্রকল্প কোড তৈরি করতে।


পাইপলাইনে Apache Maven সংহত করতে আপনাকে এই পদক্ষেপগুলি অনুসরণ করতে হবে:

  1. "ড্যাশবোর্ড" → "CI_CD_Pipeline" → "কনফিগার করুন" → "বিল্ড স্টেপস"-এ নেভিগেট করুন।
  2. "বিল্ড স্টেপ যোগ করুন" বোতামে ক্লিক করুন।
  3. "টপ-লেভেল ম্যাভেন টার্গেটগুলি ইনভোক করুন" বিকল্পটি বেছে নিন।
  4. "Maven সংস্করণ" হিসাবে "Apache-Maven" নির্বাচন করুন।
  5. "লক্ষ্য" ইনপুটে "ক্লিন প্যাকেজ" কমান্ড যোগ করুন।
  6. "উন্নত" বোতামে ক্লিক করুন।
  7. "POM" ইনপুটে "pom.xml" যোগ করুন।



পাইপলাইন কনফিগারেশনে "প্রয়োগ করুন" এবং "সংরক্ষণ করুন" বোতামে পয়েন্টার সহ "বিল্ড স্টেপস" বিভাগের স্ক্রিনশট



অবশেষে, পাইপলাইনের সাথে 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 ভার্চুয়াল সার্ভার ইনস্ট্যান্স চালু করুন

এই ধাপটি শেষ করতে এই টিউটোরিয়ালের " AWS EC2 ভার্চুয়াল সার্ভার ইনস্ট্যান্স চালু করুন" বিভাগের নির্দেশাবলী ব্যবহার করুন। একটি নিরাপত্তা গ্রুপ সেটআপ যোগ করতে ভুলবেন না. এটি ডকার এবং এসএসএইচকে যথাক্রমে 8080 এবং 22 পোর্টে কাজ করার অনুমতি দেয়।


ধাপ 2: একটি AWS EC2 ভার্চুয়াল সার্ভার ইনস্ট্যান্সের সাথে সংযোগ করুন

"সংযোগ" বোতামে ক্লিক করুন।

"সংযোগ" বোতামে পয়েন্টার সহ AWS ওয়েব পৃষ্ঠার স্ক্রিনশট


এখন আপনি EC2 ভার্চুয়াল সার্ভার ইনস্ট্যান্স অনলাইন টার্মিনাল দেখতে পারেন।

AWS 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


নতুন ডকার ব্যবহারকারী বিদ্যমান তা দেখতে।


ডকার ব্যবহারকারীর কাছে পয়েন্টার সহ Ansible EC2 উদাহরণের স্ক্রিনশট


ধাপ 5: ডকার চালু করুন

এখন যেহেতু ডকার Ansible EC2 ইন্সট্যান্সে ইনস্টল করা আছে আপনি পরবর্তী কমান্ডটি কার্যকর করার মাধ্যমে এটি চালু করতে পারেন।

 sudo systemctl start docker


ডকার শুরু হওয়ার সাথে সাথে আপনি পরবর্তী কমান্ডটি চালাতে পারেন

 sudo systemctl status docker


দেখতে যে ডকার সক্রিয় এবং এখন চলছে।

সক্রিয় ডকার স্ট্যাটাস সহ Ansible EC2 উদাহরণের স্ক্রিনশট


ধাপ 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 আর্টিফ্যাক্ট অনুলিপি করে এবং "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


এই পদক্ষেপগুলি অনুসরণ করে, আপনি একটি নতুন ছবি দেখতে পাচ্ছেন কি না তা যাচাই করতে আপনার ডকারহাব অ্যাকাউন্টে নেভিগেট করুন।

নতুন ছবির সাথে ডকারহাব অ্যাকাউন্টের স্ক্রিনশট যোগ করা হয়েছে


আপনার এখন লক্ষ্য করা উচিত যে ছবিটি কার্যকরভাবে যুক্ত করা হয়েছে। এই ফলাফল ডকার পরিবেশের সফল ইনস্টলেশন নিশ্চিত করে এবং আপনার ডকারফাইলটি সঠিক।



[মডিউল 6]: উত্তরযোগ্য

এখন আসুন আমরা EC2 ভার্চুয়াল সার্ভার ইনস্ট্যান্সে উত্তরযোগ্য সার্ভার কনফিগার করি।


ধাপ 1: একটি AWS EC2 ভার্চুয়াল সার্ভার উদাহরণ তৈরি করুন

Ansible চালানোর জন্য আপনার একটি ভার্চুয়াল সার্ভার প্রয়োজন।


[মডিউল 1] থেকে নির্দেশাবলী অনুসরণ করুন: এই ধাপটি শেষ করতে এবং Ansible-এর জন্য একটি EC2 ভার্চুয়াল সার্ভার উদাহরণ তৈরি করতে এই টিউটোরিয়ালের AWS EC2 ভার্চুয়াল সার্ভার বিভাগ।

একটি নিরাপত্তা গ্রুপ সেটআপ যোগ করতে ভুলবেন না. এটি Ansible এবং SSH কে যথাক্রমে পোর্ট 8080 এবং 22 এ কাজ করার অনুমতি দেয়।


আপনার EC2 ভার্চুয়াল সার্ভারের উদাহরণকে আলাদা করতে "AnsibleServer" নামটি ব্যবহার করুন।

আপনি একটি নতুন "AnsibleServer" EC2 উদাহরণের জন্য "CI_CD_Pipeline" নিরাপত্তা গ্রুপ এবং "CI_CD_Pipeline_Key_Pair" পুনরায় ব্যবহার করতে পারেন।


ধাপ 2: একটি AWS EC2 ভার্চুয়াল সার্ভার ইনস্ট্যান্সের সাথে সংযোগ করুন

AWS কনসোলের হোম পেজে যান → EC2 ম্যানেজমেন্ট কনসোল ড্যাশবোর্ড → ইনস্ট্যান্স → অ্যান্সিবল সার্ভার।


তারপর "সংযোগ" বোতামে ক্লিক করুন।

"সংযোগ" বোতামে পয়েন্টার সহ AWS ওয়েব পৃষ্ঠার স্ক্রিনশট


তারপর আপনি এই ওয়েব পেজ দেখতে পাবেন. আপনাকে আবার "সংযোগ" বোতামে ক্লিক করতে হবে।


AWS এর স্ক্রিনশট "কানেক্ট টু ইনস্ট্যান্স" ওয়েব পেজের সাথে পয়েন্টার টু "কানেক্ট" বোতাম


এখন আপনি EC2 ভার্চুয়াল সার্ভার ইনস্ট্যান্স অনলাইন টার্মিনাল দেখতে পারেন।

AWS EC2 ভার্চুয়াল সার্ভার ইনস্ট্যান্স অনলাইন টার্মিনালের স্ক্রিনশট


এখন আসুন EC2 ভার্চুয়াল সার্ভার ইনস্ট্যান্সে Ansible সার্ভার কনফিগার করি।

ধাপ 3: "AnsibleServer" AWS EC2 ভার্চুয়াল সার্ভার উদাহরণের হোস্টনাম পরিবর্তন করুন

আপনি যখন EC2 ভার্চুয়াল সার্ভার ইনস্ট্যান্সে AnsibleServer কনফিগার করতে চান তখন আপনাকে প্রথমে যা করতে হবে তা হল এর হোস্টনাম পরিবর্তন করা।


চল এটা করি. হোস্টনাম ফাইল খুলতে এই কমান্ডটি চালান:

 sudo vi /etc/hostname


আপনি এই মত কিছু দেখতে হবে:

হোস্টনাম ফাইল সহ AWS EC2 ভার্চুয়াল সার্ভার উদাহরণের স্ক্রিনশট


এই হোস্টনামটি "অ্যানসিবল-সার্ভার" দিয়ে প্রতিস্থাপন করুন। তারপর, এটি রিবুট করুন।

 sudo init 6 



হোস্টনামের পয়েন্টার সহ AWS EC2 ভার্চুয়াল সার্ভার ইনস্ট্যান্স টার্মিনালের স্ক্রিনশট


ধাপ 4: "AnsibleServer" AWS EC2 ভার্চুয়াল সার্ভার উদাহরণে একটি নতুন ব্যবহারকারী যোগ করুন এবং কনফিগার করুন

এখন AWS EC2 ভার্চুয়াল সার্ভার ইনস্ট্যান্সে একটি নতুন উত্তরযোগ্য-প্রশাসক ব্যবহারকারী যোগ করা যাক।

এটি করতে এই কমান্ডটি ব্যবহার করুন:


 sudo useradd 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: Ansible ইনস্টল করুন

এখন আপনি আপনার “AnsibleServer” EC2 ভার্চুয়াল সার্ভার ইনস্ট্যান্সে Ansible ইনস্টল করতে পারেন।

চল এটা করি.


Ansible ইনস্টল করতে এই কমান্ডটি চালান।

 sudo amazon-linux-extras install ansible2


Ansible যাচাই করতে, এই কমান্ডটি ব্যবহার করুন:

 ansible --version


এই কমান্ডটি কার্যকর করার ফলস্বরূপ, আপনি দেখতে পাবেন:

AWS EC2 ভার্চুয়াল সার্ভার ইনস্ট্যান্স টার্মিনালের স্ক্রিনশট সুডো ইয়ম ইনস্টল করার জন্য পয়েন্টার সহ উত্তরযোগ্য ফলাফল


ধাপ 7: জেনকিন্স সার্ভার EC2 ইন্সট্যান্সে জেনকিন্স "SSH উপর প্রকাশ করুন" প্লাগইন ইনস্টল করুন

যেহেতু Ansible আপনার “AnsibleServer” EC2 ভার্চুয়াল সার্ভার ইনস্ট্যান্সে ইনস্টল করা আছে, আপনি এটিকে Ansible-এর সাথে সংহত করতে Jenkins কনফিগার করতে পারেন। EC2 ভার্চুয়াল সার্ভার ইনস্ট্যান্স যেখানে Ansible ইন্সটল করা আছে এবং যেখানে Kubernetes ইন্সটল করা আছে সেখানে অন্যান্য EC2 ভার্চুয়াল সার্ভার ইনস্ট্যান্সের সাথে জেনকিন্সকে ইন্টিগ্রেট করতে আপনাকে “SSH এর উপর প্রকাশ করুন” প্লাগইন ইনস্টল করতে হবে।


"ড্যাশবোর্ড" → " জেনকিন্স পরিচালনা করুন""সিস্টেম কনফিগার করুন""উপলব্ধ প্লাগইনস" এ যান।

তারপরে অনুসন্ধান বাক্সে "SSH উপর প্রকাশ করুন" লিখুন।


জেনকিন্সের স্ক্রিনশট AWS EC2 ভার্চুয়াল সার্ভারে "উপলভ্য প্লাগইনস" ওয়েব পৃষ্ঠার পয়েন্টার সহ ইনস্টল করা হয়েছে


"রিস্টার্ট ছাড়াই ইনস্টল করুন" বোতামে ক্লিক করুন। ডাউনলোড প্রক্রিয়া শেষ হওয়ার জন্য অপেক্ষা করুন।


AWS EC2 ভার্চুয়াল সার্ভারে "ডাউনলোড অগ্রগতি" ওয়েব পৃষ্ঠার পয়েন্টার সহ জেনকিন্সের স্ক্রিনশট



এখন জেনকিন্স EC2 ভার্চুয়াল সার্ভার ইনস্ট্যান্সে "SSH ওভারে প্রকাশ করুন" প্লাগইন ইনস্টল করা আছে।


ধাপ 8: জেনকিন্স কনফিগার করুন "SSH উপর প্রকাশ করুন" প্লাগইন

Apache Maven Jenkins প্লাগইনটির সফল ইনস্টলেশনের সাথে, আপনি এখন এই প্লাগইনটিকে পাইপলাইনের মধ্যে ব্যবহার করতে পারবেন যা আপনি মডিউল 2 এবং 3 এ তৈরি এবং আপডেট করেছেন।


এটি করতে, এই পদক্ষেপগুলি অনুসরণ করুন:


"ড্যাশবোর্ড""জেনকিন্স পরিচালনা করুন""সিস্টেম কনফিগার করুন""এসএসএইচ-এ প্রকাশ করুন" এ যান।

"Publish over SSH" প্লাগইন সহ AWS EC2 ভার্চুয়াল সার্ভার ইনস্ট্যান্স টার্মিনালের স্ক্রিনশট


হোস্টনাম, ইউজারনেম, এবং প্রাইভেট কী (বা প্রযোজ্য হলে পাসওয়ার্ড) সহ স্ক্রিনশটে থাকা সমস্ত প্রয়োজনীয় ডেটা লিখুন।


"Publish over SSH" প্লাগইন সহ AWS EC2 ভার্চুয়াল সার্ভার ইনস্ট্যান্স টার্মিনালের স্ক্রিনশট


তারপরে "প্রয়োগ করুন" এবং "সংরক্ষণ করুন" বোতামে ক্লিক করুন।


এখানে আপনি “SSH এর উপর প্রকাশ করুন” জেনকিন্স প্লাগইন কনফিগার করা শেষ করেছেন।


এরপরে, প্লাগইনটি সঠিকভাবে কাজ করছে কিনা তা যাচাই করতে "পরীক্ষা কনফিগারেশন" এ ক্লিক করুন।



"পরীক্ষা কনফিগারেশন" বোতাম সহ "SSH উপর প্রকাশ করুন" প্লাগইনটির স্ক্রিনশট


বাম দিকে আপনি দেখতে পাচ্ছেন যে টেস্ট প্লাগইন কনফিগারেশন স্ট্যাটাস "সফল"। এর মানে প্লাগইন কনফিগারেশন সঠিক।


ধাপ 9: AnsibleServer এ নতুন ডকার ডিরেক্টরি তৈরি করুন

আপনাকে AnsibleServer EC2 উদাহরণে একটি নতুন ফোল্ডার তৈরি করতে হবে যেখানে প্রকল্প JAR সংরক্ষণ করা হবে। এই জার পরে একটি ডকার ইমেজ তৈরি করতে ব্যবহার করা হবে।


চল শুরু করি.


AnsibleServer EC2 উদাহরণে "/ opt" ফোল্ডারে যান।

 cd /opt


সেখানে একটি নতুন ফোল্ডার "ডকার" তৈরি করুন।

 sudo mkdir docker


এই "ডকার" ফোল্ডারে বিশেষাধিকার দিন।

 sudo chown ansible-admin:ansible-admin docker


এখন, এই কমান্ডটি কার্যকর করে "ডকার" ফোল্ডারের সুবিধাগুলি পরীক্ষা করুন।

 ll


আপনি দেখতে পাচ্ছেন যে "ডকার" ফোল্ডারটি "অ্যানসিবল-অ্যাডমিন" ব্যবহারকারীর সাথে অ্যাক্সেসযোগ্য।


"AnsibleServer" EC2 উদাহরণে "ডকার" ফোল্ডারের স্ক্রিনশট


ধাপ 10: পাইপলাইনে "Publish over SSH" Github প্লাগইন একীভূত করুন


এখন যেহেতু "SSH এর উপর প্রকাশ করুন" Github প্লাগইন ইনস্টল এবং কনফিগার করা হয়েছে, আপনি এখন এটিকে "[মডিউল 2]: জেনকিন্স সার্ভার"-এ " জেনকিন্স সার্ভার" থেকে একটি প্রজেক্ট জার আর্টিফ্যাক্ট স্থানান্তর করতে পাইপলাইনে একীভূত করতে সক্ষম "Ansible সার্ভার"


ঠিক আছে, পাইপলাইনে "SSH এর উপর প্রকাশ করুন" Github প্লাগইনকে একীভূত করতে আপনাকে এই পদক্ষেপগুলি অনুসরণ করতে হবে:


  1. "ড্যাশবোর্ড" → "CI_CD_Pipeline" → "কনফিগার করুন" → "পোস্ট-বিল্ড অ্যাকশন"-এ নেভিগেট করুন।
  2. "পোস্ট-বিল্ড অ্যাকশন যোগ করুন" বোতামে ক্লিক করুন।
  3. "SSH ওভার বিল্ড আর্টিফ্যাক্ট পাঠান" বিকল্পটি বেছে নিন।
  4. "SSH সার্ভার" বিভাগে "নাম" ইনপুটে "AnsibleServer" যোগ করুন**.**
  5. "ট্রান্সফার সেট" বিভাগে "সোর্স ফাইল" ইনপুটে "target/*.jar" যোগ করুন**.**
  6. "ট্রান্সফার সেট" বিভাগে "উপসর্গ সরান" ইনপুটে "টার্গেট/" যোগ করুন**।**
  7. "ট্রান্সফার সেট" বিভাগে "রিমোট ডিরেক্টরি" ইনপুটে "//অপ্ট/ডকার/" যোগ করুন**।**
  8. আপাতত, 'ট্রান্সফার সেট' বিভাগের অধীনে 'Exec কমান্ড' ইনপুটে একটি খালি স্ট্রিং রাখুন।



পাইপলাইন কনফিগারেশনে "SSH এর উপর বিল্ড আর্টিফ্যাক্ট পাঠান" বিভাগের স্ক্রিনশট


অবশেষে, পাইপলাইনের সাথে "Publish over SSH" প্লাগইন ইন্টিগ্রেশন শেষ করতে আপনাকে "প্রয়োগ করুন" এবং "সংরক্ষণ করুন" বোতামে ক্লিক করতে হবে।


ধাপ 11: পাইপলাইনে সমন্বিত গিথুব প্লাগইন "এসএসএইচের উপর প্রকাশ করুন" পরীক্ষা করুন

এখন আপনি " JenkinsServer" থেকে "AnsibleServer" এ একটি প্রজেক্ট জার আর্টিফ্যাক্ট স্থানান্তর করতে আপনার আপডেট করা পাইপলাইন ব্যবহার করতে পারেন। এটি করতে আপনাকে "এখনই তৈরি করুন" বোতামে ক্লিক করতে হবে। ফলস্বরূপ আপনি বিল্ড ইতিহাসে একটি সফল কাজের ফলাফল দেখতে পাবেন।


আপনি যদি আপনার "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


আপনি একটি রেফারেন্স হিসাবে "[উত্তরযোগ্য]" যোগ করতে পারেন

উত্তরযোগ্য হোস্ট ফাইলের স্ক্রিনশট


আপনি যদি একটি ক্লাস্টার সার্ভার পরিচালনা করেন এবং আপনি প্লেবুকে প্রতিটি সার্ভারের আইপি ঠিকানা নির্দিষ্ট করার পরিবর্তে তাদের সকলের জন্য একটি প্লেবুক প্রয়োগ করতে চান, আপনি কেবল ইনভেন্টরি ফাইলের একটি গ্রুপে সমস্ত সার্ভার যোগ করতে পারেন এবং তারপরে নির্দিষ্ট করতে পারেন প্লেবুকে গ্রুপ।


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


সফল পাসওয়ার্ডহীন ssh প্রমাণীকরণ ইনস্টলেশন ফলাফলের স্ক্রিনশট


এখন আপনি "সংযুক্ত কী(গুলি) সংখ্যা: 1" দেখতে পারেন। এর অর্থ হল পাসওয়ার্ডহীন SSH প্রমাণীকরণ ইনস্টলেশন সফলভাবে সম্পন্ন হয়েছে।

ধাপ 14: ডকার কাজের জন্য একটি নতুন উত্তরযোগ্য প্লেবুক তৈরি করুন

এখন যেহেতু Ansible সব সেট আপ করা হয়েছে এবং যেতে ভালো, আপনি আপনার পাইপলাইনের জন্য একটি নতুন Ansible প্লেবুক তৈরি করতে পারেন। এই প্লেবুকটি Ansible কে Dockerhub-এ একটি নতুন ডকার ইমেজ তৈরি এবং পাঠাতে দেবে।

আপনি কিভাবে এটি করতে পারেন তা এখানে:


  1. একটি নতুন উত্তরযোগ্য প্লেবুক ফাইল তৈরি করে শুরু করুন। শুধু এই কমান্ড ব্যবহার করুন.
 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 playbook, AnsibleServer, এবং JenkinsServer সবগুলো সঠিকভাবে কনফিগার করার সাথে সাথে, Ansible প্লেবুক পরীক্ষা করার সময় এসেছে।


আপনার উত্তরযোগ্য প্লেবুকের অবস্থানে নেভিগেট করুন।

 cd /opt/docker


তারপরে, নিম্নলিখিত কমান্ডটি চালান।

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


সমাপ্তির পরে, আপনি আপনার উত্তরযোগ্য প্লেবুকের সফল সম্পাদনের ফলাফল দেখতে পাবেন।

ডকার কাজের জন্য উত্তরযোগ্য প্লেবুকের সফল সম্পাদনের ফলাফলের স্ক্রিনশট


তদ্ব্যতীত, আপনার ডকারহাব অ্যাকাউন্টটি দেখার জন্য কিছুক্ষণ সময় নিন এবং একটি নতুন চিত্র এখন দৃশ্যমান কিনা তা যাচাই করুন।


নতুন ছবির সাথে ডকারহাব অ্যাকাউন্টের স্ক্রিনশট যোগ করা হয়েছে


আপনি নতুন যোগ ইমেজ দেখতে হবে. এই ফলাফল নিশ্চিত করে যে আপনার উত্তরযোগ্য প্লেবুক সঠিক।


ধাপ 14: পাইপলাইনে উত্তরযোগ্য ডকার কাজগুলিকে একীভূত করুন

এখন "SSH এর উপর প্রকাশ করুন" Github প্লাগইন, Ansible এবং Docker ইনস্টল এবং কনফিগার করা হয়েছে, আপনি এখন একটি প্রকল্প জার আর্টিফ্যাক্ট স্থানান্তর করতে "[মডিউল 2]: জেনকিন্স সার্ভার"-এ তৈরি করা পাইপলাইনে সেগুলিকে একীভূত করতে সক্ষম। " জেনকিন্স সার্ভার" থেকে "অ্যান্সিবল সার্ভার" এবং তারপরে আপনার প্রকল্প থেকে একটি নতুন ডকার ইমেজ তৈরি করুন এবং তারপরে এই ডকার ইমেজটিকে ডকারহাবের দিকে ঠেলে দিন।


এটি অর্জন করতে আপনাকে এই পদক্ষেপগুলি অনুসরণ করতে হবে:

  1. "ড্যাশবোর্ড" → "CI_CD_Pipeline" → "কনফিগার" → "পোস্ট-বিল্ড অ্যাকশন" → "SSH এর মাধ্যমে বিল্ড আর্টিফ্যাক্ট পাঠান" এ নেভিগেট করুন।
  2. "Exec কমান্ড" ইনপুটে "sudo -u ansible-admin ansible-playbook /opt/docker/hello-app.yml" কমান্ড যোগ করুন।


পাইপলাইন কনফিগারেশনে "SSH এর উপর বিল্ড আর্টিফ্যাক্ট পাঠান" বিভাগের স্ক্রিনশট


অবশেষে, পাইপলাইনের সাথে ইন্টিগ্রেশন অ্যান্সিবল ডকার কাজগুলি শেষ করতে "প্রয়োগ করুন" এবং "সংরক্ষণ করুন" বোতামে ক্লিক করুন।

ধাপ 15: পাইপলাইনে একত্রিত "ডকার টাস্ক সহ উত্তরযোগ্য প্লেবুক" পরীক্ষা করুন

এখন আপনি " জেনকিন্স সার্ভার" থেকে "অ্যান্সিবল সার্ভার" -এ একটি প্রজেক্ট জার আর্টিফ্যাক্টকে নির্বিঘ্নে স্থানান্তর করতে আপনার আপগ্রেড করা পাইপলাইন পরীক্ষা করতে পারেন তারপর আপনার প্রকল্প থেকে একটি নতুন ডকার ইমেজ তৈরি করুন এবং তারপরে এই ডকার ইমেজটিকে ডকারহাবে ঠেলে দিন। এটি করতে আপনাকে "এখনই তৈরি করুন" বোতামে ক্লিক করতে হবে। ফলস্বরূপ আপনি বিল্ড ইতিহাসে একটি সফল কাজের ফলাফল দেখতে পাবেন।


তদ্ব্যতীত, আপনার ডকারহাব অ্যাকাউন্টটি দেখার জন্য কিছুক্ষণ সময় নিন এবং একটি নতুন চিত্র এখন দৃশ্যমান কিনা তা যাচাই করুন।


নতুন ছবির সাথে ডকারহাব অ্যাকাউন্টের স্ক্রিনশট যোগ করা হয়েছে


আপনি নতুন যোগ ইমেজ দেখতে হবে. এই ফলাফল নিশ্চিত করে যে ডকার টাস্ক সহ আপনার উত্তরযোগ্য প্লেবুক সফলভাবে পাইপলাইনে একত্রিত হয়েছে।


[মডিউল 7]: কুবারনেটস

এখন EC2 উদাহরণে K8s কনফিগার করা যাক। আপনি একটি নতুন EC2 ইন্সট্যান্স তৈরি করতে যাচ্ছেন এবং একটি Kubernetes ক্লাস্টারের সাথে আরও ইন্টারঅ্যাক্ট করার জন্য তাদের kubectl কমান্ড-লাইন টুল ইনস্টল করতে যাচ্ছেন।


ধাপ 1: একটি AWS EC2 ভার্চুয়াল সার্ভার ইনস্ট্যান্স চালু করুন

এই ধাপটি শেষ করতে এই টিউটোরিয়ালের " AWS EC2 ভার্চুয়াল সার্ভার ইনস্ট্যান্স চালু করুন" বিভাগের নির্দেশাবলী ব্যবহার করুন।


একটি নিরাপত্তা গ্রুপ সেটআপ যোগ করতে ভুলবেন না. এটি সমস্ত সরঞ্জাম এবং SSH পোর্ট 8080 এবং 22 যথাক্রমে কাজ করার অনুমতি দেয়।


আপনার EC2 ভার্চুয়াল সার্ভারের উদাহরণকে আলাদা করতে "K8sServer" নামটি ব্যবহার করুন৷

আপনি একটি নতুন "K8sServer" EC2 উদাহরণের জন্য "CI_CD_Pipeline" নিরাপত্তা গ্রুপ এবং "CI_CD_Pipeline_Key_Pair" পুনরায় ব্যবহার করতে পারেন।


ধাপ 2: একটি AWS EC2 ভার্চুয়াল সার্ভার ইনস্ট্যান্সের সাথে সংযোগ করুন

"সংযোগ" বোতামে ক্লিক করুন।

"সংযোগ" বোতামে পয়েন্টার সহ AWS ওয়েব পৃষ্ঠার স্ক্রিনশট


এখন আপনি EC2 ভার্চুয়াল সার্ভার ইনস্ট্যান্স অনলাইন টার্মিনাল দেখতে পারেন।

AWS EC2 ভার্চুয়াল সার্ভার ইনস্ট্যান্স অনলাইন টার্মিনালের স্ক্রিনশট


ধাপ 3: "KubernetesServer" AWS EC2 ভার্চুয়াল সার্ভার উদাহরণের হোস্টনাম পরিবর্তন করুন

আপনি যখন EC2 ভার্চুয়াল সার্ভার ইনস্ট্যান্সে KuberenetesServer কনফিগার করতে চান তখন আপনাকে প্রথমে যা করতে হবে তা হল এর হোস্টনাম পরিবর্তন করা।


চল এটা করি. হোস্টনাম ফাইল খুলতে এই কমান্ডটি চালান:

 sudo vi /etc/hostname


আপনি এই মত কিছু দেখতে হবে.

হোস্টনাম ফাইল সহ AWS EC2 ভার্চুয়াল সার্ভার উদাহরণের স্ক্রিনশট


এই হোস্টনামটিকে "kubernetes-server" দিয়ে প্রতিস্থাপন করুন এবং তারপরে এটি পুনরায় বুট করুন।

 sudo init 6


আপনি হবে হোস্টনাম পরিবর্তন করা হয়েছে.

হোস্টনামের পয়েন্টার সহ AWS EC2 ভার্চুয়াল সার্ভার ইনস্ট্যান্স টার্মিনালের স্ক্রিনশট


ধাপ 4: AWS CLI সংস্করণ চেক করুন

AWS সংস্করণ চেক করতে এই কমান্ডটি ব্যবহার করুন।

 aws --version


এইভাবে আপনি আপনার বর্তমান aws-cli সংস্করণ দেখতে পারেন।

AWS EC2 ভার্চুয়াল সার্ভার ইনস্ট্যান্স অনলাইন টার্মিনালের স্ক্রিনশট aws সংস্করণ কমান্ড ফলাফল সহ


আপনি যদি aws-cli/1.18 সংস্করণ দেখতে পান তবে আপনার সর্বশেষ সংস্করণটি ডাউনলোড করা উচিত।


ধাপ 5: AWS CLI আপডেট করুন

এখন যেমন আপনি খুঁজে পেয়েছেন যে আপনার 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 EC2 ভার্চুয়াল সার্ভার ইনস্ট্যান্স অনলাইন টার্মিনালের স্ক্রিনশট Aws সংস্করণ 2 ডাউনলোড করার ফলাফল সহ


দ্বিতীয়ত, awscli সংস্করণ 2 আর্কাইভ আনজিপ করতে আপনাকে এই কমান্ডটি কার্যকর করতে হবে।

 unzip awscliv2.zip


তৃতীয়ত, awscli সংস্করণ 2 ইনস্টল করতে আপনার এই কমান্ডটি কার্যকর করা উচিত।

 sudo ./aws/install


তারপর, Kubernetes EC2 ভার্চুয়াল সার্ভার ইনস্ট্যান্স অনলাইন টার্মিনাল পুনরায় লোড করুন।


পরবর্তী, AWS সংস্করণ পরীক্ষা করতে এই কমান্ডটি ব্যবহার করুন

 aws --version


আপনি দেখতে পাচ্ছেন যে aws cli আছে aws-cli/2।

AWS EC2 ভার্চুয়াল সার্ভার ইনস্ট্যান্স অনলাইন টার্মিনালের স্ক্রিনশট aws সংস্করণ কমান্ডের ফলাফল সহ


ধাপ 6: kubectl ইনস্টল করুন

অন্তর্নিহিত অবকাঠামো নির্বিশেষে যেকোন কুবারনেটস ক্লাস্টারের সাথে ইন্টারঅ্যাক্ট করার জন্য Kubectl হল একটি মৌলিক কমান্ড-লাইন টুল। এটি আপনাকে সম্পদগুলি পরিচালনা করতে, অ্যাপ্লিকেশন স্থাপন করতে, নেটওয়ার্কিং কনফিগার করতে, লগগুলি অ্যাক্সেস করতে এবং কুবারনেটস ক্লাস্টারের মধ্যে অন্যান্য বিভিন্ন কাজ সম্পাদন করতে দেয়।


এখন আপনাকে কুবারনেটস ক্লাস্টারের সাথে আরও ইন্টারঅ্যাক্ট করার জন্য kubectl কমান্ড-লাইন টুল ইনস্টল করতে হবে। এর জন্য আপনাকে AWSডকুমেন্টেশনAmazon EKSUser GuidekubectlLinux ইনস্টল বা আপডেট করতে যেতে হবে।


অথবা শুধু 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


/usr/local/bin ফোল্ডারে kubectl সরান।

 sudo mv kubectl /usr/local/bin


kubectl এর সংস্করণ পরীক্ষা করুন।

 kubectl version --output=yaml


ধাপ 7: eksctl ইনস্টল করুন

Eksctl হল আরেকটি কমান্ড-লাইন টুল যা বিশেষভাবে Amazon EKS পরিষেবার জন্য তৈরি। Eksctl AWS EKS ক্লাস্টার তৈরি করতে, নোড গোষ্ঠীগুলি পরিচালনা করতে এবং EKS-এর জন্য নির্দিষ্ট কাজগুলি সম্পাদন করতে ব্যবহার করা যেতে পারে, যেমন AWS পরিকাঠামো সেটআপ এবং পরিচালনার বেশিরভাগ অংশকে বিমূর্ত করে IAM ভূমিকা এবং অন্যান্য AWS পরিষেবাগুলির সাথে একীভূত করা।


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


আপনি সংস্করণ দেখতে হবে

eksctl সংস্করণ সহ 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” খুঁজুন এবং তারপরে “অনুমতি যোগ করুন” বোতামে ক্লিক করুন।


এবং তারপর "পরবর্তী" বোতামে ক্লিক করুন।

AdministratorAccess অনুমতির পয়েন্টার সহ AWS ওয়েব পৃষ্ঠার স্ক্রিনশট

তারপর "রোলের নাম" ইনপুটে "Eksctl_Role" টাইপ করুন।

এবং "ভূমিকা তৈরি করুন" বোতামে ক্লিক করুন।

অনুমতি ভূমিকা কনফিগারেশনের পয়েন্টার সহ AWS ওয়েব পৃষ্ঠার স্ক্রিনশট


ভূমিকা শেষ পর্যন্ত তৈরি হয়।


ধাপ 9: eksctl এর সাথে IAM ভূমিকা সংযুক্ত করুন

AWS EC2 ইনস্ট্যান্স ওয়েব পেজে যান। "KuberbetesServer" নির্বাচন করুন। তারপরে "ক্রিয়া""নিরাপত্তা""আইএএম ভূমিকা সংশোধন করুন" এ ক্লিক করুন।


কুবারনেটস সার্ভার সিকিউরিটি বোতামের পয়েন্টার সহ AWS ওয়েব পৃষ্ঠার স্ক্রিনশট



"Eksctl_Role" নির্বাচন করুন এবং তারপর "আপডেট IAM ভূমিকা" বোতামে ক্লিক করুন।


Elsctl_Role IAM ভূমিকার পয়েন্টার সহ AWS ওয়েব পৃষ্ঠার স্ক্রিনশট৷


এখন আপনার IAM ভূমিকা আপনার “EKS_Server” এবং eksctl টুলের সাথে সংযুক্ত।

ধাপ 10: eksctl ক্লাস্টার তৈরি করুন


একটি Amazon EKS (Elastic Kubernetes Service) ক্লাস্টার হল AWS-এ একটি পরিচালিত Kubernetes পরিবেশ, সেটআপ, স্কেলিং এবং রক্ষণাবেক্ষণের মতো জটিল পরিকাঠামোর কাজগুলিকে স্বয়ংক্রিয় করে। এটি অপরিহার্য কারণ এটি একটি দক্ষ, সুরক্ষিত, এবং AWS-অপ্টিমাইজ করা প্ল্যাটফর্ম প্রদান করে কনটেইনারাইজড অ্যাপ্লিকেশন স্থাপন, পরিচালনা এবং স্কেল করার জন্য, ক্রিয়াকলাপগুলিকে স্ট্রিমলাইন করা এবং বিকাশকারীদেরকে অন্তর্নিহিত অবকাঠামো পরিচালনার পরিবর্তে কোডিংয়ে ফোকাস করার জন্য মুক্ত করে৷


এখন, আপনার EKS ক্লাস্টার সেট আপ করার সময়।


এটি অর্জন করতে, এই পদক্ষেপগুলি অনুসরণ করুন:


  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. পরিবর্তিত কমান্ডটি চালান এবং ধৈর্য সহকারে ক্লাস্টার তৈরির প্রক্রিয়া সম্পূর্ণ হওয়ার জন্য অপেক্ষা করুন। আপনি লক্ষ্য করবেন যে EKS ক্লাস্টার স্থিতি AWS CloudFormation ওয়েব পৃষ্ঠায় "তৈরি করা" হিসাবে নির্দেশিত হয়েছে৷


AWS ক্লাউডফর্মেশনের পয়েন্টার সহ AWS ওয়েব পৃষ্ঠার স্ক্রিনশট যেখানে আপনি EKS ক্লাস্টার "তৈরি করা" স্থিতি দেখতে পাবেন


ক্লাস্টার তৈরির পদ্ধতিটি সাধারণত প্রায় 20 মিনিট সময় নেয়। একবার সম্পন্ন হলে, টার্মিনাল প্রক্রিয়াটির ফলাফল প্রদর্শন করবে।


AWS EC2 টার্মিনালে পয়েন্টার সহ AWS ওয়েব পৃষ্ঠার স্ক্রিনশট যেখানে আপনি EKS ক্লাস্টার তৈরির ফলাফল দেখতে পারেন


উপরন্তু, আপনি AWS CloudFormation ওয়েব পৃষ্ঠায় সফল EKS ক্লাস্টার তৈরির স্থিতি যাচাই করতে পারেন।


AWS ক্লাউডফর্মেশনের পয়েন্টার সহ AWS ওয়েব পৃষ্ঠার স্ক্রিনশট যেখানে আপনি EKS ক্লাস্টার তৈরির ফলাফল দেখতে পারেন


ধাপ 11: Kubernetes Deployment yaml ফাইল তৈরি করুন

একটি Kubernetes Deployment YAML ফাইল হল YAML ফর্ম্যাটে লেখা একটি কনফিগারেশন স্ক্রিপ্ট যা একটি Kubernetes ক্লাস্টারের মধ্যে একটি নির্দিষ্ট অ্যাপ্লিকেশন বা পরিষেবা কীভাবে পরিচালনা এবং বজায় রাখতে হয় তা সংজ্ঞায়িত করে। এটি অ্যাপ্লিকেশান চলমান কন্টেইনারগুলির স্থাপনা, স্কেলিং, আপডেট এবং নিরীক্ষণের জন্য নির্দেশাবলী অন্তর্ভুক্ত করে। এই ফাইলটিতে কন্টেইনার ইমেজ, প্রতিলিপির কাঙ্খিত সংখ্যা, রিসোর্স লিমিট, এনভায়রনমেন্ট ভেরিয়েবল, নেটওয়ার্কিং সেটিংস এবং আরও অনেক কিছুর মতো বিবরণ রয়েছে। যখন একটি Kubernetes ক্লাস্টারে প্রয়োগ করা হয়, ডিপ্লয়মেন্ট 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 ফাইল তৈরি করুন

একটি Kubernetes পরিষেবা YAML ফাইল হল YAML ফর্ম্যাটে লেখা একটি কনফিগারেশন স্ক্রিপ্ট যা পডগুলির একটি সেটের জন্য একটি নেটওয়ার্ক বিমূর্ততাকে সংজ্ঞায়িত করে, যা তাদের একটি Kubernetes ক্লাস্টারের মধ্যে ধারাবাহিকভাবে অ্যাক্সেস করার অনুমতি দেয়। অন্যান্য পরিষেবা বা বহিরাগত ক্লায়েন্টদের দ্বারা কীভাবে পরিষেবাটি আবিষ্কার করা, অ্যাক্সেস করা এবং লোড-ভারসাম্য করা উচিত এই ফাইলটি রূপরেখা দেয়৷ এতে পরিষেবার ধরন (ClusterIP, NodePort, LoadBalancer), পোর্ট নম্বর, পড শনাক্ত করার জন্য নির্বাচক এবং আরও অনেক কিছুর মতো স্পেসিফিকেশন রয়েছে। যখন একটি 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 কমান্ড ব্যবহার করে জিনিসগুলি পরীক্ষা করার সময় এসেছে।


  1. ডিপ্লয়মেন্ট প্রয়োগ করুন।

    স্থাপনার কনফিগারেশন প্রয়োগ করতে নিম্নলিখিত কমান্ডটি ব্যবহার করুন।

 kubectl apply -f hello-app-deployment.yaml

এটি আপনার অ্যাপ্লিকেশনের প্রাপ্যতা এবং পরিচালনাযোগ্যতা নিশ্চিত করে নির্দিষ্ট সংখ্যক প্রতিলিপি এবং একটি রোলিং আপডেট কৌশল সহ একটি স্থাপনা তৈরি করবে।


2. পরিষেবা প্রয়োগ করুন।

এর পরে, পরিষেবা কনফিগারেশন প্রয়োগ করুন।

 kubectl apply -f hello-app-service.yaml

এটি একটি লোডব্যালেন্সার টাইপ পরিষেবা সেট আপ করবে, আপনার অ্যাপ্লিকেশনটি ইন্টারনেটে প্রকাশ করবে।

মনে রাখবেন যে লোডব্যালেন্সার প্রভিশন করা এবং একটি বাহ্যিক IP ঠিকানা অর্জন করতে অল্প সময় লাগতে পারে।


  1. লোডব্যালেন্সার স্থিতি পরীক্ষা করুন।

    ব্যবহার করে আপনার পরিষেবার অবস্থা নিরীক্ষণ করুন।

 kubectl get service zufarexplainedit-hello-app-service

যখন একটি বাহ্যিক আইপি বরাদ্দ করা হয়, আপনি আপনার অ্যাপ্লিকেশন অ্যাক্সেস করার জন্য প্রায় প্রস্তুত।


  1. আপনার আবেদন অ্যাক্সেস.

    একটি ওয়েব ব্রাউজার ব্যবহার করে, বরাদ্দকৃত বাহ্যিক আইপি ঠিকানা লিখুন যার পরে :8080। একটি সংক্ষিপ্ত মুহূর্ত পরে, পৃষ্ঠাটি "হ্যালোওয়ার্ল্ড" বার্তা প্রদর্শন করে লোড হবে। মনে রাখবেন প্রাথমিক লোড হতে কয়েক সেকেন্ড সময় লাগতে পারে।


    হ্যালো অ্যাপ ওয়েব পেজের স্ক্রিনশট


kubectl কমান্ড দিয়ে পরিষ্কার করা

যখন আপনার Kubernetes পরিবেশের মধ্যে সম্পদ গুছিয়ে রাখার প্রয়োজন হয়, আপনি কার্যকরভাবে স্থাপনা, পড এবং পরিষেবাগুলি সরাতে নিম্নলিখিত kubectl কমান্ডগুলি ব্যবহার করতে পারেন।


1. সমস্ত স্থাপনা মুছুন

সমস্ত স্থাপনা মুছে ফেলতে, আপনি নিম্নলিখিত কমান্ডটি ব্যবহার করতে পারেন।

 kubectl delete deployments --all

এই ক্রিয়াটি নিশ্চিত করে যে আপনার ক্লাস্টারে কোনো সক্রিয় স্থাপনার দৃষ্টান্ত অবশিষ্ট নেই।


2. সমস্ত পড মুছুন

আপনি যদি সমস্ত পড মুছে ফেলতে চান, সেগুলি একটি স্থাপনার দ্বারা পরিচালিত হোক বা না হোক, আপনি নিম্নলিখিত কমান্ডটি ব্যবহার করতে পারেন।

 kubectl delete pods --all

ক্লিয়ারিং পড আপনার ক্লাস্টার স্টেট রিসেট করতে বা নতুন স্থাপনার জন্য প্রস্তুত করতে সাহায্য করতে পারে।


3. সমস্ত পরিষেবা মুছুন

নেটওয়ার্কে আপনার অ্যাপ্লিকেশনগুলিকে প্রকাশ করে এমন পরিষেবাগুলি পরিষ্কার করতে, আপনি নিম্নলিখিত কমান্ডটি ব্যবহার করতে পারেন।

 kubectl delete services --all

পরিষেবাগুলি সরানোর সময় ডাউনটাইম জড়িত হতে পারে, তাই এগিয়ে যাওয়ার আগে প্রভাবগুলি বিবেচনা করুন৷

একটি Amazon EKS ক্লাস্টার মুছে ফেলা হচ্ছে

ওয়ার্কার নোড, নেটওয়ার্কিং উপাদান এবং অন্যান্য সংস্থান সহ eksctl এর সাথে তৈরি করা নির্দিষ্ট Amazon EKS ক্লাস্টারের সাথে সম্পর্কিত সমস্ত সংস্থানগুলি সরাতে, আপনি নিম্নলিখিত কমান্ডটি ব্যবহার করতে পারেন।

 eksctl delete cluster --name {your cluster name} --region {your region name}

এটা আমার জন্য.

 eksctl delete cluster --name zufarexplainedit --region eu-north-1

নিশ্চিত করুন যে আপনি ক্লাস্টার বন্ধ করার বিষয়ে নিশ্চিত, কারণ এই ক্রিয়াটি অপরিবর্তনীয় এবং এর ফলে ডেটা ক্ষতি হবে৷



ধাপ 14: "KubernetesServer" AWS EC2 ভার্চুয়াল সার্ভার উদাহরণে একটি নতুন ব্যবহারকারী যোগ করুন এবং কনফিগার করুন

এখন আসুন “KubernetesServer” AWS EC2 ভার্চুয়াল সার্ভার ইনস্ট্যান্সে একটি নতুন উত্তরযোগ্য-প্রশাসক ব্যবহারকারী যোগ করি।


এটি করতে এই কমান্ডটি ব্যবহার করুন।

 sudo useradd 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: উত্তরযোগ্য জন্য লোকালহোস্টে পাসওয়ার্ডহীন 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 [email protected] 


সফল পাসওয়ার্ডহীন ssh প্রমাণীকরণ ইনস্টলেশন ফলাফলের স্ক্রিনশট


এখন আপনি "সংযুক্ত কী(গুলি) সংখ্যা: 1" দেখতে পারেন। এর অর্থ হল পাসওয়ার্ডহীন SSH প্রমাণীকরণ ইনস্টলেশন সফলভাবে সম্পন্ন হয়েছে।


ধাপ 17: AnsibleServer EC2 উদাহরণে Ansible হোস্ট কনফিগার করুন

আপনি যখন একটি উত্তরযোগ্য প্লেবুক চালান, তখন আপনি যে হোস্টগুলি চালান তা নির্দিষ্ট করুন৷ এই ধাপে আপনাকে KubernetesServer EC2 ইনস্ট্যান্স হোস্ট নির্দিষ্ট করতে হবে। এটি করার জন্য আপনাকে " [মডিউল 6]: উত্তরযোগ্য"-এ পাস করা একই পদক্ষেপগুলি পুনরাবৃত্তি করতে হবে।


আসুন নিম্নলিখিত কমান্ডটি কার্যকর করার মাধ্যমে KubernetesServer EC2 ইনস্ট্যান্স হোস্ট খুঁজে বের করি।

 sudo ifconfig 


"ifconfig" ফাইলের স্ক্রিনশট


আপনি KubernetesServer EC2 ইনস্ট্যান্স হোস্ট খুঁজে পাওয়ার পরে, আপনি নিম্নলিখিত কমান্ডটি কার্যকর করার মাধ্যমে এটিকে উত্তরযোগ্য হোস্ট ফাইলে যুক্ত করতে পারেন।

 sudo vi /etc/ansible/hosts 


উত্তরযোগ্য এবং kubernetes হোস্ট সহ "হোস্ট" ফাইলের স্ক্রিনশট


আপনি একটি রেফারেন্স হিসাবে "[kubernetes]" যোগ করতে পারেন

ধাপ 18: Kubernetes কাজের জন্য একটি নতুন উত্তরযোগ্য প্লেবুক তৈরি করুন

এখন যেহেতু Kubernetes সব সেটআপ এবং যেতে ভালো, আপনি আপনার পাইপলাইনের জন্য Kubernetes টাস্ক সহ একটি নতুন Ansible প্লেবুক তৈরি করতে পারেন। এই প্লেবুকটি অ্যান্সিবলকে আপনার অ্যাপটি কুবারনেটস ক্লাস্টারে kubectl কমান্ড সহ চালাতে দেবে।


আপনি কিভাবে এটি করতে পারেন তা এখানে:


  1. একটি নতুন উত্তরযোগ্য প্লেবুক ফাইল তৈরি করে শুরু করুন। শুধু এই কমান্ড ব্যবহার করুন.
 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 কার্যগুলির জন্য উত্তরযোগ্য প্লেবুক ব্যবহারের জন্য প্রস্তুত।


ধাপ 19: জেনকিন্সের সাথে কুবারনেটস কাজের জন্য একটি নতুন উত্তরযোগ্য প্লেবুক সংহত করুন

এখন যেহেতু Kubernetes কাজগুলির জন্য Kubernetes, Ansible এবং Ansible প্লেবুক সব সেট আপ করা হয়েছে এবং যেতে ভাল, আপনি এটি Jenkins-এর সাথে একীভূত করতে পারেন।


  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

তাছাড়া, নতুন ডকার ইমেজ যোগ করার বিষয়টি নিশ্চিত করতে আপনি Dockerhub-এ যেতে পারেন।

এবং অবশেষে, আপনি একটি ওয়েব ব্রাউজার ব্যবহার করে আপনার অ্যাপ্লিকেশন অ্যাক্সেস করতে পারেন। ":8080" অনুসরণ করে নির্ধারিত বাহ্যিক আইপি ঠিকানা লিখুন। একটি সংক্ষিপ্ত মুহূর্ত পরে, পৃষ্ঠাটি লোড হবে, "হ্যালোওয়ার্ল্ড" বার্তাটি দেখাচ্ছে৷


উপসংহার

এই আধুনিক CI/CD পাইপলাইন সেট আপ করার জন্য ভাল কাজ!

আপনি একটি দুর্দান্ত কাজ করেছেন এবং আপনি একজন সত্যিকারের নায়ক!


সব আপনার প্রচেষ্টার জন্য ধন্যবাদ!




লেখক সম্পর্কে

জুফার সুনাগাতোভ একজন অভিজ্ঞ সিনিয়র সফ্টওয়্যার প্রকৌশলী যিনি আধুনিক সফ্টওয়্যার সিস্টেম ডিজাইন করতে আগ্রহী।


জুফার সুনাগাতোভ