কম্পিউটার টিউটোরিয়াল

ক্যাপিস্ট্রানো সহ রেল স্থাপনে রুবিকে স্ট্রীমলাইন করুন:একটি ধাপে ধাপে নির্দেশিকা

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

একবার আমরা অ্যাপটি স্থাপন করার পরে, আমরা সংক্ষেপে দেখব কিভাবে আপনি AppSignal ব্যবহার করে আপনার অ্যাপের স্থাপনা নিরীক্ষণ করতে পারেন।

কিন্তু প্রথমে, আপনি জিজ্ঞাসা করতে পারেন:কেন আমি প্রথমে Capistrano ব্যবহার করব?

কেন আপনার রুবি অন রেল অ্যাপের জন্য ক্যাপিস্ট্রানো বেছে নিন?

আপনি হয়তো ভাবছেন যে আজকাল মোতায়েন করার জন্য Capistrano ব্যবহার চালিয়ে যাওয়া এখনও বোধগম্য হয় কিনা। মোতায়েন এবং ক্রমাগত একীকরণের জন্য আমাদের কাছে এখন অনেক সরঞ্জাম এবং পরিষেবা উপলব্ধ রয়েছে৷

কিন্তু এর উত্তর দেওয়ার জন্য, আমাদের ক্যাপিস্ট্রানোর উৎপত্তি এবং বর্তমান দিন পর্যন্ত এর বিবর্তন পর্যালোচনা করতে হবে। Capistrano সংগ্রহস্থলে প্রথম ট্যাগ তৈরি করা হয়েছিল 2006 সালে। এর উদ্দেশ্য ছিল SSH-এর মাধ্যমে দূরবর্তীভাবে কিছু মেশিনে সমান্তরালভাবে কমান্ড কার্যকর করার অনুমতি দেওয়া, সবগুলোই DSL ব্যবহার করে। তারপর থেকে, Capistrano বিকশিত হয়েছে, প্রতিটি সংস্করণে বিভিন্ন বৈশিষ্ট্য যোগ করে।

বর্তমানে 16 বছর পর 3 সংস্করণে, Capistrano সক্রিয়ভাবে বিকশিত হচ্ছে এবং এখন এটি স্বয়ংক্রিয় স্থাপনার স্ক্রিপ্ট তৈরির জন্য একটি কাঠামো হিসাবে পরিচিত৷

তাই এটি আর দূরবর্তী মেশিনে কমান্ড চালানোর জন্য একটি টুল নয়। Capistrano-এর বৈশিষ্ট্যগুলি ছাড়াও, অনেক প্লাগইন এবং অন্যান্য রত্ন বিশেষভাবে Capistrano-এর সাথে চলে৷

এই কারণে এবং একটি বৃহৎ সম্প্রদায় এখনও Capistrano ব্যবহার করে, এটি স্বয়ংক্রিয় স্থাপনার জন্য একটি দুর্দান্ত সরঞ্জাম হিসাবে রয়ে গেছে৷

আপনার রুবি অন রেল অ্যাপে Capistrano যোগ করা হচ্ছে

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

কনফিগারেশন শুরু করতে, আপনার জেমফাইলের বিকাশ বিভাগে Capistrano রত্ন যোগ করুন:

 

আপনার ডাটাবেসে মাইগ্রেশন চালানোর জন্য আপনার ক্যাপিস্ট্রানো-রেল রত্ন প্রয়োজন এবং সম্পদগুলি পরিচালনা করতে যা আমরা পরবর্তী বিভাগে দেখতে পাব।

এখন bundle install চালান আপনার অ্যাপ্লিকেশনে Capistrano যোগ করতে:

 

তারপর আপনি Capistrano ইনস্টল করতে পারেন:

 

এই কমান্ডটি Capfile নামে একটি ফাইল তৈরি করবে যা প্রয়োজনীয় লাইব্রেরিগুলি আমদানি এবং কনফিগার করে। উপরন্তু, deploy.rb নামে একটি ফাইল (config-এর ভিতরে তৈরি ফোল্ডার) সমস্ত কনফিগারেশন থাকবে যা Capistrano এর সাথে একটি স্থাপনায় অন্তর্ভুক্ত করা উচিত।

