天天看點

Vagrant虛拟化

什麼是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

繼續閱讀