山姆鍋過去雖然提過 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 位址、附加額外硬碟等等)以適用更多情境。