Sunday, April 29, 2012

Memanfaatkan Virtualbox sebagai server development (Ubuntu LAMP + Samba Server) part 1


Hi guys... Long time no see... :) Wow... hampir dua tahun saya gak post di blog ini. Lots of things happen, tapi itu untuk lain kali dah... Untuk sekarang, saya mau share bagaimana saya memanfaatkan Oracle Virtualbox untuk membantu saya saat membangun aplikasi. Mungkin ada yang bertanya; "Ngapain kok capek-capek harus menggunakan virtualbox? Install aja langsung XAMPP atau AppServ. Beres kan?" . Nah alasannya ini:
  1. Melatih kita untuk ‘terbiasa’ dengan environment Linux, jadi kita bisa men-setup server Linux di production (berarti menghindari penggunaan keluarga Window$). Kalau aplikasi di-deploy dengan Linux, tentunya akan meniadakan biaya lisensi Windows. Berarti biaya yang lebih murah untuk client.
  2.  Dengan LAMP Server, kita juga menginstall Apache dan PHP. Jadi bisa digunakan juga untuk belajar PHP di waktu luang.
  3. Pasti pernah dengar keluhan, "Aplikasi saya bisa jalan di komputer saya dengan baik, tapi waktu diinstall di client kok gak jalan?” . Nah, dengan mesin virtual yang terpisah dari development box, saat development kita bisa lebih mensimulasi keadaan di production secara lebih riil (untuk yang gak tau apa itu production: yang dimaksud production adalah kondisi yang sebenarnya di client).
  4. Masih melanjutkan point 3) di atas, kita bisa melakukan testing aplikasi kita dengan lebih baik. Kita bisa memberi beban kepada server, bisa mengurangi kecepatan network, atau bahkan bisa mensimulasi keadaan koneksi network terputus atau server mendadak mati ditengah-tengah aplikasi yang sedang berjalan.
  5. Sebagian besar aplikasi yang saya buat menggunakan database MS-SQL Server sebagai back-end. Saya gak mau membebani komputer saya dengan service PHP atau MySQL atau PostgreSQL atau service-service lain yang tidak sedang saya gunakan. Dengan Virtualbox, kita bisa 'mematikan' server dan hanya menyalakan kalau diperlukan saja.
  6. Saya juga akan memanfaatkan Samba Server sebagai pengganti File Server Windows. Jadi ini juga bisa digunakan sebagai file server pengganti Windows Server. Lumayan kan? Windows Server harga-nya sekitar Rp 7jt. Daripada untuk beli Windows Server, client pasti gak akan keberatan kalau mereka cuma bayar 1/4-nya saja kepada kita untuk support Linux Server-nya :)
  7. "Kenapa Virtualbox? Kan lebih bagus VMWare?" Yup. Betul. Silahkan pakai VMWare kalau Anda mau --- tapi daripada Anda pakai VMWare versi pasar minggu, apa gak lebih baik pakai Oracle Virtualbox yang resmi (dan gratis)
