Vagrant
是一款用于建立与配置轻量级,跨平台开发环境的工具html
哪些状况下可能会须要使用Vagrant
来搭建开发环境:linux
项目自己须要在linux/Mac
上跑(好比Ruby项目),而开发者使用的是windows
(固然这种状况也能够不经过vagrant,本身搭建虚拟机)laravel
项目开发者使用的系统不一,但但愿统一开发环境git
搭建项目环境是一个较为麻烦的过程,新手可能须要花费较多时间,可是须要全部开发者快速投入开发工做shell
本身初始化一个box, 从零开始搭建环境ubuntu
团队其余人制做好了项目环境的box, 让你在项目中初始化segmentfault
box
是vagrant
中的一个概念,指的是一个环境。box
中包含了操做系统和项目运行所须要的其余环境,好比一个Ruby and Rails
项目封装好的box,多是Ubuntu系统+git+Ruby/Bundle+Rails+Nodejs+MySQL)。官方提供了一些box
供选择,能够在vagrant官网导航的Boxes
进入。windows
在vagrant官网导航进入Docs,能够找到命令的说明。这里列出一些我认为较经常使用的。浏览器
vagrant init {|box} # box如:ubuntu/trusty64,不添加的话则会用vagrant提供的基本box vagrant box add {box} # 也能够vagrant init后再添加想要的box vagrant up --provider virtualbox # 启动vagrant,设置虚拟机,不加--provider的话,会默认用virtualbox vagrant ssh # ssh链接到虚拟机,windows须要借助第三方SSH工具如XShell vagrant reload # 重启vagrant vagrant halt # 关闭vagrant vagrant provision # 在vagrant已启动的状况下,修改了Vagrantfile,加载新的设置 vagrant up --provision vagrant reload --provision vagrant destroy # 删除虚拟机
当运行vagrant init
命令后,会生成一个无后缀名的Vagrantfile文件,这个是vagrant的配置文件,启动vagrant的时候,会按这个文件的设置来启动,能够设置network, timeout, shared_fold等,还能够在这个文件里设置好项目运行环境的安装,配置的方式有SHELL, Chef Solo, Chef Aero, Docker
等,你能够用你熟悉的方式来设置,详细能够查看官网文档之provisioning。ssh
这个文件夹在vagrant up
后生成,放的是根据Vagrantfile的配置生成的相关环境文件,在第一次启动的时候可能须要稍微比较长的时间,由于是第一次生成这个文件,当再次启动的时候,须要的时候会明显下降。若是修改了Vagrantfile
的配置,在启动的时候可使用--provision
来使其加载新的配置。
VirtualBox
和Vagrant
box
的获取大概有几种方式,其一,团队其余成员分发的,其二,vagrant官网提供的官方版本,如ubuntu/trusty64(ubuntu14.04), laravel/homestead
或其余开发者上传的,如leopard/rwtrusty64(rails,ubuntu14.04)
,其三,本身制做好打包,固然也是能够依赖于官网提供的基础版本,再安装项目须要的环境,而后打包box
。
肯定好box
后,在项目下初始化而后启动:
vagrant init {box} vagrant up vagrant ssh # windows须要借助第三方工具如```XShell```
ssh链接后启动项目,在宿主机浏览器访问。
如果须要本身安装环境,有2种方式,其一,在ssh链接后手动进行安装。第二种方式,能够配置Vagrantfile
后从新启动,具体的配置方式,前面有提到过,vagrant提供了SHELL, Chef solo等方式,详细可查看官网文档
TODO: 记一下本身遇到的问题及找到的解决方法
使用vagrant
开发的步骤:
①初始化box
②启动虚拟机(vagrant up
)
③链接进入虚拟机系统(vagrant ssh
)
④启动项目
⑤最后在宿主机浏览器里访问虚拟机里的项目(实际上是虚拟机系统把项目访问权限开放给了宿主机).
能够看到,vagrant
在这其中的角色实际上是提供了一种方式,使得开发者可使用已经搭建好的项目环境,从而快速启动项目进行开发,而这种方式,就是经过分发box
,借助vagrant
在虚拟机中启动项目环境,而且把访问权限开放给宿主机,从而开发者能够在本身主机上经过浏览器访问项目,没必要再花费时间在搭建项目环境上。
使用vagrant
搭建项目环境的具体操做,其实理解了vagrant
在作什么,再来搭建环境就明朗不少了,根据本身的项目类型(PHP/Ruby/Python/Java
),找到对应的教程/文章,通读后进行实操便可.其实过程都是差很少的,除了项目须要的启动环境不同(好比Ruby项目须要bundle, PHP项目须要Composer)。
这里补充几点须要留意的:
注意先安装VirtualBox
,再安装Vagrant
VirtualBox
安装好后,像通常的软件,能够添加快捷图标到桌面;而vagrant
不是,能够在命令行键入vagrant -v
检测是否已安装
box
:能够在 https://atlas.hashicorp.com/boxes/search 找须要的box
vagrant
的全部配置信息其实都在Vagrantfile
文件里,这是一个没有后缀名的文件,是vagrant
的配置文件;当在项目下vagrant init
时,就会生成此文件,文件中已包含基本的配置信息,且每一项配置都有详细的注释说明,建议通读一遍,其余配置能够查看官网文档
VirtualBox下载
vagrant官网
官方vagrant box查询
使用Vagrant打造跨平台开发环境
使用Vagrant打造跨平台开发环境
Rails的vagrant搭建教程:
Using Vagrant for Rails Development
使用Vagrant部署Rails项目(上面那篇的翻译版)
使用Vagrant快速搭建rails开发环境