দ্রষ্টব্য: Capistrano deploy.rb ওভাররাইড করার জন্য একটি ফাইল তৈরি করে স্টেজিং এবং উত্পাদন পরিবেশ উভয়ের জন্য কনফিগারেশন, কিন্তু এই নিবন্ধে তা কভার করা হবে না।

এর সাথে, আপনি আপনার রুবি অন রেল অ্যাপ্লিকেশন এবং সার্ভারের মধ্যে কনফিগার এবং যোগাযোগ শুরু করতে প্রস্তুত৷

আপনার রেল অ্যাপের জন্য Capistrano সহ সার্ভার কনফিগারেশন

এই ধাপে, আমরা Capistrano কনফিগারেশন ফাইলে নির্দেশাবলী যোগ করব। নির্দেশাবলী আপনার সার্ভারের সাথে যোগাযোগ করবে যেখানে আপনার অ্যাপ স্থাপন করা হবে। এখানে আমরা অ্যাক্সেস তথ্য এবং নিরাপত্তা কনফিগারেশন সংজ্ঞায়িত করব।

আপনার প্রোডাকশন এনভায়রনমেন্ট রুবি-এর একই ভার্সন যাতে আপনি ডেভেলপমেন্টে ব্যবহার করেন তা নিশ্চিত করতে রুবি ভার্সন ম্যানেজার ব্যবহার করুন, যেমন RVM অথবা rbenv (ক্যাপিস্ট্রানো উভয়কেই সমর্থন করে)।

এই নিবন্ধে, আমরা RVM ব্যবহার করব। নিশ্চিত করুন যে আপনি আপনার ডেভেলপমেন্ট মেশিন এবং প্রোডাকশন সার্ভারে RVM ইনস্টল করেছেন। এছাড়াও, আপনার পরিবেশ এবং প্রকল্পে আপনার রুবির সংস্করণ একই কিনা তা পরীক্ষা করুন৷

capistrano-rvm যোগ করা হচ্ছে মণি

Capistrano প্রকল্প capistrano-gem নামে একটি রত্ন সরবরাহ করে যা আপনাকে সহজেই RVM কনফিগার করতে দেয়। এটিকে আপনার প্রকল্পে অন্তর্ভুক্ত করতে, এটিকে আপনার ডেভেলপমেন্ট গ্রুপের মধ্যে আপনার জেমফাইলে যোগ করুন এবং bundle install চালান আবার।

 

capistrano-rvm আমদানির সাথে আপনার ক্যাপফাইল আপডেট করুন:

 

ডিপ্লোয় ফাইলে, রুবি সংস্করণ এবং RVM-এর পথ সেট করার জন্য একটি কনফিগারেশন যোগ করুন (বিশেষ করে যদি আপনি RVM ইনস্টল করার জন্য একটি ভিন্ন পথ ব্যবহার করেন)।

যদি রুবির কোনো সংস্করণ সংজ্ঞায়িত করা না থাকে, তাহলে Capistrano সর্বশেষ সংস্করণটি বেছে নেয় যা আপনি সার্ভারে ইনস্টল করেছেন যেখানে আপনার অ্যাপ্লিকেশন স্থাপন করা হবে৷

 

Capistrano::RVM-এ RVM-এর জন্য অন্যান্য সেটিংস রয়েছে, কিন্তু এখানে দেখানো হল যা আপনাকে শুরু করতে হবে।

আপনার সার্ভার কনফিগারেশন সেট আপ করুন