Okay. Itu mengenai alasan kenapa menggunakan Virtualbox. Selanjutnya, pre-requisite. Apa yang perlu Anda siapkan untuk mengikuti tutorial ini:
  1. Komputer dengan sistem operasi Windows XP/Vista/7 yang sudah terinstall dengan baik
  2. Oracle Virtual Box (silahkan download http://www.virtualbox.org) yang sudah terinstall
  3. Ubuntu Server (juga bisa di-download di http://www.ubuntu.com/server . Saat saya menulis post ini, baru saja keluar versi 12.04 LTS)
Next: langkah-langkah yang akan kita lakukan:

  • Membuat mesin virtual baru dan menginstall Ubuntu

    • Jalankan Virtualbox, lalu klik New
    • Selanjutnya, ketik nama mesin (untuk tutorial ini, saya pakai nama Ubuntu Server). Pilih Operating System Linux dan server Ubuntu.
    • Next, alokasikan memory untuk server Anda. Untuk tutorial ini saya hanya mengalokasikan 512MB.
    • Pilih Create New Hard Disk, lalu pilih Next
    • Pilih VDI
    • Pilih Dynamically Allocated
    • Berikan path/lokasi file yang akan menjadi 'hard disk' server, dan tentukan ukuran-nya. Untuk tutorial ini saya hanya mengalokasikan 4GB.
    • Selanjutnya, pilih Create.
    • Setelah di-Create, VirtualBox akan mengatakan bahwa "Karena ini adalah pertama kali-nya Anda menjalankan virtual machine ini, maka silahkan berikan path dimana kami bisa menemukan paket installasi operating system..." Nah, yang Anda berikan saat ini adalah path file ubuntu ISO yang sudah Anda download.
    • Kalau semua langkah Anda benar, harusnya Anda akan menemukan layar depan installasi Ubuntu seperti di bawah ini:



    • Pilih Install Ubuntu Server
    • Saya tidak akan menjelaskan detail langkah installasi Ubuntu server, karena rasanya cukup simple. Yang penting adalah saat Software Selection; jangan lupa memilih LAMP Server dan Samba Server

    • Pilih Continue
    • Pada saat installasi Ubuntu meminta password root MySQL, jangan lupa mengisikan password root-nya. Oh ya, jangan lupa untuk MENCATAT nama komputer, nama user id, password Ubuntu dan password root MySQL-nya yang Anda isi. Pengalaman saya, seringkali waktu mengisi password ini user yang baru sangat semangat dan kreatif memilih password yang 'antik' dan 'canggih'. Biasanya begitu mau dipakai sudah lupa.
    • Setelah installasi beres, virtual box kita akan di-restart dan Anda layar seperti ini-lah yang Anda dapatkan setelah Anda mengisi login dan password Anda (di tutorial ini, nama mesin saya adalah midgard dan nama user ragnarok)
    • Nah, kalau Anda sudah sampai tahap ini, berarti Anda sudah berhasil menginstall Ubuntu server. Sekarang kita tinggal melakukan langkah berikutnya;

  • Setting jaringan

    • Untuk kepentingan tutorial ini, saya akan menggunakan fasilitas networking  Host-Only Adaptor. Kalau virtual machine (VM) Anda sekarang sedang pada posisi seperti pada layar di atas,  mematikan VM tersebut terlebih dahulu. Caranya, ketik:
      sudo shutdown -P now
    • Setelah itu, ketik password Anda.
    • Setelah system VM shutdown, tampilkan layar utama Virtualbox, sorot nama server (kasus saya: Ubuntu Server) lalu klik pada button Settings.
    • Pilih Network di list sebelah kiri. Apabila operating system host Anda (Windows) terhubung dengan internet, biasanya Network Adapter 1 sudah digunakan untuk NAT. Biarkan saja network ini. klik Adapter 2, lalu klik Enable Network Adapter untuk menambahkan network Adapter 2 seperti pada screen shot di bawah (tentu saja Mac Address di tempat Anda akan berbeda. Abaikan saja):

    • Beres? Okay, selanjutnya, jalankan kembali VM Anda. 
    • Yang baru saja kita lakukan adalah menambahkan adapter Network baru. Ibaratnya Anda baru saja membuka PC Server dan menginstall satu card network tambahan lagi. Nah, sekarang kita akan membuat Ubuntu 'mengenali' card tersebut.
    • Setelah Anda masuk kembali ke Ubuntu, cobalah untuk mengetikkan ifconfig. Setelah itu, ketik seperti pada screen shot yang saya beri garis kuning di bawah ini:



'
  • Kemudian, tambahkan baris seperti dibawah ini:





  • Perhatikan, saya menggunakan IP address 192.168.56.3. Saya mendapatkan angka 56 dari Windows. Apabila di Windows saya masuk ke Command Window, lalu mengetikkan IPCONFIG, ini yang saya dapatkan:


    • Selanjutnya: kembali ke VM kita; kalau saya mengetikkan sudo ifconfig eth1 up, dan dilanjutkan dengan ifconfig; maka saya akan mendapati bahwa card eth0 sudah dikenali (perhatikan screen shot di bawah. Silahkan ketik yang saya beri kotak kuning):



    • Kalau ini sudah tercapai, harusnya kalau dari Windows Anda memberikan perintah PING 192.168.56.3 -t dan dari Ubuntu Anda memberikan perintah ping 192.168.56.101, maka Anda akan mendapatkan tampilan seperti screen shot saya di bawah ini (dua window; CMD dan Virtualbox saya letakkan berdampingan).

  • Ok. Kalau Anda mengikuti tutorial ini, berarti Anda sudah berhasil membuat mesin virtual Ubuntu dan berhasil menghubungkannya dengan host melalui network virtual. Selanjutnya jadwal kita adalah melakukan setting MySQL dan melakukan setting Samba Server. Tapi berita buruknya, saya sudah membuat tutorial ini cukup lama -- jadi saya udah capek. Karena itu, daripada kita bikin dua part, mendingan saya berikan screen capture-nya aja tanpa penjelasan. :D

  • Kalau Anda men-set web server, sebenarnya tidak ada lagi yang perlu Anda lakukan. Ini sudah selesai. Anda sudah bisa mendevelop web apps Anda dengan Dreamweaver dari Windows, dan mengakses PHP di Ubuntu. Hmm... yah, paling tinggal install phpmyadmin di Ubuntu.
  • Lain ceritanya kalau Anda bermaksud untuk men-develop aplikasi VFP (desktop) dengan memanfaatkan MySQL yang ada di Ubuntu. MySQL tersebut harus di set supaya bisa menerima perintah dari luar. Caranya, edit file konfigurasi MySQL dengan mengetikkan:

  • Setelah itu, restart mysql dengan mengetikkan sudo /etc/init.d/mysql restart.
  • Duh... capek deh... Lanjutin besok lagi yaaaa.... :)

Good luck guys...



6 comments:

Yaten said...

sip, ditunggu lanjutannya

Syafruddin said...

Mantap, numpang COPAS untuk belajar sendiri

Syafruddin said...

Mana lanjutanya, kok tak ketemu nih. padahal udah separo jalan buatnya nih.

Anonymous said...

lanjutannnnnnnnnnnnnn..part 2... please....

elhadiry said...

Ia neh, menunggu part 2 nya bang admin. Udah tahun 2013 neh gak muncul2 part2nya, :D

StarBlogger said...

Lanjutkan kang,/ kalo ada ebook nya di share ya