它們分別是什么?
VirtualBox:
號稱是最強的免費虛擬機軟件和VM類似。
不僅具有豐富的特色,而且性能也很優(yōu)異。
Vagrant:
是一個基于Ruby的工具,用于創(chuàng)建和部署虛擬化開發(fā)環(huán)境。
使用Oracle的開源VirtualBox虛擬化系統(tǒng),使用Chef創(chuàng)建自動化虛擬環(huán)境。
解決了什么問題?
讓“代碼在我機子上運行沒有問題?” 這種說辭將成為歷史。
原理:
我們可以通過Vagrant封裝一個Linux的開發(fā)環(huán)境分發(fā)給團隊成員。成員可以在自己喜歡的桌面系統(tǒng)(Mac/Windows/Linux)上開發(fā)程序,代碼卻能統(tǒng)一在封裝好的環(huán)境里運行,非常霸氣。
如何安裝?
安裝VirtualBox:
https://www.virtualbox.org/wiki/Downloads
安裝Vagrant:
http://downloads.vagrantup.com/
下載系統(tǒng)鏡像。[Centos版本:6.5]
溫馨提示:安裝不同的版本,有可能會出現(xiàn)意想不到的錯誤。
具體操作
添加鏡像到Vagrant:
鏡像的存放位置為/home/box/centos65.box
cd/home/box/
vagrant box add centosbox centos65.box
初始化開發(fā)環(huán)境:
vagrant init centosbox #初始化
vagrant up#啟動環(huán)境
SSH登陸 方式一:
利用Xshell、Putty、SecureCRT等登錄。
Ip : 127.0.0.1
Port : 2222
Username : root
Password : vagrant
SSH登陸 方式二:
vagrant ssh [當(dāng)前登錄的賬號是vagrant]
su
vagrant [輸入后 切換成root賬戶]
常用配置
Vagrant初始化成功后,會在初始化的目錄里生成一個Vagrantfile文件,
可以修改該文件進行個性化的定制。
配置Box信息:
config.vm.box = "box"
config.vm.hostname = "box" [自定義名稱]
配置IP:
config.vm.network :private_network, ip: “192.168.33.10”[去掉#]
你可以把IP改成其他地址,只要不產(chǎn)生沖突就行。
配置同步目錄:
config.vm.synced_folder “../data”, “/vagrant_data” [去掉#,修改為下面]
config.vm.synced_folder “/home/web/www”, “/data/www“
/home/web/www:本地目錄,/data/www:Linux服務(wù)器目錄
配置虛擬內(nèi)存:
在文件結(jié)尾end字符前添加下面一段:
config.vm.provider :virtualbox do |vb|
? ? ? ? vb.customize ["modifyvm", :id, "--memory", "2048"]
end
溫馨提示:修改配置后 記得 重啟虛擬機。
打包分發(fā)
當(dāng)你配置好開發(fā)環(huán)境后,退出并關(guān)閉虛擬機。
在終端里對開發(fā)環(huán)境進行打包:
vagrant package
打包完成后會在當(dāng)前目錄生成一個package.box的文件,
將這個文件傳給其他用戶,
其他用戶只要添加這個box并用其初始化自己的開發(fā)目錄,
就能得到一個一模一樣的開發(fā)環(huán)境了。
常用命令
vagrant init #初始化
vagrant up #啟動虛擬機
vagrant halt #關(guān)閉虛擬機
vagrant reload #重啟虛擬機
vagrant status #查看虛擬機運行狀態(tài)
幫助文檔
http://segmentfault.com/blog/fenbox/1190000000264347
http://www.tuicool.com/articles/aErYJj
https://github.com/jedi4ever/veewee/issues/970
Thanks ~