Vagrant是一个基于Ruby的工具,用于创建和部署虚拟化开发环境。

详细操作步骤:

工具及环境介绍:

1、安装VirtualBox

下载地址:https://www.virtualbox.org/wiki/Downloads

VirtualBox 开源免费的,虽然 Vagrant 也支持 VMware,不过 VMware 是收费的,对应的 Vagrant 版本也是收费的

2、安装vagrant

    下载地址:http://downloads.vagrantup.com/ 根据提示一步步安装。

3、下载box

    下载官方封装好的基础镜像:

Ubuntu precise 32 VirtualBox http://files.vagrantup.com/precise32.box

Ubuntu precise 64 VirtualBox http://files.vagrantup.com/precise64.box

如果你要其他系统的镜像,可以来这里下载:http://www.vagrantbox.es/

注:vagrant使用该镜像来快速克隆出虚拟机

4、安装xshell

5、正式开始进行操作~

  • 新建一个工作目录

D盘的 D:\Myvagrant, cmd进入到此目录

  • 添加镜像到vagrant

假设我们上面下载的镜像box放在 D:\Myvagrant\box\precise64.box 路径下

Note: 导入box的默认指令 vagrant box add name(给box自定义一个名) path

导入box: vagrant box add mybox ./box/precise64.box

注:mybox 是我们给这个镜像命的一个名字,在配置文件中会vagrantfile会用到此名字,

如:config.vm.box = "mybox" ,这里的名字一定要对,否则无法启动

可以通过命令: vagrant box list 查看我们添加的box

  • 初始化该目录

初始化:vagrant init mybox 或者 vagrant init

初始化后,就会生成一个Vagrantfile 的配置文件,和一个 .vagrant的隐藏目录

  • 修改Vagrantfile配置文件

config.vm.box = "mybox"

  • 启动:vagarnt up ,就可以了,

注意:如果不报错说明就是启动成功了,如果有错误,很大的原因可能是本机有开启虚拟化

技术,此时重启电脑,按F2或者其他的键进入bios设置,找到virtual相关字样开启即可。

  • 启动后使用xshell链接测试

ssh -p2222 vagrant@127.0.0.1

连接账号:vagrant

连接密码:vagrant

su到root下密码:vagrant

  • 常用命令

vagrant init # 初始化

vagrant up [vm_name] # 启动虚拟机 , 虚拟机名是可选项

vagrant halt # 关闭虚拟机

vagrant reload # 重启虚拟机

vagrant ssh # SSH 至虚拟机

vagrant status # 查看虚拟机运行状态

vagrant suspend #暂停虚拟机

vagrant resume #恢复虚拟机 (与suspend 对应)

vagrant destroy # 销毁当前虚拟机

vagrant box list #列出当前导入的box

vagrant box remove [name] #移除box

vagrant box add [boxpath] # 给vagrant导入box

vagrant global-status #查看已创建的所有虚拟机

通过命令:vagrant -h 可以看见命令

注:在vagrant的项目目录下,可以通过命令: vagrant ssh ,得到当前vagrant的ssh信息

  • 分发打包

当你配置好开发环境后,退出并关闭虚拟机。在终端里对开发环境进行打包:

通过命令:vagrant package --output NAME --vagrantfile FILE打包

可选参数:

--output : (可选) 设置通过NAME 来指定输出的文件名

--vagrantfile FILE : (可选)可以将Vagrantfile 直接封装进box中

打包完成后会在当前目录生成一个 package.box 的文件,将这个文件传给其他用户,其他用户只要添加这个 box 并用其初始化自己的开发目录就能得到一个一模一样的开发环境了。

6、其他配置

Vagrant 默认是使用端口映射方式将虚拟机的端口映射本地从而实现类似 http://localhost:80 这

种访问方式,这种方式比较麻烦,新开和修改端口的时候都得编辑。相比较而言,host-only 模式

显得方便多了。打开Vagrantfile,将下面这行的注释去掉(移除 #)并保存:

config.vm.network :private_network, ip: "192.168.33.10"

重启虚拟机,这样我们就能用 192.168.33.10 访问这台机器了,你可以把 IP 改成其他地址,只要

不产生冲突就行。

7、注意事项

使用 Apache/Nginx 时会出现诸如图片修改后但页面刷新仍然是旧文件的情况,是由于静态文件缓存造成的。需要对虚拟机里的 Apache/Nginx 配置文件进行修改:

配置多台虚拟机

  • 修改Vagrantfile配置文件,该文件管控着虚拟机的运行

    修改后的文档:启用了四个虚拟机,内存均为256M

  • 开启虚拟机,这里你可以完全开启,也可以只开启一台

PS: 第一次开启的时候,建议一台一台的开启,这样的话方便记录ssh连接端口号(个人偏好使用xshell)

    

  • 打包

    关闭当前机器,然后打包(我这里为haproxy这台机器安装了epel源)

   

   

使用感受:

    搭建了一个haproxy + tomcat的环境,三台机器全开,占用系统资源也不是很大,跑起来绝对没问题,也挺流畅~

参考文档:

斌哥的网站:http://opslinux.com/shi-yong-vagrantda-zao-ni-de-xu-ni-huan-jing.html

爽神的网站:http://www.iamle.com/archives/1684.html

Vagrantfile借用站点:http://blog.sina.com.cn/s/blog_804327560101eiyk.html

官方站点:http://docs.vagrantup.com/v2/

03-24 23:54