ভ্যাগর‍্যান্ট দিয়ে নিজের ইচ্ছামত ভার্চুয়াল সার্ভার কনফিগার ও ব্যবহার করা

Screen Shot 2014-07-02 at 7.01.57 PM

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

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

১. ভার্চুয়াল বক্স – যেটা আমরা ডাউনলোড করে নিতে পারি https://www.virtualbox.org/wiki/Downloads এখান থেকে
২. ভ্যাগর‍্যান্ট – যা ডাউনলোড করা যাবে http://www.vagrantup.com/downloads.html থেকে
৩. একটা লিনাক্স অপারেটিং সিস্টেম টেমপ্লেট

আপনি http://vagrantbox.es এখানে গেলে অনেক টেমপ্লেট দেখতে পাবেন। নামানোর সময় অবশ্যই খেয়াল রাখবেন ঠিক টেমপ্লেটটি যেন বাছাই করেন। ভার্চুয়ালাইজেশন টুল হিসেবে যেটার পাশে VirtualBox লেখা আছে সেগুলো থেকে নামাবেন। আপনার সুবিধার জন্য আমি প্রচলিত কয়েকটি টেমপ্লেটের ডাউনলোড লিংক দিয়ে দিলাম

  • ডেবিয়ান ৭.২ হুইজি ৬৪ বিট – https://dl.dropboxusercontent.com/u/197673519/debian-7.2.0.box
  • ডেবিয়ান ৭.৩ হুইজি ৩২ বিট – https://dl.dropboxusercontent.com/s/60pv9an852jx9y0/Debian-7.3.0-i386b.box?dl=1
  • উবুন্তু ১৪.০৪ ৬৪ বিট – https://cloud-images.ubuntu.com/vagrant/trusty/current/trusty-server-cloudimg-amd64-vagrant-disk1.box
  • উবুন্তু ১৪.০৪ ৩২ বিট – https://cloud-images.ubuntu.com/vagrant/trusty/current/trusty-server-cloudimg-i386-vagrant-disk1.box

আমি নিজে ডেবিয়ান ৭.২ এর ৬৪ বিট টেমপ্লেট টি ব্যবহার করি। এই আর্টিকেলেও আমি সেটাই ব্যবহার করে উদাহরণগুলো দেখাবো। তবে পুরো বিষয়টি একই রকম, যেই টেমপ্লেটই ব্যবহার করে থাকেন না কেন 🙂

আপনি যদি প্রথম লিংকটি থেকে ডেবিয়ান ৭.২ টেমপ্লেটটি নামিয়ে থাকেন তাহলে দেখবেন যে debian-7.2.0.box নামে একটা ফাইল সেভ হয়েছে। এটার সাইজ তেমন বেশী না, মাত্র ৩১০ মেগাবাইট। এবার আপনি প্রথমে ভার্চুয়ালবক্স ইনস্টল করুন এবং তারপর ভ্যাগর‍্য্যান্ট ইনস্টল করুন। ইনস্টলেশন টা একদম স্ট্রেইট ফরোয়ার্ড – শুধু নেক্সট নেক্সট ক্লিক করে গেলেই হয়ে যায়। ইনস্টলেশন হয়ে গেলে এবার আমাদের ডাউনলোড করা ডেবিয়ান টেমপ্লেটটি ভ্যাগর‍্যান্টে ইমপোর্ট করতে হবে। এজন্য আপনার টার্মিনাল ওপেন করুন এবং নিচের মত করে কমান্ড দিন

[sourcecode language=”shell”]
vagrant box add wheezy64 debian-7.2.0.box
[/sourcecode]

Screen Shot 2014-07-02 at 6.08.09 PM

এখানে নাম হিসেবে আমি দিয়েছি wheezy64, আপনি আপনার যা ইচ্ছা দিতে পারেন। তবে আমি সাজেস্ট করব প্রাসঙ্গিক নাম দেয়ার। এবার আমরা ভার্চুয়াল সার্ভার তৈরী করব আর সেজন্য কোথাও একটা নতুন ফোল্ডার তৈরী করুন। ধরে নিলাম আপনি ফোল্ডার তৈরি করেছেন যার পাথ হল /path/to/my/folder

এবার আপনার টার্মিনাল ওপেন করে নিচের কমান্ড গুলো দিন

[sourcecode language=”shell”]
cd /path/to/my/folder
vagrant init wheezy64
[/sourcecode]

Screen Shot 2014-07-02 at 6.12.56 PM

এবার নিচের কমান্ড দিন

[sourcecode language=”shell”]
vagrant up
[/sourcecode]

কিছুক্ষনের মাঝেই আপনার ভার্চুয়াল সার্ভার রেডী হয়ে যাবে 🙂

Screen Shot 2014-07-02 at 6.16.24 PM

