它們分別是什麼?git
VirtualBox:github
號稱是最強的免費虛擬機軟件和VM相似。web
不只具備豐富的特點,並且性能也很優異。shell
Vagrant:segmentfault
是一個基於Ruby的工具,用於建立和部署虛擬化開發環境。centos
使用Oracle的開源VirtualBox虛擬化系統,使用Chef建立自動化虛擬環境。服務器
解決了什麼問題?ide
讓「代碼在我機子上運行沒有問題」 這種說辭將成爲歷史。工具
原理:性能
咱們能夠經過Vagrant封裝一個Linux的開發環境分發給團隊成員。成員能夠在本身喜歡的桌面系統(Mac/Windows/Linux)上開發程序,代碼卻能統一在封裝好的環境裏運行,很是霸氣。
如何安裝?
安裝VirtualBox:
https://www.virtualbox.org/wiki/Downloads
安裝Vagrant:
http://downloads.vagrantup.com/
下載系統鏡像。[Centos版本:6.5]
舒適提示:安裝不一樣的版本,有可能會出現意想不到的錯誤。
具體操做
添加鏡像到Vagrant:
鏡像的存放位置爲/home/box/centos65.box
cd/home/box/
vagrant box add centosbox centos65.box
初始化開發環境:
vagrant init centosbox #初始化
vagrant up#啓動環境
SSH登錄:
利用Xshell、Putty、SecureCRT等登陸。
Ip : 127.0.0.1
Port : 2222
Username : root
Password : vagrant
經常使用配置
Vagrant初始化成功後,會在初始化的目錄裏生成一個Vagrantfile文件,
能夠修改該文件進行個性化的定製。
配置IP:
config.vm.network :private_network, ip: 「192.168.33.10」[去掉#]
你能夠把IP改爲其餘地址,只要不產生衝突就行。
配置同步目錄:
config.vm.synced_folder 「../data」, 「/vagrant_data」 [去掉#,修改成下面]
config.vm.synced_folder 「/home/web/www」, 「/data/www「
/home/web/www:本地目錄,/data/www:Linux服務器目錄
配置虛擬內存:
在文件結尾end字符前添加下面一段:
config.vm.provider :virtualbox do |vb|
vb.customize ["modifyvm", :id, "--memory", "2048"]
end
舒適提示:修改配置後 記得 重啓虛擬機。
打包分發
當你配置好開發環境後,退出並關閉虛擬機。
在終端裏對開發環境進行打包:
vagrant package
打包完成後會在當前目錄生成一個package.box的文件,
將這個文件傳給其餘用戶,
其餘用戶只要添加這個box並用其初始化本身的開發目錄,
就能獲得一個如出一轍的開發環境了。
經常使用命令
vagrant init #初始化
vagrant up #啓動虛擬機
vagrant halt #關閉虛擬機
vagrant reload #重啓虛擬機
vagrant status #查看虛擬機運行狀態
幫助文檔
http://segmentfault.com/blog/fenbox/1190000000264347