স্থাপনার জন্য ব্যবহারকারীকে সংজ্ঞায়িত করা ভাল অনুশীলন। আপনি একটি স্থাপনা শুরু করার আগে আপনার সার্ভারে এই পদক্ষেপগুলি অনুসরণ করতে ভুলবেন না:

  1. আপনার স্থানীয় মেশিনে তৈরি হওয়া সর্বজনীন কীটি ~/home/YOUR_USER/.ssh/authorized_keys-এ যোগ করুন ফাইল।
  2. একটি কী তৈরি করুন এবং কোড সংগ্রহস্থলে সর্বজনীন কী অন্তর্ভুক্ত করুন। এটি আপনাকে প্রোডাকশন সার্ভারের মধ্যে আপনার প্রোজেক্ট ক্লোন করার অ্যাক্সেস দেয়। আপনি যদি GitHub ব্যবহার করেন, আপনি এই ডকুমেন্টেশন অনুসরণ করতে পারেন।
  3. /var/www/-এ লেখার অনুমতি সেট করুন ডিরেক্টরি।

আপনি আপনার প্রয়োজন যে কোনো পরিবেশের জন্য Capistrano কনফিগার করতে পারেন। আপনাকে শুধু config/deploy/<environment_name>.rb এর মধ্যে একটি নতুন কনফিগারেশন ফাইল তৈরি করতে হবে , তারপর আপনার সার্ভারের সাথে সংযোগ করতে IP বা DNS এবং ব্যবহারকারীর নাম কনফিগার করুন।

 

স্থাপনার সেটআপ সম্পূর্ণ করতে, আপনার অ্যাপ্লিকেশন সম্পর্কে তথ্য অন্তর্ভুক্ত করুন, যেমন অ্যাপ্লিকেশনের নাম এবং কোড সংগ্রহস্থলের URL। যেকোন তথ্য যা সমস্ত পরিবেশের জন্য একই তা অবশ্যই config/deploy.rb এ যোগ করতে হবে . config/deploy/<environment_name>.rb-এ নির্দিষ্ট পরিবেশের কনফিগারেশন রাখুন .

 

capistrano-secrets-yml সেট আপ করুন আপনার রেল অ্যাপের জন্য মণি

আপনার ক্যাপিস্ট্রানো-সিক্রেটস-ইএমএল জেমও সেট আপ করা উচিত।

আপনার জেমফাইলে রত্নটি যোগ করুন এবং ইনস্টল করতে বান্ডিলটি চালান:

 

এটি ক্যাপফাইলে আমদানি করুন:

 

তারপর config/secret.yml তৈরি করুন আপনার অ্যাপ্লিকেশনে এবং একটি পরিবেশ পরিবর্তনশীল হিসাবে গোপন কী বেস অন্তর্ভুক্ত করুন। এই ভেরিয়েবলটি আপনার প্রোডাকশন সার্ভারে তৈরি করা হবে। মনে রাখবেন না এই ফাইলটি আপনার সংগ্রহস্থলে প্রতিশ্রুতিবদ্ধ করতে।

 

টার্মিনালে আপনার অ্যাপ্লিকেশন ফোল্ডারের ভিতরে, গোপন কী বেস তৈরি করতে এই কমান্ডটি চালান:

 

উত্পন্ন কীটি অনুলিপি করুন এবং উত্পাদন সার্ভারে আপনার SECRET_KEY_BASE সেট করতে এটি ব্যবহার করুন৷ আপনার উৎপাদন সার্ভার অ্যাক্সেস করুন এবং চূড়ান্ত ~/.bashrc এ SECRET_KEY_BASE ভেরিয়েবল রপ্তানি করুন ফাইল, তাই এটি সর্বদা উপলব্ধ:

 

আপনার পরিবেশে তাৎক্ষণিকভাবে উপলব্ধ করতে উত্সটি চালান:

 

এখন, আপনার মেশিনে ফিরে, টার্মিনালে অ্যাপ্লিকেশন ফোল্ডারটি অ্যাক্সেস করুন এবং config/secrets.yml তৈরি করতে নীচের Capistrano কমান্ডটি চালান। প্রোডাকশন সার্ভারে:

 

সব সম্পন্ন! এখন একটি মাইগ্রেশন চালানোর জন্য Capistrano কনফিগার করার সময়।

