当开发的项目越来越多时,系统间各种软件不同版本、各种库的依赖关系不仅会让系统臃肿变慢,更会使维护成本越来越高,遇到需要重装系统的时候更是棘手。 使用Vagrant不仅可以隔离项目间的依赖关系,让系统更干净,还可以瞬间搭建一套项目环境。

Vagrant使用Vagrantfile对服务器进行配置,同时将项目源文件放在本地系统中共享给虚拟机,使用虚拟机中隔离的环境来运行项目。

来自Wiki上的介绍:

Vagrant是一款用于构建及配置虚拟开发环境的软件,基于Ruby,主要以命令行的方式运行。 主要使用Oracle的开源VirtualBox虚拟化系统,与Chef,Salt,Puppet等环境配置管理软件搭配使用, 可以实行快速虚拟开发环境的构建。 早期以VirtualBox为对象,1.1以后的版本中开始对应VMware等虚拟化软件,包括Amazon EC2之类服务器环境的对应。

宿主系统以OSX为例,除了下载安装外,还可以通过brew-cask来安装:

brew tap caskroom/cask
brew install brew-cask
brew cask install virtualbox
brew cask install vagrant
brew cask install vagrant-manager

新建一个vagrant环境并初始化:

mkdir -p ~/workspace/vagrant/rordev
cd ~/workspace/vagrant/rordev
vagrant init
# 编辑生成的配置文件
vim Vagrantfile

为环境指定一个box(可以理解为一个环境模块或系统镜像文件,下载boxes的网站在文末提供):

config.vm.box = 'ubuntu/trusty64'

使用host-only方式访问虚拟环境, 去掉下面下面这行配置的注释:

config.vm.network "private_network", ip: "192.168.33.11"

OSX和Linux用户推荐使用NFS同步共享文件:

config.vm.synced_folder "/Users/bindiry/workspace/vagrant/rordev", "/home/bindiry/workspace/rordev", type: "nfs"

关于系统中环境的搭建,这里就不再记录。

手动下载box

当用上面的方法在up时下载官方box很慢时,可以选择手动使用下载工具把box下载到本地,然后将box添加到本地(当然这个方法也适用于自己打包的box)

vagrant box add rordev ~/Downloads/ubuntu1404.box
cd ~/workspace/vagrant/rordev
vagrant init rordev

常用命令

$ vagrant init  # 初始化环境
$ vagrant up  # 启动环境
$ vagrant halt  # 关闭环境
$ vagrant reload  # 重启环境
$ vagrant package # 打包当前环境(将生成一个box文件)
$ vagrant ssh  # 使用SSH连接到环境系统
$ vagrant status  # 查看环境状态
$ vagrant destroy  # 删除当前环境,此操作危险

相关