Vagrant 幫助你秒建虛擬機,甚至幫你安裝軟體到這個虛擬機,讓你躺著獲得測試環境
這樣一來,
- 你的 FB 可以開著等人敲你,或是任何等待時間可以拿來做別的事情
- 你的 LOL 還是可以開著等人邀你
- 環境被你玩到髒了、崩潰了,當成用過的衛生紙丟掉即可
- 你建好的環境可以在各種機器中游走 (可攜性),所以也可以任意繁殖,重灌之後虛擬機的靈魂依舊不散(如果你有備份的話)
簡單,因為 Linux 大多是開放原始碼的,這個特性可以:
- 你的軟體不用錢
- 原始碼攤在陽光下給大家檢驗
- 
Vagrant 支援各種虛擬化方式(文件中稱為 provider),本次教學使用 Virtualbox,它免錢又好用,因此下載並安裝 
- 
接著,去Vagrant Cloud尋找別人打包好的 Box(機器映像檔),因為我個人目前最常接觸的環境是CentOS(來源),因此我選擇chef/centos-6.5這個Box
2015/4/9 Updates: 如果是資訊創意課程的同學,課程中使用的機器名稱 (Box) 為
puphpet/debian75-x64,現在centos-6.5已經過於老舊了
- 
打開 CMD (或者終端機),選一個空資料夾,下 vagrant init <Box> // 上面的 <Box> 請改成上面選擇的名稱
- 
Vagrant 會建立 Vagrantfile,這個檔案敘述了虛擬機的設定,用文字編輯器打開它會發現config.vm.box = "剛剛選的 Box 名稱"
- 
這行就代表你指定的機器名稱,其他設定基本上不需要更改,因此下 vagrant up
- 
開始正式下載機器並開機,開機過程應該可以發現 default: SSH address: 127.0.0.1:2222 default: SSH username: vagrant default: SSH auth method: private key
- 
因此登入用 SSH (Putty),並且使用私鑰進行登入(而非密碼),這邊的私鑰是由 vagrant提供的insecure_private_key,但是格式為openssh的格式,要利用puttygen轉換成ppk才能讓 putty 使用:
- 
接著打開 Putty,其餘的設定如下,之後登入用的 User name 用vagrant
2015/4/30 Updates: 後來發現 vagrant 會對獨立虛擬機額外產生 private_key ,所以
insecure_private_key就沒用了,而這個額外產生的private_key放在<Vagrantfile_folder>\.vagrant\machines\default\virtualbox,所以變成要轉換這個檔案為ppk格式給 Putty 來避免輸入密碼
上面利用puttygen把openssh的私鑰轉換成的方法,也可以用來轉換 unix 產生的私鑰
- 成功登入之後,你便可以開始使用你的環境,以上做法只是 最基本,vagrant 有很多設定可以使用,請參考官方文件
Vagrant 預設的機器網路只有給 SSH 這個通道而已 (127.0.0.1:2222),如果你要在機器上面架設 Web Service,就沒辦法用原本機器的瀏覽器去看成果,在 Vagrantfile 裡頭的
# config.vm.network "forwarded_port", guest: 80, host: 8080
# config.vm.network "private_network", ip: "192.168.33.10"
# config.vm.network "public_network"
是跟網路有關的設定,把 # 拿掉(反註解)就可以啟動這些設定,建議使用 private_network 這個方法,這樣這台機器就只有原本的主機可以存取,並且 IP 是固定的,以下是 Vagrant 對網路設定的說明
設定完成之後,如果機器已經啟動,要重新 vagrant reload 啟動機器才會套用
- 如果出現指令找不到,請到控制台設定環境變數 Path有沒有C:\Program Files (x86)\Vagrant\bin,並且每個路徑都用;隔開