একটি ডাটাবেস মাইগ্রেশন সম্পাদন করতে Capistrano কনফিগার করুন

এখন ডাটাবেস-সম্পর্কিত কমান্ড চালানোর জন্য Capistrano কনফিগার করার সময়।

ক্যাপিস্ট্রানো-রেল আপনার জেমফাইলে ইতিমধ্যেই অন্তর্ভুক্ত রত্ন প্রতিটি স্থাপনার উপর একটি মাইগ্রেশন সঞ্চালনের জন্য কনফিগার করা যেতে পারে। আমাদের এটিকে ক্যাপফাইলে আমদানি করতে হবে:

 

কিন্তু আপনি যদি ডিপ্লোয়মেন্টে বীজ চালাতে চান, তাহলে মাইগ্রেশনের পরে চালানোর জন্য আপনাকে একটি নতুন টাস্ক তৈরি করতে হবে:

 

এর সাথে, আপনার অ্যাপটি শেষ পর্যন্ত স্থাপনের জন্য প্রস্তুত!

রেলস অ্যাপে আপনার রুবি স্থাপন শুরু করুন

আসুন দেখি কিভাবে আমাদের স্থানীয় মেশিন থেকে আমাদের অ্যাপ্লিকেশনের নতুন সংস্করণে সরাসরি আমাদের সার্ভার আপডেট করে একটি স্থাপনা সম্পাদন করা যায়।

যখন আপনি একটি স্থাপনার কমান্ড চালান, তখন Capistrano আপনার সার্ভারের সাথে সংযুক্ত হবে। সেখান থেকে, Capistrano কনফিগারেশন ফাইলে সংজ্ঞায়িত রিপোজিটরি থেকে কোডটি ক্লোন করার চেষ্টা করবে (config/deploy.rb ) তারপরে স্থাপনার প্রবাহ অনুসরণ করে অন্যান্য কাজগুলি সম্পাদিত হবে।

Capistrano এর deploy:check কমান্ড যাচাই করে যে গিট কনফিগারেশন ঠিক আছে এবং ডিপ্লোয়মেন্টে ব্যবহার করা হবে এমন ডিরেক্টরিগুলিতে ক্যাপিস্ট্রানোর সঠিক অ্যাক্সেস রয়েছে৷

এটি ব্যবহার করতে, পরিবেশ পাস. এই ক্ষেত্রে, আমরা উত্পাদন ব্যবহার করছি:

 

কনফিগারেশনের সাথে সবকিছু ঠিক থাকলে, আপনি উৎপাদনে আপনার স্থাপনা শুরু করতে পারেন:

 

উপরন্তু, আপনি কমান্ড দিয়ে Capistrano-এ উপলব্ধ সমস্ত কাজ চেক করতে পারেন:

 

এখন, আমাদের চূড়ান্ত ধাপে, আসুন AppSignal-এর সাথে আমাদের Ruby on Rails অ্যাপ্লিকেশানকে একীভূত করি এবং এটি পর্যবেক্ষণ করা শুরু করি৷

কিভাবে Capistrano এবং আপনার রেল অ্যাপের সাথে AppSignal একত্রিত করবেন

AppSignal হল একটি মনিটরিং টুল, তাই আপনি ভাবতে পারেন কেন এটি এই নিবন্ধে অন্তর্ভুক্ত করা হয়েছে। এটি একটি বৈধ প্রশ্ন, কারণ নিরীক্ষণ সরাসরি স্থাপনার সাথে সম্পর্কিত নয়।

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

আপনার একটি AppSignal অ্যাকাউন্টের প্রয়োজন হবে, যা আপনি AppSignal-এর সাইন-আপ পৃষ্ঠায় তৈরি করতে পারেন৷ আপনার ভাষা হিসাবে রুবি বেছে নিন এবং আপনার অ্যাপ্লিকেশনে AppSignal ইনস্টল করার ধাপগুলি অনুসরণ করুন৷

