我是山姆鍋

山姆鍋過去雖然提過 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 套件管理工具,將下列指令貼到命令列:

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

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

1
brew tap caskroom/cask

Windows (Chocolatey)

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

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

1
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 系統內建,無需安裝。但為了確保套件資訊最新,須先執行下列指令:

1
sudo apt-get -y update

安裝 VirtualBox

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

OS X 環境

使用下面指令安裝 VirtualBox:

1
brew cask install virtualbox

Windows 環境

執行下列指令自動安裝:

1
choco install virtualbox

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

Ubuntu 環境

執行下列指令自動安裝:

1
sudo apt-get install virtualbox

安裝 Vagrant

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

OS X 環境

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

1
brew cask install vagrant

Windows 環境

使用下列指令安裝:

1
choco install vagrant

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

Ubuntu 環境

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

1
sudo apt-get install vagrant

小結

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

參考資料