天天看点

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

继续阅读