ব্যাস, আপনার সার্ভার রেডী। চলুন এখন লগইন করে দেখা যাক এই সার্ভারে। এজন্য এই ফোল্ডারে থাকা অবস্থায়ই নিচের কমান্ড টি দিন

[sourcecode language=”shell”]
vagrant ssh
[/sourcecode]

Screen Shot 2014-07-02 at 6.18.14 PM

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

Screen Shot 2014-07-02 at 6.21.25 PM

উপরের ছবিটা থেকে আমরা দেখতে পারছি যে আমাদের এই সার্ভারে ২৫৬ মেগাবাইট র‍্য্যাম এবং হার্ডডিস্কে ১০ গিগাবাইট স্পেস অ্যালোকেটেড হয়েছে। আপনি এখন এখানে apt-get দিয়ে নিজের ইচ্ছামত প্রয়োজনীয় প্যাকেজ ইনস্টল করে নিতে পারেন। এছাড়াও আমরা চাইলেই এসব রিসোর্স অ্যালোকেশন বাড়াতে পারি। হার্ডডিস্কের স্পেস বাড়ানোর দরকার নাই কারন এটা প্রয়োজনের উপর ভিত্তি করে নিজে থেকে এক্সপ্যান্ড করবে। চলুন আমরা দেখি কিভাবে মেমোরী বাড়াবো এবং কিভাবে আমাদের এই সার্ভারে একটা স্ট্যাটিক আইপি অ্যাড্রেস অ্যাসাইন করবো। এজন্য আগে আমাদের দরকার এই মেশিন থেকে লগআউট করে আমরা যেই ফোল্ডারে ছিলাম সেখানে যাওয়া।

ভ্যাগর‍্য্যান্ট এর যেকোন ভার্চুয়াল এনভায়রনমেন্ট থেকে লগ আউট করতে লিখবেন exit, আর ভার্চুয়াল মেশিন কে স্লিপ মোডে নিতে লগ আউট করার পর লিখবেন vagrant suspend, আর শাটডাউন করাতে চাইলে লগ আউট করার পর লিখবেন vagrant halt ।

আমরা আপাতত লগ আউট করি exit লিখে

Screen Shot 2014-07-02 at 6.28.19 PM

এবার এই ফোল্ডারে আপনি দেখবেন Vagrantfile নামে একটা ফাইল রয়েছে। এই ফাইলটি ওপেন করে “IP” দিয়ে সার্চ করুন, দেখবেন নিচের মত একটা লাইন কমেন্ট করা আছে # দিয়ে। এই লাইনটি আন কমেন্ট করুন # মুছে দিয়ে। উল্লেখ্য যে এখানে আপনার পছন্দ মত যেকোন প্রাইভেট আইপি দিতে পারেন

config.vm.network “private_network”, ip: “192.168.33.10”

ফাইলটি সেভ করে টার্মিনালে কমান্ড দিন vagrant reload এবং পিং করে দেখুন যে মেশিনে আপনার অ্যাসাইন করা আইপি অ্যাড্রেসটি রিজলভ হয়েছে কিনা। আমার মেশিনে আমি আইপি অ্যাড্রেস দিয়েছিলাম ১৯২.১৬৮.৩৩.১১ – বাই দ্য ওয়ে, আপনি আইপি অ্যাড্রেস অ্যাসাইন করার পর আপনার ভার্চুয়াল মেশিনে লগইন করে অ্যাপাচি/এনজিনএক্স সেটআপ করার পরে আপনার ব্রাউজারের অ্যাড্রেস বারে সেই আইপি অ্যাড্রেস দিলেই দেখবেন আপনার ভার্চুয়াল মেশিনের অ্যাপাচি/এনজিনএক্সের ডিফল্ট স্ক্রিন। কত সহজ পুরো বিষয়টিই, তাই না?

Screen Shot 2014-07-02 at 6.34.40 PM

ঠিক একই ভাবে মেমোরী অ্যালোকেশন বাড়াতে চাইলে Vagrantfile এ নিচের লাইন টি খুঁজে বের করুন আর আনকমেন্ট করে ১০২৪ এর জায়গায় নিজের পছন্দ মত ভ্যালু বসিয়ে vagrant reload করুন

vb.customize [“modifyvm”, :id, “–memory”, “1024”]

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

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

[sourcecode language=”shell”]
vagrant destroy
[/sourcecode]

আশাকরি ভ্যাগর‍্যান্ট নিয়ে এই আর্টিকেলটি আপনাদের ভালো লেগেছে। তারপরেও কমেন্টে জানালে খুশি হব। আর কোন প্রশ্ন থাকলে আমাকে টুইটারে জিজ্ঞেস করতে পারেন যেকোন সময়, আমার টুইটার আইডি হল @hasin 🙂

ধন্যবাদ সবাইকে