Vagrant介紹
Vagrant可以提供可配置、可再生、便攜的工作環境,它主要是一箇中間層技術,它的下層是VirtualBox,VMware等虛擬機軟件,它的上層是配置管理系統工具,比如Shell Scripts,Chef,Puppet等可以自動化安裝和配置軟件的工具。
對你有什麼用
對於開發人員來說,Vagrant可以幫你統一團隊成員的開發環境。如果你或者你的夥伴創建了一個Vagrantfile,那麼你只需要執行vagrant up就行了,所有的軟件都會安裝並且配置好。團隊成員可以通過相同的Vagrantfile來創建他們的開發環境,無論他們是在Linux, Mac OS X,或者Windows下,這樣就可以保證你團隊成員的代碼是跑在相同的環境中,從而避免令人煩躁的在我的機器上是可以的問題。
對於運維人員來說,Vagrant可以給你提供一次性,並且與線上一致的服務器環境,你可以利用VirtualBox來測試你的管理腳本,不需要再登錄到線上服務器測試了。
對於設計人員來說,Vagrant可以幫你處理一切,你只需要專注在設計上就好了。一旦開發人員幫你配置好了Vagrant之後,你只需要執行vagrant up,然後開始設計。工具和環境如下:
工具及環境 | 版本 | 下載地址 |
宿主機環境 | Win8.1 | |
VirtualBox | VirtualBox-5.0 | |
Vagrant | vagrant_1.7.4 | |
Xshell | xshell_5.0 | http://www.netsarang.com/download/main.html |
1. 安裝 VirtualBox
Vagrant只是一個虛擬環境的容器,具體虛擬化的實現,依賴外部的虛擬機,例如VirtualBox和VMware,一般使用VirtualBox來搭建,免費小巧,在Windows系統上下載安裝VirtualBox for Windows hosts版。
下載地址:https://www.virtualbox.org/wiki/Downloads
2. 安裝 Vagrant
根據提示一步步安裝,安裝的過程中會自動配置系統變量,不需要再手工配置。
下載地址:http://downloads.vagrantup.com/
3.導入封裝好的鏡像
boxes是什麼?就是各種已經打包好的虛擬環境鏡像,供Vagrant使用。啓動命令提示符,通過cd命令進入box鏡像存放的目錄,在終端裏輸入:
vagrant box add hello ./package.box
hello是我們給這個box取的名字,./package.box是box的路徑,如果放在其他目錄需要在文件前添加相對路徑,用絕對路徑會提示找不到文件,建議box和vagrant的bin程序都放在同一個分區中,用相對路徑添加。
4.初始化開發環境
在本地創建一個開發目錄(比如:D:\Code),用來和虛擬環境的開發目錄同步,用命令行切換到開發目錄裏,初始化當前目錄的環境:
cd d:\code # 切換目錄
vagrant init hello # 初始化目錄環境
初始化開發環境後會自動生成一個Vagrantfile文件,用來配置vagrant的行爲所創建虛擬機的信息,修改默認的Vagrantfile:
VAGRANTFILE_API_VERSION = "2"
path = "#{File.dirname(__FILE__)}"
require 'yaml'
require path + '/scripts/homestead.rb'
Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
Homestead.configure(config, YAML::load(File.read(path + '/Homestead.yaml')))
End
修改Homestead.yaml文件,修改map爲本地的開發目錄,to爲在虛擬環境中映射的目錄:
folders:
- map: d:/phpcode
to: /home/vagrant/Code
修改homestead.rb文件,找到下面一行,修改爲前面命名的box名稱:
config.vm.box = "hello"
5.啓動虛擬開發環境
vagrant up # 啓動環境
如果不出現錯誤,一個vagrant環境就已經配置好了。打開VirtualBox會看到終端顯示了啓動過程,啓動完成後,我們就可以登錄SSH:
vagrant ssh # SSH登錄
Windows 終端並不支持ssh,所以需要安裝第三方SSH 客戶端,這裏使用的是Xshell 5。登錄SSH,剩下的步驟就是在SSH客戶端裏通過虛擬機配置你要運行的各種環境和參數。
6.用SourceTree克隆項目代碼到本地開發目錄中。
7.配置nginx服務器
最後修改host文件,將虛擬環境的域名映射到本地80端口,重啓虛擬機,在本地通過配置好的域名就可以訪問項目了。
8.常用管理命令
vagrant up (啓動虛擬機)
vagrant halt (關閉虛擬機——對應就是關機)
vagrant suspend (暫停虛擬機——只是暫停,虛擬機內存等信息將以狀態文件的方式保存在本地,可以執行恢復操作後繼續使用)
vagrant resume (恢復虛擬機 —— 與前面的暫停相對應)
vagrant destroy (刪除虛擬機,刪除後在當前虛擬機所做進行的除開Vagrantfile中的配置都不會保留)