什麼是Vagrant
簡單來說,**Vagrant 就是一個虛拟機的內建管理器**。
我們用它可以快速建立虛拟機,可以快速部署好所需的各種環境,無論你想要開發環境或是上線環境都能一鍵搞定。甚至你可以部署多台都沒問題。
想想看,假設一台Application Server,再加一台Master Database+ 一台Slave Database,也許可以再來一台Monitor Server等等,全部都可以用你那台開發工作的電腦來實作,隻要有足夠記憶體。是不是很牛的樣子?是以說,要讓我們不用Vagrant,給個理由先?
一.安裝Vritualbox
1.檢查系統核心版本
uname -a
2.安裝軟體環境
yum -yinstall gcc
yum -yinstall kernel-devel
yum -yinstall kernel-headers
3.yum -y install kernel
更新完核心後要重新開機 reboot
4.安裝dkms
注意:先安裝dkms在裝virtualbox。不然會報錯,說你缺少依賴包
下載下傳dkms包:
wget http://linux.dell.com/dkms/permalink/dkms-2.2.0.3-1.noarch.rpm
安裝dkms包:
rpm -ivhdkms-2.2.0.3-1.noarch.rpm
5.安裝所需依賴包:
yuminstall mesa-libGL
yuminstall qu-x11
yuminstall libXmu
yum installSDL
6.安裝virtualbox
rpm -ivh VirtualBox-4.3-4.3.8_92456_el6-1.x86_64.rpm
7.啟動virtualbox
/etc/init.d/vboxdrvsetup
二.安裝Vagrant
1.下載下傳vagrant安裝包
可到vagrant官網下載下傳
http://www.vagrantup.com/
根據個人系統選擇需要下載下傳的安裝包安裝即可
rpm -ivh vagrant_1.4.3_x86_64.rpm
2.下載下傳vagrant的box
vagrant把每個打包好的虛拟機叫做box
可以到http://www.vagrantbox.es/下載下傳你所需要的box虛拟機鏡像
3.添加一個box到vagrant虛拟機裡
vagrantbox add aaa(aaa代表虛拟機的名字可自行設定)CentOS-6.4-x86_64-v20130731_0.box(下好的box鏡像)
4.添加到box清單
vagrantbox list
5.建立一個工作目錄vm然後在vm裡使用以下指令
vagrantinit aaa
然後我們會看到如下提示資訊:
A`Vagrantfile`hasbeenplacedinthisdirectory.Youarenow
readyto`vagrantup`yourfirstvirtualenvironment!Pleaseread
thecommentsintheVagrantfileaswellasdocumentationon
`vagrantup.com`formoreinformationonusingVagrant.
Vagrant在vm目錄會生成了一個“Vagrantfile”的設定檔案。
6.啟動vagrant
vagrantup
我們會看到很多資訊
證明虛拟機已經啟動
啟動如遇到以下問題
VBoxManage startvm RedHat9 --typeheadless打開無視窗的virtualbox看報錯後
執行chmod -R o-w /usr
7. 下面我們需要連接配接上vagrant
vagrantssh
會出現如下資訊:
[root@root vagrant]# vagrantssh
Last login: Thu Mar 608:39:55 2014 from 10.0.2.2
Welcome to your Vagrant-built virtual machine.
這表示我們的已經進入到vagrant的虛拟機
預設的密碼是vagrant如果想切到root使用者
su - root
密碼也是vagrant
8.打包自己的box虛拟機
當你把自己的虛拟機做好所需的環境,例如我的CentOS-64會更新好yum軟體包,安裝好MySQL、PHP等環境後,不想以後每次都把這個過程重來一次,或者假如在團隊裡不想每個成員的開發環境各自五花八門亂七八糟,我就可以把這個做好的CentOS-64打包出來,分享給團隊成員。
vagrant package
等過一段時間後就會在我們的vm目錄下生成一個新的box鏡像叫做:package.box
這樣以後我們就可以使用這個新的box鏡像了。
用同樣的方法添加到box列面中
記得一定要把vagrantfile檔案删除不然無法添
vagrant box add bbbpackage.box
原來的box鏡像可以删掉節省一些空間
vagrant box remove aaa
9.虛拟機設定
注:下面提到的設定有些是預設注釋掉的,沒有開啟,務必要取消注釋才會生效。
指定虛拟機使用哪個Box源。
config.vm.box ="aaa"
端口轉發設定主機的8080端口映射到虛拟機的80端口
config.vm.network :forwarded_port, guest: 80, host:8080
網絡連接配接方式
config.vm.network :private_network, ip:"192.168.33.10"(私有模式)和你host機同以網絡的其它電腦看不到它
config.vm.network :public_network (公開模式)和你host機器有類似IP,同一網絡其它電腦都能看到它。
一般采用私有模式,而IP也不建議用192.168開頭以免沖突,例如可以用66.66.66.10
設定虛拟機記憶體
10.多台虛拟機設定
打開Vagrantfile配置檔案将下行注視:
#All Vagrantconfiguration is done here. The most common configuration
将配置檔案裡改成這樣:
Vagrant.configure("2")do |config|
config.vm.define :dev1 do |dev|
dev.vm.box = "vvv"
dev.vm.network :public_network
dev.vm.network :forwarded_port, guest:3306, host: 10000
end
config.vm.define :dev2 do |dev|
dev.vm.network :forwarded_port, guest:3306, host: 10001
然後我們使用vagrant up 啟動,可以看到跑出來很多行資訊,注意到每行前面都有類似“dev1”“dev2”這樣的開頭,表示各自是哪一台機子。
ssh可以指定連到哪一台:
vagrant ssh dev1
vagrant ssh dev2