iT邦幫忙

DAY 5
1

從無到有打造 RESTful API service系列 第 5

[API-d5] - [Server 番外篇] 建立自己的本機虛擬伺服器 1 - Vagrant + VirtualBox 安裝

小弟的規劃表 - http://blog.kerkerj.in/blog/2014/11/01/planning/

好讀版 - http://blog.kerkerj.in/blog/2014/10/05/api-d5/

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

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

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

非常適合拿來做測試使用

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

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

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

VirtualBox

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

安裝完成就可以了!

因為我們接下來會使用 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 的設定,

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

1

$ vagrant reload

下回待續!!


上一篇
[API-d4] - 使用技術與工具介紹及原因
下一篇
[API-d6] - [Server 番外篇] 建立自己的本機虛擬伺服器 2 - Ubuntu 基本設定與安裝 Node.js, MongoDB
系列文
從無到有打造 RESTful API service30

尚未有邦友留言

立即登入留言