1. 简介
Vagrant是一个基于Ruby的工具,用于创建和部署虚拟化开发环境。它 使用Oracle的开源VirtualBox虚拟化系统,使用 Chef创建自动化虚拟环境。
我们可以通过 Vagrant 封装一个 Linux 的开发环境,分发给团队成员。成员可以在自己喜欢的桌面系统(Mac/Windows/Linux)上开发程序,代码却能统一在封装好的环境里运行,非常霸气。
2. 安装
2.1 安装 VirtualBox
sudo apt-get install virtualbox-5.0
2.2 安装 Vagrant
下载地址:http://downloads.vagrantup.com/ 根据提示一步步安装。
sudo apt-get install vagrant
2.3 下载官方封装好的基础镜像:
如果你要其他系统的镜像,可以来这里下载
3. 相关操作
3.1 添加镜像
如果下载镜像的存放路径为 ~/path/to/image.box
,那么添加 box
的方法为:
vagrant box add <BOX_NAME> ~/path/to/image.box
3.2 初始化开发环境
cd ~/path/to/dev_dir
vagrant init <BOX_NAME> #切换目录
vagrant up #初始化
接着配置环境参数。
vagrant ssh
cd /vagrant
~/path/to/dev_dir
目录对应虚拟机中的 /vagrant
3.3 其他设置
Vagrant 初始化成功后,会在初始化的目录里生成一个 Vagrantfile
的配置文件,可以修改配置文件进行个性化的定制。
Vagrant 默认是使用端口映射方式将虚拟机的端口映射本地从而实现类似 http://localhost:80
这种访问方式。这种方式比较麻烦,新开和修改端口的时候都得编辑。相比较而言,host-only 模式显得方便多了。打开 Vagrantfile,将下面这行的注释去掉(移除#)并保存:
config.vm.network :private_network, ip: "192.168.33.10"
重启虚拟机,这样我们就能用 192.168.33.10
访问这台机器了,你可以把 IP 改成其他地址,只要不产生冲突就行。
3.4 打包
vagrant package
4. 常用命令
vagrant init # 初始化
vagrant up # 启动虚拟机
vagrant halt # 关闭虚拟机
vagrant reload # 重启虚拟机
vagrant ssh # SSH 至虚拟机
vagrant status # 查看虚拟机运行状态
vagrant destroy # 销毁当前虚拟机
5. 注意事项
使用 Apache/Nginx 时会出现诸如图片修改后但页面刷新仍然是旧文件的情况,是由于静态文件缓存造成的。需要对虚拟机里的 Apache/Nginx 配置文件进行修改:
# Apache 配置添加:
EnableSendfile off
# Nginx 配置添加:
sendfile off;