Vagrant:程序员的VirtualBox(一)

前言

VirtualBox相信很多人都用过,它是一个虚拟化软件,用来在我们的电脑上虚拟出一电脑来,和 VMware Workstation, kvm, xen等是一类东西(专业点的说法叫Hypervisor),不过它提供易用的界面(VMware也有),对各平台的支持(Linux, Win, Mac),又非常的轻量,最关键的free呀,所以使用非常广泛。

我们平时使用VirtualBox最常见的情况就是,自己电脑是个Win,想跑个Linux,或者电脑是个Linux,要跑win上网银啊,QQ什么的 win only之类的,虽然有wine这样的东东,可以在Linux下跑win下的软件,但有个win系统稳定性不更好么,并且现在的电脑配置,完全不用担心虚拟机消耗内存CPU什么的,你不用那才是浪费呢,何况VirtualBox这么轻量。个人体验,弄个xp虚拟机跑QQ资源消耗比chrome或者ff登webQQ要少,可恶的用了多少js。。。

对天天码代码的苦逼程序员来说,VirtualBox就不能是简简单单的挂个Q这么用了->_->

程序员搞最多的就是码代码了,可能做很多个项目,公司里搞java的,php的,自己回家再玩个python什么的,想体验下新版本的mongodb或者nginx,Emacs或者vim的配置啦,保不准哪个项目前个版本的数据库是mysql,下个版本用了postgresql, 这么多东西全都搞在一起,装在一个电脑上,肯定会被这各种配置环境搞的晕晕的,烦不胜烦。

怎么办呢,最好是每个项目都有一个干净的开发环境,只为这个项目,可是我们不可能为每一个项目配一个电脑吧,有了,虚拟机,给每一个项目配一个虚拟机,开发A的时候就启A的虚拟机,这样各个开发环境互相独立,干干净净。还有一个问题,我们的项目有多个开发人员,如何保障大家的开发环境都一样呢,总不能每个人都一个个点击鼠标,填写配置参数,建好后上支一个个软件安装吧,这太麻烦了,太不geek了。我们想要的是,环境只配置一遍,然后可以把这个环境打包deliver给别人,别人拿到后,直接启起来就可以用。那有没有这样的东西呢,肯定是有的,Vagrant,它就是用来干这个的。

下面主角登场,来看看Vagrant是多么适合程序员。

介绍篇

“Vagrant uses Oracle’s VirtualBox to build configurable, lightweight, and portable virtual machines dynamically.”

Vagrant 是 Mitchell Hashimoto 用 ruby 写的,去年11月份,Mitchell 专门成立了一个公司 HashiCorp 来更好的开发 Vagrant, 并且申明,Vagrant会一直开源。Announcing HashiCorp

感兴趣的还可以看下作者在就HashiCorp成立在Hacker News上发的一个topic http://news.ycombinator.com/item?id=4843508

安装篇

确保安装了VirtualBox,fedora 用户可以参考本人以前写的 Fedora 15 安装 virtualbox 及 Extension Pack

Vagrant有2种安装方式,一种是通过平台的安装包,一种是通过RubyGems,官方推荐首选安装包的方式安装

Vagrant官方发布了各种平台的安装包,可以去下载

点开一个版本后会看到有 mac, win,以及各常用的Linux distro(debain, arch, redhat),下载下来安装就好了,就像装一个普通软件一样。

安装包里已经打包了ruby,所以不用事先安装ruby环境。

如果没有发现自己系统的安装包的话,请采用RubyGems方式安装

1) 先安装Ruby和RubyGems,请自行google安装

2) 安装vagrant

gem install vagrant

安装完成之后可以使用vagrant -v命令来查看vagrant的版本号

使用篇

安装后好,我们就可以来玩vagrant了 ^_^

先建一个文件夹,然后进到文件夹里

mkdir vagrant-test && cd vagrant-test

按照官网教程,敲下面命令,第一条要从网上下载大约260M的box文件,所以会等一会,视网速情况了。

[bash]

$ vagrant box add lucid32 http://files.vagrantup.com/lucid32.box

$ vagrant init lucid32

$ vagrant up

[/bash]

这样之后,就启动一个虚拟机了,系统是ubuntu lucid 32位,可以在VirtualBox的控制台界面看到多了一个,如下图

vagrant vm in VirtualBox

但是不能通过控制台访问,要想进去的话,输入

vagrant ssh

然后就进虚拟机里面了,可以各种操作了

关闭虚拟机

vagrant halt

删除虚拟机

vagrant destroy

孤独的北山羊 /
Published under (CC) BY-NC-SA in categories GNU/Linux  tagged with vagrant  virtualbox