একবার ইনস্টল হয়ে গেলে, AppSignal কনফিগার করার জন্য একটি ফাইল তৈরি করা হবে। এখানে যা গুরুত্বপূর্ণ তা হল রিভিশন সংজ্ঞায়িত করা — তথ্য যা একটি অ্যাপ্লিকেশনের একটি নতুন সংস্করণ স্থাপন করা হয়েছে কিনা তা দেখতে স্থাপনের পরে পরীক্ষা করা হবে। এই ক্ষেত্রে, প্রতিটি নতুন কোড স্থাপনা AppSignal-কে অবহিত করবে তা নিশ্চিত করতে আমরা গিট লগকে রিভিশন তথ্য হিসেবে ব্যবহার করব।

 

আপনার প্রোডাকশন সার্ভারে AppSignal এনভায়রনমেন্ট ভেরিয়েবল রপ্তানি করাও ভাল অভ্যাস (বিশেষ করে API কী, যাতে এটিকে AppSignal কনফিগারেশন ফাইলে না রাখা যায়)।

 

এবং এখন আমরা স্থাপনা পুনরায় চালু করতে পারেন. সবকিছু সঠিকভাবে সেট আপ করা হলে, আপনি স্থাপনার শেষে এইরকম একটি বার্তা দেখতে পাবেন:

 

আপনি এখন AppSignal এ আপনার আবেদন দেখতে সক্ষম হবেন! 🎉

ক্যাপিস্ট্রানো সহ রেল স্থাপনে রুবিকে স্ট্রীমলাইন করুন:একটি ধাপে ধাপে নির্দেশিকা

এবং যেকোনো স্থাপনার তথ্য:

ক্যাপিস্ট্রানো সহ রেল স্থাপনে রুবিকে স্ট্রীমলাইন করুন:একটি ধাপে ধাপে নির্দেশিকা

ডিপ্লয়মেন্ট ইন্টিগ্রেশন এবং Ruby on Rails অ্যাপ্লিকেশনের জন্য উপলব্ধ অন্যান্য বৈশিষ্ট্যগুলি সম্পর্কে আরও জানতে AppSignal এর স্থাপনার ডকুমেন্টেশন পৃষ্ঠা দেখুন৷

র্যাপ আপ এবং পরবর্তী ধাপগুলি

এই পোস্টে, আমরা অন্বেষণ করেছি কীভাবে আপনার রুবি অন রেল অ্যাপ স্থাপন করতে Capistrano ব্যবহার করবেন। আমরা প্রথমে একটি অ্যাপে Capistrano যোগ করেছি, তারপরে AppSignal-এর সাথে মনিটরিং সেট আপ করার আগে এটিকে কনফিগার ও স্থাপন করেছি।

আপনি যদি আরও অন্বেষণ করতে চান, আপনি আপনার সংগ্রহস্থলের পাইপলাইনের সাথে সংযুক্ত একটি ইন্টিগ্রেশন থেকে চালানোর জন্য Capistrano কনফিগার করতে পারেন। Bitbucket, GitHub, এবং GitLab এর মতো টুলগুলি এই প্রক্রিয়াটি পরিচালনা করার জন্য সেটিংস প্রদান করে এবং Capistrano-এর সাথে ব্যবহার করা যেতে পারে৷

শুভ কোডিং!

পি.এস. আপনি যদি রুবি ম্যাজিক পোস্টগুলি প্রেস থেকে বের হওয়ার সাথে সাথে পড়তে চান তবে আমাদের রুবি ম্যাজিক নিউজলেটারে সাবস্ক্রাইব করুন এবং একটি পোস্ট মিস করবেন না!


  1. HTML DOM বিকল্প ডিফল্ট নির্বাচিত সম্পত্তি

  2. অ্যান্ড্রয়েডে ডিভাইসের অবস্থান কীভাবে পাবেন?

  3. দ্বৈত অগ্রাধিকার সারি

  4. PostgreSQL প্রশাসন, পার্ট 1