vagrant – website development server

why using vagrant ?

mengapa menggunakan vagrant, jika bisa mengeset server virtual dengan virtualbox ?!

adalah pertanyaan pertama yang muncul saat berkenalan dengan vagrant.

pengalaman saya sebagai IT developer bertemu dengan environment berbeda, misal project A menggunakan nginx sebagai http server, Project B menggunakan Apache, atau mungkin project C harus menggunakan IIS dan database SQL Server, belum lagi dengan saat bertemu dengan software yg tergantung dengan depedensi versi tertentu,

ini bisa di atasi dengan membuat banyak virtual server, debian server dengan apache dan mysql, debian apache dengan nginx dan postgresql, centos server dengan apache mysql, centos nginx plus mongodb, kemudian ubuntu server dengan  … dan berbagai kombinasi server lain nya,

bagaimana dengan saat implementasi di server production, saat anda harus mengingat config apa saja yang anda lakukan pada server sehingga aplikasi dapat running dengan sempurna … dan anda harus menghabiskan satu harian hanya untuk mendebug …

pengalaman pribadi, memisahkan folder source code dengan project, kadang membuat ‘berantakan’ file-file anggaplah ada 20 project dan pada folder www ada 10 project, folder lain ada 5 project, berantakan sekali

itu beberapa daily problem yang  dihadapi oleh developer … contoh How to build 100 web servers in a day

vagrant memberikan solusi

dengan menggunakan vagrant anda dapat mengirimkan pada tim development, bukan hanya source code, tetapi juga configurasi server nya seperti letak folder www, extension (ex rewrite pada apache) yg harus di load. dengan cepat seorang anggota baru dapat merunning aplikasi tanpa harus memikirkan / melakukan configurasi ulang, karena configurasi sudah dilakukan otomatis.

vagrant menggunakan sebuah master image yang dapat digunakan oleh banyak host, sehingga dari sisi bandwith dan hardisk lebih nyaman,

dengan pemisahan setiap project menggunakan ‘server’ nya sendiri, ke kacauan file bisa dikurangi, dan setiap server tidak akan tumpang tindih karena sudah ada software sejenis yang terinstall di virtual.

cara otomasi dengan vagrant

vagrant dan virtualbox telah terinstall

contoh sederhana otomasi yang akan dilakukan adalah

– installasi server nginx

– memindahkan path folder source code ke share folder vagrant


# create folder for our project
$ mkdir proj1 && cd proj1
# set vagrant with minimal config
$ vagrant init hashicorp/precise32 --minimal
# edit vagrant config add the necessary value
$ nano Vagrantfile

# input the script for Vagrantfile

Vagrant.configure(2) do |config|
config.vm.box = "hashicorp/precise32"
config.vm.hostname = "proj1-dev"
config.vm.provision "shell", path:"proj1.sh"
config.vm.network "forwarded_port", guest: 80, host:8080, id:"nginx"
end

# create auto setup shell script

$ nano proj1.sh

# input the script for proj1.sh

apt-get -y update
apt-get -y install nginx
rm -rf /usr/share/nginx/www/
ln -s /vagrant/www /usr/share/nginx/www
service nginx start

# make dir www and create new index.html

mkdir www && nano www/index.html

# put this line to your index.html

<b>your nginx</b>

# now running vagrant

vagrant up
# if you not see the 'your welcome page', reload the provision
vagrant provision

check in your browser

01 nginx run

One thought on “vagrant – website development server

Leave a comment