来认识下大名鼎鼎的vagrant

最近做部署的时候,老大推荐了一个特别好用的工具Vagrant,一个用于配置和管理虚拟软件开发环境的开源软件, 官方GitHub库vagrant

试了下,很赞,来认识一下vagrant。

「以下均以OS X为例,Window类似。」

准备

vagrant需要依赖于虚拟机,虚拟机常见的有virtual box 和 VMWare,官网上推出了vagrant + vmware 付费版,但其默认是virtual box,所以我们选择virtual box : P

  • 装virtual box

    官网, 选择对应的安装包,点击下载:

    下载好后,安装即可。

  • 装Vagrant

    戳这里download vagrant,下载对应的安装包:

    下载好后,安装即可。

开始

  • 创建 Vagrantfile 文件

    终端输入:

    mkdir vagrant_started
    cd vagrant_started
    vagrant init
    

    在vagrant_started目录下,会生成一个Vagrantfile文件,vi Vagrantfile打开看一下:

    可以看到里面的box,你可以理解成是镜像,是”base”。

  • 添加box

    终端输入vagrant box add box'name来添加box,比如添加ubuntu/trusty64:

    vagrant box add ubuntu/trusty64
    

    HashiCorp’s Vagrant Cloud box catalog 列出了很多box,随取随用,很方便。

    添加box会有点慢,静等它添加完成,然后修改一下Vagrantfile, 把base改成ubuntu/trusty64

​ 也可以指定版本,使用config.vm.box_version = "X.X.X" , 其中x.x.x是版本号。

当然上面的这两步【创建 Vagrantfile 文件,添加box 】也可以合并成一步:

 **终端输入:`vagrant init ubuntu/trusty64` 。** 【不要问为什么不早说,多敲点代码就当运动了……】
  • 开始启用吧

    终端输入vagrant up, 启用ubuntu,再次输入vagrant ssh, 进入ubuntu虚拟环境,然后就可以好好玩了!退出使用exit

  • 文件同步【这个最酷啦!】

    如果你按照官方文档的说明去做文件同步,是这样的:

    但是这里有个问题,输入ls /vagrant时,显示没有这个文件目录,那就新建个mkdir vagrant,当然里面是空的,终端输入:

    mkdir vagrant && cd vagrant
    vim foo
    exit
    

    退出后,在主机输入:ls, 并没有发现刚刚新建的foo文件,so , where is synced file?

    这里有一步设置没有完成,详见:default virtualbox synced folder doesn’t mount

    解决方法也很简单:

    在Vagrantfile中,找到config.vm.synced_folder:

    修改成: config.vm.synced_folder “.”, “/vagrant”, type: “virtualbox”

    再试一下,会发现文件同步成功!

  • 删除VM

    想要删除VM时,使用vagrant destroy即可。

​ OK,That‘s all.

​ 有关provision, network等部分的玩法,可查阅vagrant的getting up

参考

Introduction to Vagrant

结语

Google下“Vagrant的使用”,就会看到很多人写过Vagrant方面的文章,可以参考。

不过纸上得来终觉浅,自己动手去做会觉得很赞的,enjoy :P