Pengenalan Vagrant
Posted: | More posts about devops vagrant
Tools untuk membina virtual machine dengan cepat. Virtual Machine yang dibina adalah berasaskan VirtualBox. VirtualBox adalah sebuah mesin maya, seperti komputer fizikal atau laptop yang anda biasa guna. Anda boleh membina sejumlah mesin maya dan memasang pelbagai jenis OS seperti Ubuntu Linux, Windown 7 dan sebagainya.
Kenapa guna Virtual Machine ?
Developer biasanya melakukan kerja-kerja pembangunan di komputer desktop atau laptop masing-masing. Setelah siap, aplikasi tersebut akan di'deploy' ke server khas yang akan dicapai oleh pengguna sistem tersebut. Ini adalah senario tipikal dalam pembangunan laman web atau aplikasi web. Konfigurasi desktop atau laptop yang digunakan untuk development biasanya berbeza dengan server yang digunakan untuk deployment. Ini menyebabkan pelbagai isu yang tidak timbul semasa proses development atau testing muncul apabila ia cuba dijalankan di server. Keadaan ini amat membazirkan masa dan antara sebab release sesuatu sistem terpaksa dilengahkan.
Mengunakan virtual machine, developer dapat membina server yang sama konfigurasi dengan server sebenar dalam masa yang singkat. Ini membolehkan mereka menguji aplikasi yang dibangunkan dalam persekitaran sebenar. Virtual Machine yang dibina itu juga boleh dikongsi dengan developer lain menjadikan proses testing dalam sesuatu development team semakin pantas dan tidak membebankan.
Install
Ada beberapa pilihan bergantung OS yang anda gunakan seperti msi installer untuk Windows, package .deb untuk Debian/Ubuntu dan .dmg untuk pengguna MacOS.
...
Contoh Penggunaan (Use case)
Saya hendak membina sebuah base machine dengan kriteria berikut:-
- Menggunakan OS Ubuntu Precise 32bit.
- Semua package dikemaskini ke versi paling terkini.
- Package seperti postgresql, mysql dan apache2 telah siap di'install'.
Bina machine pertama:-
vagrant box add precise32 http://files.vagrantup.com/precise32.box vagrant init precise32 vagrant up vagrant ssh
Kini anda sudah berada dalam machine precise32. Update Ubuntu:-
sudo apt-get update sudo apt-get upgrade
Install package yang dikehendaki:-
sudo apt-get build-essential apache2 postgresql mysql-server exit
Kini anda berada dalam mesin sebenar (fizikal). Kita akan buat copy untuk mesin yang pertama. Buat satu file konfigurasi asas untuk mesin yang kita nak pakejkan ini. Simpan sebagai Vagrantfile.pkg:-
Vagrant::Config.run do |config| # Forward apache config.vm.forward_port 80, 8080 end
Dalam konfigurasi di atas kita membuat port forwarding dari port 8080 di mesin fizikal ke port 80 di mesin maya yang bakal kita bina. Ini membolehkan kita akses apache di mesin maya menggunakan url seperti http://localhost:8080/ daripada laptop atau desktop kita (mesin fizikal). Arahan berikutnya akan melaksanakan proses packaging.
vagrant package --vagrantfile Vagrantfile.pkg
Setelah siap, anda akan dapati satu fail bernama package.box
. Fail ini boleh
dikongsikan dengan rakan-rakan yang lain dan mereka akan mendapat sebuah mesin
maya berasaskan Ubuntu Precise 32bit yang telah siap dipasang dengan apache2,
mysql dan postgresql.
Untuk mula menggunakan box yang baru kita hasilkan tadi, gunakan arahan berikut:-
vagrant box add precise32-base package.box vagrant box list
Anda akan mendapat output seperti berikut:-
lucid32 precise32-base
Bina virtual machine baru berasaskan precise32-base
:-
vagrant init precise32-base
Anda akan mendapat output seperti berikut:-
A `Vagrantfile` has been placed in this directory. You are now ready to `vagrant up` your first virtual environment! Please read the comments in the Vagrantfile as well as documentation on `vagrantup.com` for more information on using Vagrant.
Rujukan
http://vagrantup.com/