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 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. Caranya klik Icon New di kiri atas, lalu masukan informasi nama dan OS yang digunakan. Misalnya:
- 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 biar dikira admin.
Yang perlu diperhatikan adalah : Gunakan Alamat IP statik/DHCP Statik dari router, jangan dinamis. Karena jika IP dinamis kita bakal susah ngeremote terutama masalah fingerprint SSH.
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. Yang 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/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
. Misalnya:
1VBoxManage 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.
1ssh [email protected]
Dari sana nte bisa setting nama hostname, update software, dll.
Part 2: Install Guest 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.
Di Virtual Guest yang ke-2 ini, install MySQL Server :
1yum install mysql mysql-devel mysql-server
Start mysql server
1service 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.
1mysql -h localhost -u root -p
maka nte bakal disuruh isi password mysqlnya untuk user root. Setelah masuk buat user baru:
1CREATE USER 'ditatompel'@'192.168.0.%' IDENTIFIED BY 'password';
dimana:
ditatompel
adalah nama usernya192.168.0.%
adalah nama hostname/IP dari mana dia melakukan remote koneksi ke MySQL server. (192.168.0.%
sama saja dengan192.168.0.0/24
)password
adalah password yang digunakan.
1CREATE DATABASE IF NOT EXISTS db_testing;
dimana db_testing
adalah nama database yang nanti kita gunakan.
1GRANT 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.
1FLUSH 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.
1mysql -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.