VirtualBox 是一套虛擬軟體,可以方便幫助我們在現有的作業系統上

模擬另一個作業系統 (如 linux, Ubuntu, CentOS…)

在虛擬機器裡面所以的一切變動,都不會影響到現有的作業系統,

非常適合拿來做測試使用

由於現在大部份的 Service 除了架設在 Windows Server 外,最大宗的就是 *nix distribution 了

因此這在這個系列文中,也是一定要教大家如何建立起虛擬測試機器,

來模擬真實 Server 環境中,如何架設自己撰寫的 API Service

VirtualBox

VirtualBox 官方網站下載合適的安裝檔案吧!

p1

安裝完成就可以了!

因為我們接下來會使用 Vagrant 這套 commaond line tool 來對 VirtualBox 進行操作

因此只要安裝完 VirtualBox 後就可以不用管他了 XD

Vagrant

Vagrant

它可以幫助我們快速的建立一個輕量、可重複使用、並且可以打包起來帶著走的環境

透過編輯一個設定檔,就可以簡單設定該虛擬系統的 *nix 基本設定,如 共享資料夾、網路存取等等,

不需要透過 VirtualBox

通常這套軟體可以應用在團隊開發上:

以網頁開發來說,如果大家的測試環境與版本都不太一樣,例如 apache 或 php 版本不同

有時候會造成團隊溝通的負擔,因此透過 Vagrant 將 server 環境重新建立一套虛擬機器,

並且透過 Vagrant 打包,就可以丟給其他人使用,這樣一來大家的環境都一樣,

就可以避免這個問題,

而且還有一點,Server 的安裝是很累人的,同樣的事情基本上都不會想做第二遍,

因此打包一個乾淨的環境後備份,弄髒了可以隨時快速再把備份拿出來用,非常方便!

安裝:

下載頁面 尋找適合自己的下載並且安裝

安裝完後應該就可以在終端機中使用 vagrant 這個指令了!

$ vagrant -v
Vagrant 1.6.5

目前最新的版本應該是 1.6.5

建立自己的虛擬機器

首先在自己想要建立虛擬機器的地方先開一個資料夾

$ mkdir ~/ithome/ 

切換到該資料夾

$ cd ~/ithome

使用 vagrant 初始化這個資料夾,並且指定我們要使用 Ubuntu 14.04 版本

$ vagrant init ubuntu/trusty64
A `Vagrantfile` has been placed in this directory. You are now
ready to `vagrant up` your first virtual environment! Please read
the comments in the Vagrantfile as well as documentation on
`vagrantup.com` for more information on using Vagrant.

如果想要使用別種 *nix 版本可以到這裡找 - VagrantCloud

下完 vagrant init ubuntu/trusty64 指令後,指令告訴你有一個檔案叫做 Vagrantfile 被建立在這個資料夾裡了,

可以使用 vagrant up 來開啟虛擬機器

不過我們先不要下開機指令,我們先來看看 Vagrantfile 的內容,我直接把比較重要的設定說明寫在註解裡面了:

  ...
  
  // 此行是說明要使用哪一個 box ,會到自己的系統裡面尋找,如果沒有的話就會下載一個
  // 由於我們剛剛是使用 VagrantCloud 找的版本,因此 vagrant 會去找 
  config.vm.box = "ubuntu/trusty64"

  // 這個是設定網路
  // 預設是 NAT,也就是如果我們在虛擬機器裝了網頁伺服器,
  // 必須使用 port forwarding 的方式來讀到虛擬機器裡面的網頁 
  #config.vm.network "forwarded_port", guest: 80, host: 8080

  // Important! 
  // 承上,或者我們可以使用一個 private network ip,我們把它開啟註解吧~
  // 這樣我們開啟虛擬機器時,他的 IP 就會是 192.168.33.10
  config.vm.network "private_network", ip: "192.168.33.10"

  // 開啟註解的話,就是直接使用 bridge 的方式,如果是使用分享器的話
  // 虛擬機會到分享器要一個 IP 
  # config.vm.network "public_network"
  
  // 這個是設定共享資料夾
  // 預設是放 Vagrantfile 的那個資料夾
  // 在這個資料夾放檔案的話,在虛擬機器裡的 '/vagrant/' 資料夾是可以看到的!!
  // 如果有想要指定到特殊的資料夾,再編輯此行並開啟註解即可
  # config.vm.synced_folder "../data", "/vagrant_data"

end

再來就讓它開機吧!

$ vagrant up 

如果沒有下載過 ubuntu 系統的話,會先幫你下載,所以需要等待一些時間

若看到終端機說系統已經建立完成,

就可以連線進去了!

$ vagrant ssh
.....
vagrant@vagrant-ubuntu-trusty-64:~$ 

就會發現終端機的 prompt 已經不一樣了,變成 ubuntu-trusty-64 ,表示我們已經進入虛擬機器裡面了

由於今天的內容只會先到這,關於 Ubuntu 的設定是明天,所以記得離開虛擬機器並且幫他關機 XDD

// 如果剛剛有進入虛擬機器的話,輸入 exit 離開
$ exit

再下關機指令:

$ vagrant halt 

虛擬機器就被關起來了!

順帶一提

如果在虛擬機器開機時,需要更改 Vagrantfile 的設定,

改完後虛擬機器必須要重新開啟才會讀到新的設定

$ vagrant reload

下回待續!!