Vagrant搭建項目跨平臺開發環境的解讀

Vagrant是一款用於建立與配置輕量級,跨平臺開發環境的工具html

需求狀況

哪些狀況下可能會須要使用Vagrant來搭建開發環境:linux

  • 項目自己須要在linux/Mac上跑(好比Ruby項目),而開發者使用的是windows (固然這種狀況也能夠不經過vagrant,本身搭建虛擬機)laravel

  • 項目開發者使用的系統不一,但但願統一開發環境git

  • 搭建項目環境是一個較爲麻煩的過程,新手可能須要花費較多時間,可是須要全部開發者快速投入開發工做shell

使用場景

  • 本身初始化一個box, 從零開始搭建環境ubuntu

  • 團隊其餘人制做好了項目環境的box, 讓你在項目中初始化segmentfault

box是什麼

boxvagrant中的一個概念,指的是一個環境。box中包含了操做系統和項目運行所須要的其餘環境,好比一個Ruby and Rails項目封裝好的box,多是Ubuntu系統+git+Ruby/Bundle+Rails+Nodejs+MySQL)。官方提供了一些box供選擇,能夠在vagrant官網導航的Boxes進入。windows

vagrant的經常使用命令

在vagrant官網導航進入Docs,能夠找到命令的說明。這裏列出一些我認爲較經常使用的。瀏覽器

vagrant init {|box}  # box如:ubuntu/trusty64,不添加的話則會用vagrant提供的基本box
vagrant box add {box} # 也能夠vagrant init後再添加想要的box
vagrant up --provider virtualbox # 啓動vagrant,設置虛擬機,不加--provider的話,會默認用virtualbox
vagrant ssh # ssh鏈接到虛擬機,windows須要藉助第三方SSH工具如XShell
vagrant reload # 重啓vagrant
vagrant halt # 關閉vagrant
vagrant provision # 在vagrant已啓動的狀況下,修改了Vagrantfile,加載新的設置
vagrant up --provision 
vagrant reload --provision
vagrant destroy # 刪除虛擬機

Vagrantfile

當運行vagrant init命令後,會生成一個無後綴名的Vagrantfile文件,這個是vagrant的配置文件,啓動vagrant的時候,會按這個文件的設置來啓動,能夠設置network, timeout, shared_fold等,還能夠在這個文件裏設置好項目運行環境的安裝,配置的方式有SHELL, Chef Solo, Chef Aero, Docker等,你能夠用你熟悉的方式來設置,詳細能夠查看官網文檔之provisioningssh

.vagrant文件夾

這個文件夾在vagrant up後生成,放的是根據Vagrantfile的配置生成的相關環境文件,在第一次啓動的時候可能須要稍微比較長的時間,由於是第一次生成這個文件,當再次啓動的時候,須要的時候會明顯下降。若是修改了Vagrantfile的配置,在啓動的時候可使用--provision來使其加載新的配置。

具體操做

準備工做:安裝VirtualBoxVagrant

VirtualBox下載
vagrant官網

肯定box

box的獲取大概有幾種方式,其一,團隊其餘成員分發的,其二,vagrant官網提供的官方版本,如ubuntu/trusty64(ubuntu14.04), laravel/homestead 或其餘開發者上傳的,如leopard/rwtrusty64(rails,ubuntu14.04),其三,本身製做好打包,固然也是能夠依賴於官網提供的基礎版本,再安裝項目須要的環境,而後打包box

初始化box啓動項目

肯定好box後,在項目下初始化而後啓動:

vagrant init {box}
vagrant up
vagrant ssh # windows須要藉助第三方工具如```XShell```

ssh鏈接後啓動項目,在宿主機瀏覽器訪問。
如果須要本身安裝環境,有2種方式,其一,在ssh鏈接後手動進行安裝。第二種方式,能夠配置Vagrantfile後從新啓動,具體的配置方式,前面有提到過,vagrant提供了SHELL, Chef solo等方式,詳細可查看官網文檔

bug list

TODO: 記一下本身遇到的問題及找到的解決方法

個人小結

使用vagrant開發的步驟:
①初始化box
②啓動虛擬機(vagrant up)
③鏈接進入虛擬機系統(vagrant ssh
④啓動項目
⑤最後在宿主機瀏覽器裏訪問虛擬機裏的項目(實際上是虛擬機系統把項目訪問權限開放給了宿主機).
能夠看到,vagrant在這其中的角色實際上是提供了一種方式,使得開發者可使用已經搭建好的項目環境,從而快速啓動項目進行開發,而這種方式,就是經過分發box,藉助vagrant在虛擬機中啓動項目環境,而且把訪問權限開放給宿主機,從而開發者能夠在本身主機上經過瀏覽器訪問項目,沒必要再花費時間在搭建項目環境上。
使用vagrant搭建項目環境的具體操做,其實理解了vagrant在作什麼,再來搭建環境就明朗不少了,根據本身的項目類型(PHP/Ruby/Python/Java),找到對應的教程/文章,通讀後進行實操便可.其實過程都是差很少的,除了項目須要的啓動環境不同(好比Ruby項目須要bundle, PHP項目須要Composer)。

Tips

這裏補充幾點須要留意的:

  • 注意先安裝VirtualBox,再安裝Vagrant

  • VirtualBox安裝好後,像通常的軟件,能夠添加快捷圖標到桌面;而vagrant不是,能夠在命令行鍵入vagrant -v檢測是否已安裝

  • box:能夠在 https://atlas.hashicorp.com/boxes/search 找須要的box

  • vagrant的全部配置信息其實都在Vagrantfile文件裏,這是一個沒有後綴名的文件,是vagrant的配置文件;當在項目下vagrant init時,就會生成此文件,文件中已包含基本的配置信息,且每一項配置都有詳細的註釋說明,建議通讀一遍,其餘配置能夠查看官網文檔

相關連接

VirtualBox下載
vagrant官網
官方vagrant box查詢
使用Vagrant打造跨平臺開發環境

vagrant打造開發環境教程連接

使用Vagrant打造跨平臺開發環境
Rails的vagrant搭建教程:
Using Vagrant for Rails Development
使用Vagrant部署Rails項目(上面那篇的翻譯版)
使用Vagrant快速搭建rails開發環境

相關文章
相關標籤/搜索