Skip to content

Vagrant+VirtualBox 跨平台虛擬環境

Published: 5 分鐘

山姆鍋過去雖然提過 Vagrant 以及 VirtualBox 作為開發運維的虛擬化測試環境,但卻都沒有提到過如何安裝。一方面認為這類工具安裝相當基本,一方面也認為網路上很容易就可以找到相關教學文件。由於太常用到 Vagrant,也為了能夠同時支援 Windows、OS X 以及 Ubuntu 系統的技術人員可以快速準備好環境,山姆鍋還是整理了這三個平台的安裝步驟。

本文主要是針對開發人員(泛指會參與軟體設計、撰寫、測試以及運維的技術人員)所撰寫,為了開發上的需要在工作機上安裝Vagrant+VirtualBox工具,其中工作機是指開發人員使用的筆電(Laptop)或者桌機(Desktop computer)。山姆鍋是自動化的擁護者,所以安裝方式都以命令列方式進行。理想上,您可以剪貼(copy-n-paste)的方式按照步驟完成。

提醒:按照本文方式安裝,各個環境的 Vagrant 跟 VirtualBox 很可能會不相同。所以,如果您的需求是各個環境都使用相同版本的軟體,本文並不適用。

前提假設

對於工作機的假設:

作業系統(OS)Mac OS X 10.10+ / Windows 10/Ubuntu 16.04+
處理器(CPU)i5 雙核 2.5 GHz 以上
主記憶體(RAM)8 GB 以上
硬碟空間(Disk Drive)100 GB 以上

環境設置

準備工作

為了讓安裝的工作更自動,採用各個系統常用的自動套件管理工具。如果您的系統已經有安裝,可以跳過「準備動作」這一節。

OS X (Homebrew)

為了後續安裝工作,需先安裝 Hombebrew 這個 OS X 套件管理工具,將下列指令貼到命令列:

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

另外為了安裝只提供 installer 的套件,需要使用 Cask 這個 Homebrew 擴充工具。使用下列指令安裝:

brew tap caskroom/cask

Windows (Chocolatey)

針對 Windows 工作機,套件安裝方式採用 Chocolatey 這個工具。

在 PowerShell 執行下列指定(PowerShell 需有管理員權限):

Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))

Ubuntu (APT)

APT 工具是 Ubuntu 系統內建,無需安裝。但為了確保套件資訊最新,須先執行下列指令:

sudo apt-get -y update

安裝 VirtualBox

在 Vagrant 支援的虛擬機技術裡,VirtualBox 具備跨平台的優點(主要應該還是因為免費吧?),所以通常使用 VirtualBox 與 Vagrant 搭配。

OS X 環境

使用下面指令安裝 VirtualBox:

brew cask install virtualbox

Windows 環境

執行下列指令自動安裝:

choco install virtualbox

手動安裝,可參考 https://school.soft-arch.net/blog/69382/install-vagrant-on-win

Ubuntu 環境

執行下列指令自動安裝:

sudo apt-get install virtualbox

安裝 Vagrant

Vagrant 讓技術人員可以描述檔方式宣告虛擬環境所要的組態,而由 Vagrant 命令列工具自動建置。

OS X 環境

安裝方式,透過下列指令:

brew cask install vagrant

Windows 環境

使用下列指令安裝:

choco install vagrant

手動安裝,可參考 https://school.soft-arch.net/blog/69382/install-vagrant-on-win

Ubuntu 環境

在命令列使用下列指令安裝(使用者需有 sudo 權限):

sudo apt-get install vagrant

需要最新或者特定版本,可以使用下列指令安裝(以版本 2.2.9 為例):

wget https://releases.hashicorp.com/vagrant/2.2.9/vagrant_2.2.9_x86_64.deb

sudo dpkg -i vagrant_2.2.9_x86_64.deb

Vagrant 發行套件列表可由此位址 https://releases.hashicorp.com/vagrant/ 取得。

小結

隨著容器技術(e.g. Docker)的進展,開發團隊可以更輕量的方式確保開發測試環境的一致性,這導致了 Vagrant 慢慢在退流行。但是在運維部署這方面,虛擬機技術還是提供跟實際部署系統更相近的測試環境。由於山姆鍋最常使用 Ubuntu 系統,也很期望後起的 Multipass 可以支援一些必要功能(如指定 IP 位址、附加額外硬碟等等)以適用更多情境。

參考資料

郭信義 (Sam Kuo)

奔騰網路科技技術長,專長分散式系統、Web 應用與雲端服務架構、設計、開發、部署與維運。工作之餘,喜歡關注自由軟體的發展與應用,偶爾寫一下部落格文章。