Vagrant是一个基于 Ruby 的工具,用于创建和部署虚拟化开发环境。它使用 Oracle 的开源VirtualBox虚拟化系统。用自己的理解就是自己搭建好的环境可以用这个部署打包分发。Vagrant 在快速搭建开发环境方面是很赞的,试想一个团队中,大家开发同一个东西,以前每个人都要自己搭建一套开发环境 ,有了 Vagrant,你只需要搭建一份,然后分发给所有团队成员,这样大家都立刻就有完全相同的开发环境了,即便有成员在 Windows 下,也可以方便的使用 Linux 环境开发。如果团队中来了新人,也不需要手把手教他怎么搭建开发环境,给他丢一个 Box 就好了,只要他掌握了 Vagrant 的使用方法,立刻就可以融入到开发中来,而不需要费心去安装复杂的环境。
从 Vagrant 官网下载最新的 Vagrant 和对应的 VirtualBox 安装后,新建一个文件夹用来配置 Vagrant
测试安装一个ubuntu的precise32版本
vagrant init precise32 ..\boxes\precise32.box会在该目录下生成一个配置文件Vagrantfile,然后可以配置该文件
Vagrant 中配置端口转发非常方便
Vagrant.configure("2") do |config| # other config here config.vm.network :forwarded_port, guest: 80, host: 8080 end
上面的配置会将 Vagrant 中的 80 端口和你本机的 8080 端口建立转发关系,这样你在本机访问 http://localhost:8080 就相当于访问 Vagrant 中的 http://localhost:80 了。
使用 Vagrant 有一个非常重要的一步就是共享文件夹(得益于强大的 VirtualBox)
在Vagrantfile中设置
config.vm.synced_folder "E:/Blog", "/home/vagrant/Blog"
其中第一个参数E:/Blog为本机上需要共享的文件夹路径,第二个参数为 Vagrant 虚拟机中的映射路径,注意第二个参数需要 使用绝对路径,如/home/vagrant/Blog
执行vagrant up就可以下载镜像了 如果你vagrant up后又修改了 Vagrantfile,要使之生效,需要执行vagrant reload
运行VirtualBox里的Precise32,用户名和密码都是vagrant
使用类似 putty 的 ssh 客户端来访问 vagrant 来进行开发了,这里极力推荐 Chrome 扩展Secure Shell。或者git bash都可以。
ssh vagrant@127.0.0.1 -p 2222
下面说说部署mesos集群的虚拟环境
先装插件:
vagrant plugin install vagrant-omnibus vagrant-berkshelf vagrant-hosts vagrant-cachier vagrant-aws
前面老报装不上的问题,原因是网络,加上vpn就好了。
然后就可以用git下mesos环境的配置文件了,
git clone https://github.com/everpeace/vagrant-mesos.git
进入multinode目录,运行
vagrant up
至此就ok了