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/

Comments powered by Disqus

About me

Web developer in Malaysia. Currently work at MARIMORE Inc building internet services using Python and Django web framework.

ImportError is an error message emitted by Python when it failed to load certain module as requested by programmer. It's a very common error when someone new to the language trying it out. This website on the same theme, will try provide help for newcomers on any technologies to overcome their first hurdle.

Try most of the examples you may find here on Digital Ocean cloud service. They provide excellent VPS at a very cheaper price. Using this referral link you'll get USD10 credits upon sign up. That's enough to run single VPS with 1GB RAM for a month.

Others

I can also be found at the following sites:-

  • http://k4ml.blogspot.com/
  • http://k4ml.github.io/
  • http://metak4ml.blogspot.com/
  • http://www.mydev.my/
  • http://github.com/k4ml/

Disclaimers

The postings on this site are my own and don't necessarily represent my employer's positions, strategies or opinions.

Share