总览
Vagrant是一款用于创建与配置轻量级,跨平台开发环境的工具
使用Vagrant搭建开发环境试用的情况:
- 项目需要在linux/Mac上跑,但是开发者使用的操作系统是Windows。当然也可以不通过Vagrant,自己搭建虚拟机或者Docker。
- 项目开发测试方便开发者的统一,环境便于与正式环境一致。让我本机运行没有问题成为往事
- 搭建项目环境比较麻烦,特别是更换系统之类,便于打包重新搭建环境
准备工作
下载VitrualBox和Vagrant VirtualBox下载 Vagrant官网 有相当多开源的封装好的box vagrantbox
安装VirtualBox
此处也是个坑,在win10下安装,也遇到不少麻烦。换了mac倒没有
安装Vagrant
没有什么可以写的
制作项目的box
先建立一个项目目录作为挂载box的目录
mkdir your_site && cd your_site
vagrant box add dev ~/your_box_name.box
vagrant init
修改相关配置
vim Vagrantfile
关于几点配置简要说明
第34行
config.vm.network "public_network"
使用共有ip访问虚拟机,虚拟机可以自动DHCP,团队的其他成员也可以访问,但是当连接网络放生变化换一个网络的时候出现ip变更不太方便,可以使用私有ip,如此以来,只有你的宿主主机才可以访问,团队其他成员,guest无法访问。配置文件的相关注释是#,只需要打开和关闭相对应的注释即可
第40行
config.vm.synced_folder "/Users/asd/ubuntu14.04/data", "/vagrant_data"
-
/Users/asd/ubuntu14.04/data 这个为本地的项目目录,这个目录会自动挂在到box环境中去。相当于把该文件夹共享出去。
-
/vagrant_data为虚拟开发环境中的挂载点。
第46行-50行
分配虚拟机的运行内存。一般的服务器1g运行内存足够,运行性能的瓶颈本身不在内存上。
文件修改完毕,开机初始化
vagrant up
登陆
vagrant ssh
可以愉快的使用vagrant
相关命令
开机
vagrant up
关机
vagrant halt
删除
vagrant box remove dev
vagrant global-status
vagrant destroy 0bfeba8
打包box
必须关闭虚拟机 一定要在box init的目录进行打包
vagrant package --output xxx.box --base xxx
--base 是指定要打包的虚拟机目录
--output 是指定要输出的box
vagrant package的命令很简单,不过有些地方官方文档并没有说清楚
vagrant package -h
Usage: 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