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
,並且每個路徑都用;
隔開