Memasang Vagrant di Ubuntu 16.04 64bit

Prasyarat:

  1. Virtualbox
  2. Vagrant

Setelah keduanya terpasang, sekarang waktunya menambahkan box, semacam kontainer untuk sistem operasi yang akan kita pasang.

vagrant box add ubuntu/xenial64

Perintah ini otomatis akan mengunduh OS ubuntu 16.04 64bit dari official repository vagrant. Namun terkadang, kecepatan unduh amat sangat mengecewakan, bahkan sering gagal. Untuk itu biasanya saya menggunakan penyedia repo alternatif, seperti vagrantbox.es.

Caranya:

vagrant box add {title} {url}

Misal jika ingin menambahkan ubuntu xenial 64, maka:

vagrant box add ubuntu/xenial64 https://cloud-images.ubuntu.com/xenial/current/xenial-server-cloudimg-amd64-vagrant.box

Direktori default tempat box jika Anda menggunakan ubuntu, ada di

~/.vagrant.d/boxes/

Selanjutnya, buat direktori project

mkdir vagrantproject && cd vagrantproject
vagrant init

Perintah init ini pada akan menciptakan berkas baru bernama Vagrantfile, yang isinya adalah konfigurasi dari box yang sudah kita unduh dan akan kita jalankan. Untuk setting paling dasar, cukup cari dan ubah baris berikut:

config.vm.box = "base"

sesuaikan dengan OS box yang kita unduh tadi

config.vm.box = "ubuntu/xenial64"

Kemudian, jalankan mesin virtual kita dengan mengetik:

vagrant up

Jika tidak ada pesan kesalahan, berarti mesin virtual sudah terpasang dan siap digunakan. Misal kita ingin ssh login ke mesin virtual tersebut:

ssh vagrant@127.0.0.1 -p 2222

atau sesuaikan dengan informasi dari box yang Anda unduh. Misal, karena saya menggunakan repo alternatif, maka untuk login ssh, username adalah ubuntu.

ssh ubuntu@127.0.0.1 -p 2222

Password default adalah vagrant, tapi kadang jika kita menggunakan repo alternatif, password terletak di:

cat ~/.vagrant.d/boxes/ubuntu-VAGRANTSLASH-xenial64/0/virtualbox/Vagrantfile

Atau login menggunakan ssh-key (recommended)

ssh-copy-id -i ~/.ssh/id_rsa.pub ubuntu@127.0.0.1 -p 2222

Berikut ini contoh konfigurasi Vagrantfile

Vagrant.configure(2) do |config|
  config.vm.hostname = "banteng-server"
  config.vm.box = "ubuntu/trusty64"
  # port forwarding
  config.vm.network :forwarded_port, guest: 8000, host: 8000
  config.vm.provision :shell, :path => "provision/provision-ubuntu-14.04.sh"
  config.vm.synced_folder "../../git", "/vagrant_data"
  # fix stdin is not tty
  config.ssh.shell = "bash -c 'BASH_ENV=/etc/profile exec bash'"
end
Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s