Sunday, May 03, 2015

Vagrant কি আর কিভাবে এটা ব্যবহার করব?

Vagrant আসলে একটা virtualization tool (wrapper আসলে)। এটা যা করবে, তোমার PC-র RAM খরচ করে একটা virtual computer বানাবে। সেটার সাথে তোমার real PC-র একটা LAN (NAT আসলে) বানাবে। আর সেই PC-র Port 80 (HTTP Listener) টা কে তোমার real PC-র কোন একটা port এ forward করে দেবে। যেখানে তুমি তোমার app টা কে access করতে পারবা। OK, that part aside, তুমি এখন এই same port কে কোন public IP তেও দিয়ে দিতে পারো।

কথা হচ্ছে, কিভাবে এত সব হবে। প্রথম কথা, Vagrant তোমার জন্য, সবই নিজে করবে, তুমি শুধু কিছু script লিখে বলে দিবা কি কি software তোমার server এ রাখবা। যেমন সাধারণত আমি LAMP stack টা ছাড়া কিছু রাখিনা, আর Django রাখি (Python)। তো আমি একটা provisioning script লিখে রেখে দেই। এটা একটা directory তে রেখে "vagrant up" command লিখলেই কিছুক্ষণের মধ্যে আমার server ready। তো এতসব যে হচ্ছে, বাতাস থেকে হচ্ছে নাকি? না। আসলে তুমি তোমার core OS টার একটা image (ubuntu 14.04, 12.04, etc) প্রথমবার vagrant কে দিয়ে download করাবা। সে এটা একবারই নামায় রেখে দিবে আর পরে আরও server বানালে সে এটা দিয়ে OS install করে তোমার provision script থেকে software গুলি install করবে।

তো এখন কি তুমি provisioning script এর language শিখতে বসবা? না। ভাল একটা vagrant file নামায় একটা directory তে রেখে "vagrant up" করে দিবা। প্রথমবার সে image নামাবে। তো এসব vagrant file পাবা কোথায়? Google দিয়ে পাবা। আমি কয়েকটা use করি। মোটামুটি ২/৩ টার মধ্যেই হয়ে যায় সব। Github এ অনেকে তাদের configure করা VM এর vagrantfile share করে দেয়। ভাল করে লিখেও দেয় এটাতে PHP কোনটা, phpMyAdmin আছে কিনা। কোন port এ কি service চলে। পরে শুনে দেখে একটা তে settle হবা এই আর কি।

Happy exploring.

No comments:

Post a Comment

Post your comment here. If you want to say something about programming problems, scripts, software etc, please try to be as descriptive as possible.

Connect Rapoo MT750S with Linux (Tested on Manjaro)

 I bought this obvious copy of MX Master 2S in hopes of having the device switching functionality along with a lightweight body because I ha...