Vagrant : Getting Start

Vagrant คือตัวช่วยสร้าง Virtual Machine สามารถสร้างได้บน VirtualBox, VMWare, หรือ แม้กระทั่ง AWS

วิธีใช้

  1. Create VagrantFile
$ vagrant init hashicorp/precise32

หลังจากคำสั่ง init VagrantFile จะถูกสร้างในไดเรกทอรี่ เนื้อหาประมาณนี้ ประมาณว่าจะลง hashicorp/precise32 แล้วนะ

Vagrant.configure("2") do |config|
 config.vm.box = "hashicorp/precise32"
end

นี้คือลง hashicorp/percise32 ยังมีตัวอื่นๆอีกมากมาย

หรือถ้าต้องการ ubuntu desktop เขาก็จัดมาให้แล้วที่ http://cloud-images.ubuntu.com/ วิธีทำตามด้านล่าง

แต่แม่มมีแต่เวอร์ชั่นเซอร์เวอร์ว่ะ

vagrant box add myprecisevm http://cloud-images.ubuntu.com/vagrant/precise/current/precise-server-cloudimg-amd64-vagrant-disk1.box
vagrant init myprecisevm
vagrant up

x) Put Apache installation instruction ( Optional )

bootstrap.sh ( put in the same path as VagrantFile )

#!/usr/bin/env bash
apt-get update
apt-get install -y apache2
if ! [ -L /var/www ]; then
 rm -rf /var/www
 ln -fs /vagrant /var/www
fi

VagrantFile

Vagrant.configure("2") do |config|
 config.vm.box = "hashicorp/precise32"
 config.vm.provision :shell, path: "bootstrap.sh"
end

NOTE : DocumentRoot of Apache to point to our /vagrant directory

x) Port Forwarding

Vagrant.configure("2") do |config|
 config.vm.box = "hashicorp/precise32"
 config.vm.provision :shell, path: "bootstrap.sh"
 config.vm.network :forwarded_port, guest: 80, host: 4567
end

Run http://127.0.0.1:4567 outside VM to see the result

2) Run Vagrant

$ vagrant up

3) Reload Machine

vagrant reload --provision

4) SSH to vagrant VM

$ vagrant ssh

5) Sync folder
/vagrant is shared as outside VagrantFile folder

ที่เจ๋งคือ มันเอาไฟล์พวก war ไปวางแชร์ไว้ได้

เช่น dev บนเครื่อง, สร้าง war ไปวางใน share folder, แล้วไป deploy บน VM

6) Vagrant Share : Create URL point to VM

Need https://atlas.hashicorp.com/ account

$ vagrant login
Username or Email: dsin
Password (will be hidden):
You're now logged in!
$ vagrant share
...
==> default: Your Vagrant Share is running!
==> default: URL: http://frosty-weasel-0857.vagrantshare.com

We can access on the URL

7) Hybernate/Shutdown/Destroy VM

>> Hybernrate

$ vagrant suspend

After we want to use, type `vagrant up`

The downside is that the virtual machine still eats up your disk space, and requires even more disk space to store all the state of the virtual machine RAM on disk.

>> Shutdown

vagrant halt

>> Destroy VM : if run `vagrant up`, vagrant need to d/l again

$ vagrant destroy

8) Vagrant on VMware, AWS

vagrant up --provider=vmware_fusion
vagrant up --provider=aws

9) More at : https://docs.vagrantup.com/v2/

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