vagrant的一个很是重要的功能就是在你的同事之间分享你的box从而使你们的开发环境保持同步,打包[package]正是实现这一功能的关键所在。php
(写到这里我想到vagrant是否提供一种经过配置中心主机实现对其余虚拟主机进行软件更新的做用,这样就不用从新打包了,或者这是puppt的业务所在?)windows
vagrant package的命令很简单,不过有些地方官方文档并无说清楚,我在这里补充一下this
vagrant package -hUsage: vagrant package [options] [name]Options: --base NAME virtualbox程序里面的虚拟机的名称,不是box的名字也不是Vagrantfile里面的虚拟机名称.默认是打包当前目录下面的虚拟机。 --output NAME 要打包成的box名称,不会自动添加.box后缀,要手动加.默认值package.box --include FILE... 打包时包含的文件名,你能够把.box文件理解为一个压缩包 --vagrantfile FILE 打包时包含的Vagrantfile文件,原理和上面相似 -h, --help Print this help
演示:vagrant package –base virtualbox_vm_name –output newbox_name.boxspa
1.把这个newbox_name.box文件拷贝到你到小伙伴到机器上;
2.在机器上执行vagrant box add newbox_names newbox_name.box就能够把这个box添加到这台机器的box列表里面;
3.在须要搭建开发环境的目录下面执行vagrant init newbox_names,这样就初始化了一个虚拟机环境,而后执行vagrant up,你的小伙伴就能够获得一个和你彻底同样的开发环境了。
在初始化环境的时候须要注意的一点是:这个目录下面若是之前初始化过,那么请执行vagrant destroy命令把这个环境销毁掉,并删除Vagrantfile文件,或者在windows环境下直接手动删除.vagrant目录和Vagrantfile文件有相同的效果。不然vagrant init命令无效,当你vagant up的时候获得的是一个和之前彻底同样的环境。vagrant