其實這篇是從以前的blog移植過來
發生了一些事情導致我之前的blog檔案損毀
這篇覺得很有價值保留
因此,就親手慢慢來重新把這篇還原並當做新blog的第一篇。

接了這次的專案,讓我更體會到VM的好,
建環境真的是每個工程師的惡夢,
VM卻可以解決這個問題,
接下來,我會介紹vagrant基本可使用的操作,
OK!Here we go!!!!!

零、前置下載作業


一開始要下載VirtualBox和vagrant,
virtual box官網下載(for free)
vagrant官網下載(for free)
因為vagrant是與virtualbox合作,
也就是說我們等等是用vagrant的指令,
而開的vm是virtualbox。 安裝完畢,就正式開始了~

一、啟動vagrant


接著開始我們的project
這邊範例我取名為vagrant_project

1
2
mkdir vagrant_project
cd vagrant_project

(這邊是基本的建立資料夾)
接著我們要設定一下下我們的vagrant

1
vagrant box add precise64 http://files.vagrantup.com/precise64.box

這邊是在設定vagrant開啟時的預設,
precise64是以後對這個box的稱呼,
有些人也會使用
1
vagrant box add base http://files.vagrantup.com/precise64.box

而後面的網址是去下載ubuntu 12.04的64bit OS box
(vagrant中以box稱呼每一個vm)
可以上網查其他的OS box

1
2
vagrant init precise64
vagrant up

當下vagrant init時,會在當下資料夾產生一個vagrantfile
裡面放了很多vagrant的設定
(我們之後再來看這些設定)
整個指令的意思大概就是開啟一個新的vm,以precise64(or base)這個box當做VM OS
vagrant up則是啟動vm,沒錯!此時我們的vm已經開起來了唷!!!
(可以透過vagrant status來看vm現在的狀況)

二、進入vm開始做些怪怪的事了,嘿嘿~


1
vagrant ssh

這個指令,很清楚就是用ssh去連你剛剛開好的vm
接著,

1
\curl -L https://get.rvm.io | bash -s stable --rails --autolibs=enabled # Or, --ruby=1.9.3

好了,現在你的ROR環境就大致完成了
系統OS : ubuntu 12.04
Ruby : 2.0.0 (之後應該會不斷更新)
Rails : 3.2.10 (同上)

三、更改設定檔,成為萬能的VM


開始我們修改一下剛剛的vagrantfile
將vagrantfile打開
會看到很多已經註解的code
接著我來介紹一些簡單我常用的設定

1
config.vm.network :forwarded_port, guest: 3000, host: 8080

打開這個設定,就是說連到本機端port 8080的話,會幫你自動轉到vm裡面的port 3000
更簡單點講就是,在vm開rails s 通常會自動開在port3000,然後再瀏覽器打上localhost:8080
就可以看到自己的網頁啦~~~

1
config.vm.network :private_network, ip: "192.168.33.10"

打開這個設定,就可以透過本機端連ip到VM,
從瀏覽器打上192.168.33.10:8080 就可以像上面一樣連到我們的網頁啦~~~~

1
config.vm.network :public_network

這個設定打開後,VM就可以透過本機端的網路,存取外面的資源
當你要讀取外部資料,爬外面網頁時,如果沒有開這個設定
有可能造成VM的無法辨識DNS,就無法得到你想要的資料了
(因為沒有開就連不到外面的網路,VM就會在本機端找尋你要的路徑,當然DNS就不會是正確的)

1
config.vm.synced_folder "../vagrant", "/vagrant_data"

這個功能也很酷!!!
就是VM和本機端共享資料夾
前面是本機端的資料夾
後面就是在VM中的資料夾
他會把本機端(../vagrant)資料夾下的檔案都讀進VM中的/vagrant_data這個資料夾裡面 此時,你就可以同步修改某一個地方的code
也就是說你可以用本機端的editor去修改
在用VM跑,是不是超級方便!!!!

一起成為VM大師吧~~~!!!!
還想學嗎?期待下次你家的小熊教你~~~