Belakangan ada beberapa teman yang bertanya dan tertarik untuk belajar build server. Kebanyakan dari mereka berfikir bahwa untuk belajar build server / maintenance server itu butuh VPS atau bahkan dedicated server. Apa bener begitu? Padahal harga untuk VPS untuk ukuran sebagian mahasiswa dirasa cukup tinggi, apa lagi dedicated server.

Sebenarnya kalau kita hanya ingin belajar, tidak harus sewa VPS, awal2 kita bisa manfaatkan yang namanya virtualisasi. (namanya belajar jadi ga perlu kan IP public yang bisa diakses siapa saja, makanya kita gunakan jaringan dan IP lokal)

Ada banyak jalan untuk melakukan virtualisasi ini, ada OpenVZ, VirtualBox, Xen, VMware, dll. dari para-virtualisasi sampai full-virtualisasi, dari versi community (gratis) sampai enterprise (berbayar). Masing-masing ada kelebihan dan kekurangan (dan saya ga mau berdebat dulu masalah ini).

kali ini saya menggunakan VirtualBox, Karena sudah banyak user yang menggunakan VirtualBox pada komputer pribadinya. Sebelum melanjutkan, saya informasikan dulu situasi dan kondisi pada saat guide ini dibuat.

Subnet: /24
Gateway : 192.168.0.2
Host OS : IP=192.168.0.242 OS=Linux

Taruh kata saya ingin membuat 2 virtual server, 1 untuk database server (MySQL server) dan 1 sever lainnya untuk apa juga belum terpikirkan. ;p

Jadi yang dibutuhkan :

VirtualBox dengan module vboxnetfit
ISO CentOS 6.x netinstall
Koneksi Internet

Video:

Part 1: Setting Guest Hosts ( virtual server )

Pertama kita pastinya butuh VirtualBox. Silahkan yang belom punya download dulu. Kemudian module vboxnetfit untuk bridged adapter ke virtual server. Kemungkinan anda juga butuh module vboxdrv (optional buat jalanin custom kernel) Aktifinnya tinggal modprobe [nama_module]

Jika sudah mari kita jalankan VirtualBox dan buat virtual hostnya :

klik Icon New di kiri atas, lalu masukan informasi nama dan OS yang digunakan.

Name : CentOS Contoh Server III
Type : Linux
Version : RedHat (32/64 sesuai CPU Host)

Kemudian tekan tombol Next.

berikutnya menentukan kapasitas RAM yang nantinya dipake sama virtual server, kasi aja 512MB, klo udah tekan tombol next lagi.

Selanjutnya buat virtual HDD, pilih opsi ke 2 "Create a virtual hard drive now" kemudian tekan next.

Setelah itu keluar lagi pilihan buat tipe hard drivenya. Klo nantinya tidak ingin memindah ke virtualisasi lain pilih saja default VDI. Tp kali ini saya pilih QEMU biar dikira dewa. Klo udah tekan tombol Create.

nanti di sebelah kiri ada list Virtual Guest yang pernah dibuat. Klik kanan pada menu yang baru aja kita buat dan pilih "Setting"

Pada menu Storage => Controller IDE pilih image file yang digunakan. Ane pake ISO CentOS 6.2 Netinstall 64 Bit.

kemudian pada menu Network -> Adapter 1 Ubah Attached to dari NAT ke Bridged Adapter. Name nya sesuaikan dengan interface yang sedang digunakan ( dalam kasus saya : eth0 )

klo udah klik Ok, lalu Start Virtual Guestnya.

Nah proses installasi sama aja ky install OS biasa.

Media Installation OS ane pilih URL buai dikira admin.

Yang perlu diperhatikan adalah : Gunakan Alamat IP statik, jangan dinamis. Karena jika IP dinamis kita bakal susah ngeremote dan fingerprint SSH berubah2.

Kali ini ane kasi IP 192.168.0.152, Gateway 192.168.0.2 dan DNS server google (8.8.8.8)

