Vagrant

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;

参考文章

使用 Vagrant 打造跨平台开发环境

发表评论

电子邮件地址不会被公开。 必填项已用*标注