昨天我們已經把一個全新乾淨的環境架起來了

這時候我們不希望因為日後的操作導致 Server 環境髒掉,又要重灌

因此我們今天就來練習一下如何使用 vagrant 打包環境!

Vagrant 打包

一樣先進入虛擬機資料夾,先確保虛擬機沒有在運作:

$ vagrant status
Current machine states:

default                   poweroff (virtualbox)

The VM is powered off. To restart the VM, simply run `vagrant up`

如果是 poweroff 的話,就可以進行接下來的動作,如果是其他狀態的話,就先下關機指令囉

$ vagrant package
==> default: Clearing any previously set forwarded ports...
==> default: Exporting VM...
==> default: Compressing package to: /Users/.../ithome/package.box

vagrant 就會在虛擬機器資料夾底下建立一個 package.box

這個檔案就是整個伺服器環境的檔案了!

假設今天想要讓團隊成員使用,只要他們都有 VirtualBox + Vagrant 的話,

就可以依循下面的指令步驟將你所做的 box 匯入並使用:

首先我們可以先看看原本所使用的 box 清單:

$ vagrant box list
ubuntu/trusty64                          (virtualbox, 14.04)

ubuntu/trusty64 沒錯!

那麼我們現在想要加入剛剛所製作的 box ,並重新命名:

$ vagrant box add my_box package.box
==> box: Adding box 'my_box' (v0) for provider:
    box: Downloading: file:///Users/.../ithome/package.box
==> box: Successfully added box 'my_box' (v0) for 'virtualbox'!

此時再看看 box 清單:

$ vagrant box list
ubuntu/trusty64                          (virtualbox, 14.04)
my_box                                   (virtualbox, 0)

就會多一個了!

vagrant box add my_box package.box

這個指令的意思是將 package.box 加入 box 清單,並以 my_box 命名

package.box 可以是本機路徑,也可以是網址,

如果要分享給團隊成員使用,就可以使用 url 分享,其他人就可以下指令來下載 box 並加入 box list

例如:

$ vagrant box add my_box http://my_dropbox.com/package.box

接著其他人就可以建立自己的虛擬機資料夾,並且到該資料夾中下指令就可以初始化虛擬機器了,例如:

$ mkdir ~/my_machine/
$ cd ~/my_machine/
$ vagrant init my_box 

超方便的啦~

如果想要從 box list 中刪除不需要的 box,下此指令即可:

$ vagrant box remove my_box
Are you sure you want to remove this box? [y/N] y

上面只會刪除 box 清單,

如果要刪除虛擬機器資料夾,以及虛擬機器的所有檔案的話,先到虛擬機器資料夾,然後下此指令:

$ vagrant destroy
    default: Are you sure you want to destroy the 'default' VM? [y/N] y

虛擬機就會被移除,再來只要將該資料夾砍掉即可~ 就恢復成乾乾淨淨的了~

是不是很方便勒~~

接下來我們就會開始先寫寫 Node.js 的 Hello World 囉~