lalu isikan URL image CentOS, ane pake mirror.nus.edu.sg, silahkan nte bisa ganti lewat kambing.ui.ac.id / apa lah itu. Jang jelas sesuain ama arsitektur yang nte gunain. misal ( http://kambing.ui.ac.id/centos/6.3/os/x86_64 buat yang pake 64 bit)

kemudian klik ok dan tunggu proses installasi selesai; maka nte akan disuruh buat ngereboot OS.

Reboot dan Poweroff virtual guest tadi. Kita edit primary bootnya dari CD-ROM ke Hard Disk. Caranya :

Setting -> System -> Motherboard -> Boot Order -> Naikin menu Hard Disk ke posisi pertama / hilangkan centang pada Floppy dan CD/DVD-ROM.

klo udah coba jalanin lagi Virtual Guestnya. Nte bisa pake CLI supaya virtual host yang bisa jalan di background. Caranya :

Pertama tampilin dulu list Virtual Guestnya dengan perintah :

VBoxManage list vms

Lalu jalankan perintah berikut untuk menjalankan virtual guest di background :
VBoxManage startvm "nama virtual machine" --type=headless
Misal:

VBoxManage startvm "CentOS Contoh Server III" --type=headless

Kalau udah jalan coba ping ke IP virtual guest yang tadi kita buat (192.168.0.152), tunggu sampai up dan masuk melalui SSH.

ssh [email protected]

Dari sana nte bisa setting nama hostname, update software, dll.

Part 2: Install Host lain

Ulangi Part 1 untuk membuat Virtual Guest lain sehingga kita punya 2 virtual host dan di-run bersamaan dengan option headless tadi. Beri virtual guest ke 2 ini dengan IP 192.168.0.151. Sebagai contoh virtual guest ke 2 kali ini kita gunakan untuk database server.

Install MySQL Server :

yum install mysql mysql-devel mysql-server

Start mysql server

service mysqld start

settting ulang mysql servernya dengan menjalankan perintah :

/usr/bin/mysql_secure_installation

maka bakal ada pertanyaan interaktif untuk menyetting ulang MySQL server.

kemudian masuk ke MySQL server dengan user root untuk membuat user dan database baru.

mysql -h localhost -u root -p

maka nte bakal disuruh isi password mysqlnya untuk user root. Setelah masuk buat user baru:

CREATE USER 'ditatompel'@'192.168.0.%' IDENTIFIED BY 'password';

dimana ditatompel adalah nama usernya 192.168.0.% adalah nama host dari mana dia melakukan remote koneksi ke MySQL server. ( 192.168.0.% sama saja dengan 192.168.0.0/24) password adalah password yang digunakan.

CREATE DATABASE IF NOT EXISTS db_testing;

dimana db_testing adalah nama database yang nanti kita gunakan.

GRANT SELECT, INSERT, UPDATE, DELETE ON db_testing.* TO 'ditatompel'@'192.168.0.%';

dimana SELECT, INSERT, UPDATE, DELETE adalah permission milik user ditatompel dari host 192.168.0.% pada semua table dalam database db_testing ( db_testing.* ) kemudian jangan lupa untuk melakukan flush privileges.

FLUSH PRIVILEGES;

Kalau sudah pastikan juga port MySQL (default 3306) tidak di block oleh firewall.

Setelah itu coba melakukan koneksi ke server MySQL dari virtual guest yang 1 nya atau dari PC kita.

Caranya :

mysql -h 192.168.0.151 -u ditatompel -p

dimana 192.168.0.151 adalah alamat IP server MySQL dan ditatompel adalah user yang kita buat pada server MySQL sebelumnya.

Q : Om, klo mau bikin 5 virtual guest dan RAM laptop / PC ane cuma 1GB kan ga mungkin, trus gimana ?
A : Nte pake / bawa pulang laptop temen, colokin ke 1 network dan jalanin virtualbox, lakuin langkah2 di atas. Klo nte ada 4 laptop dan per laptop nte jalanin 3 Virtual guest berarti nte punya 12 virtual guest.

Jadi intinya begitu semua sudah terhubung dan dapat berkomunikasi, beres udah. Nte bisa juga testing buat belajar port knocking, config firewall, IDS/IPS, load balancing sampai clustering. meskipun hasilnya masih sangat jauh dari maksimal.