它們分別是什么?
VirtualBox:
號(hào)稱是最強(qiáng)的免費(fèi)虛擬機(jī)軟件和VM類似。
不僅具有豐富的特色碰纬,而且性能也很優(yōu)異允粤。
Vagrant:
是一個(gè)基于Ruby的工具崭倘,用于創(chuàng)建和部署虛擬化開發(fā)環(huán)境。
使用Oracle的開源VirtualBox虛擬化系統(tǒng)类垫,使用Chef創(chuàng)建自動(dòng)化虛擬環(huán)境司光。
解決了什么問題?
讓“代碼在我機(jī)子上運(yùn)行沒有問題?” 這種說辭將成為歷史悉患。
原理:
我們可以通過Vagrant封裝一個(gè)Linux的開發(fā)環(huán)境分發(fā)給團(tuán)隊(duì)成員残家。成員可以在自己喜歡的桌面系統(tǒng)(Mac/Windows/Linux)上開發(fā)程序,代碼卻能統(tǒng)一在封裝好的環(huán)境里運(yùn)行售躁,非常霸氣坞淮。
如何安裝?
安裝VirtualBox:
https://www.virtualbox.org/wiki/Downloads
安裝Vagrant:
http://downloads.vagrantup.com/
下載系統(tǒng)鏡像陪捷。[Centos版本:6.5]
溫馨提示:安裝不同的版本回窘,有可能會(huì)出現(xiàn)意想不到的錯(cuò)誤。
具體操作
添加鏡像到Vagrant:
鏡像的存放位置為/home/box/centos65.box
cd/home/box/
vagrant box add centosbox centos65.box
初始化開發(fā)環(huán)境:
vagrant init centosbox #初始化
vagrant up#啟動(dòng)環(huán)境
SSH登陸 方式一:
利用Xshell市袖、Putty啡直、SecureCRT等登錄。
Ip : 127.0.0.1
Port : 2222
Username : root
Password : vagrant
SSH登陸 方式二:
vagrant ssh [當(dāng)前登錄的賬號(hào)是vagrant]
su
vagrant [輸入后 切換成root賬戶]
常用配置
Vagrant初始化成功后苍碟,會(huì)在初始化的目錄里生成一個(gè)Vagrantfile文件酒觅,
可以修改該文件進(jìn)行個(gè)性化的定制。
配置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
溫馨提示:修改配置后 記得 重啟虛擬機(jī)颜凯。
打包分發(fā)
當(dāng)你配置好開發(fā)環(huán)境后谋币,退出并關(guān)閉虛擬機(jī)。
在終端里對(duì)開發(fā)環(huán)境進(jìn)行打包:
vagrant package
打包完成后會(huì)在當(dāng)前目錄生成一個(gè)package.box的文件装获,
將這個(gè)文件傳給其他用戶瑞信,
其他用戶只要添加這個(gè)box并用其初始化自己的開發(fā)目錄,
就能得到一個(gè)一模一樣的開發(fā)環(huán)境了。
常用命令
vagrant init #初始化
vagrant up #啟動(dòng)虛擬機(jī)
vagrant halt #關(guān)閉虛擬機(jī)
vagrant reload #重啟虛擬機(jī)
vagrant status #查看虛擬機(jī)運(yùn)行狀態(tài)
幫助文檔
http://segmentfault.com/blog/fenbox/1190000000264347
http://www.tuicool.com/articles/aErYJj
https://github.com/jedi4ever/veewee/issues/970
Thanks ~