Vagrant搭建项目跨平台开发环境的解读

Vagrant是一款用于建立与配置轻量级,跨平台开发环境的工具html

需求状况

哪些状况下可能会须要使用Vagrant来搭建开发环境:linux

  • 项目自己须要在linux/Mac上跑(好比Ruby项目),而开发者使用的是windows (固然这种状况也能够不经过vagrant,本身搭建虚拟机)laravel

  • 项目开发者使用的系统不一,但但愿统一开发环境git

  • 搭建项目环境是一个较为麻烦的过程,新手可能须要花费较多时间,可是须要全部开发者快速投入开发工做shell

使用场景

  • 本身初始化一个box, 从零开始搭建环境ubuntu

  • 团队其余人制做好了项目环境的box, 让你在项目中初始化segmentfault

box是什么

boxvagrant中的一个概念,指的是一个环境。box中包含了操做系统和项目运行所须要的其余环境,好比一个Ruby and Rails项目封装好的box,多是Ubuntu系统+git+Ruby/Bundle+Rails+Nodejs+MySQL)。官方提供了一些box供选择,能够在vagrant官网导航的Boxes进入。windows

vagrant的经常使用命令

在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 # 删除虚拟机

Vagrantfile

当运行vagrant init命令后,会生成一个无后缀名的Vagrantfile文件,这个是vagrant的配置文件,启动vagrant的时候,会按这个文件的设置来启动,能够设置network, timeout, shared_fold等,还能够在这个文件里设置好项目运行环境的安装,配置的方式有SHELL, Chef Solo, Chef Aero, Docker等,你能够用你熟悉的方式来设置,详细能够查看官网文档之provisioningssh

.vagrant文件夹

这个文件夹在vagrant up后生成,放的是根据Vagrantfile的配置生成的相关环境文件,在第一次启动的时候可能须要稍微比较长的时间,由于是第一次生成这个文件,当再次启动的时候,须要的时候会明显下降。若是修改了Vagrantfile的配置,在启动的时候可使用--provision来使其加载新的配置。

具体操做

准备工做:安装VirtualBoxVagrant

VirtualBox下载
vagrant官网

肯定box

box的获取大概有几种方式,其一,团队其余成员分发的,其二,vagrant官网提供的官方版本,如ubuntu/trusty64(ubuntu14.04), laravel/homestead 或其余开发者上传的,如leopard/rwtrusty64(rails,ubuntu14.04),其三,本身制做好打包,固然也是能够依赖于官网提供的基础版本,再安装项目须要的环境,而后打包box

初始化box启动项目

肯定好box后,在项目下初始化而后启动:

vagrant init {box}
vagrant up
vagrant ssh # windows须要借助第三方工具如```XShell```

ssh链接后启动项目,在宿主机浏览器访问。
如果须要本身安装环境,有2种方式,其一,在ssh链接后手动进行安装。第二种方式,能够配置Vagrantfile后从新启动,具体的配置方式,前面有提到过,vagrant提供了SHELL, Chef solo等方式,详细可查看官网文档

bug list

TODO: 记一下本身遇到的问题及找到的解决方法

个人小结

使用vagrant开发的步骤:
①初始化box
②启动虚拟机(vagrant up)
③链接进入虚拟机系统(vagrant ssh
④启动项目
⑤最后在宿主机浏览器里访问虚拟机里的项目(实际上是虚拟机系统把项目访问权限开放给了宿主机).
能够看到,vagrant在这其中的角色实际上是提供了一种方式,使得开发者可使用已经搭建好的项目环境,从而快速启动项目进行开发,而这种方式,就是经过分发box,借助vagrant在虚拟机中启动项目环境,而且把访问权限开放给宿主机,从而开发者能够在本身主机上经过浏览器访问项目,没必要再花费时间在搭建项目环境上。
使用vagrant搭建项目环境的具体操做,其实理解了vagrant在作什么,再来搭建环境就明朗不少了,根据本身的项目类型(PHP/Ruby/Python/Java),找到对应的教程/文章,通读后进行实操便可.其实过程都是差很少的,除了项目须要的启动环境不同(好比Ruby项目须要bundle, PHP项目须要Composer)。

Tips

这里补充几点须要留意的:

  • 注意先安装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打造开发环境教程连接

使用Vagrant打造跨平台开发环境
Rails的vagrant搭建教程:
Using Vagrant for Rails Development
使用Vagrant部署Rails项目(上面那篇的翻译版)
使用Vagrant快速搭建rails开发环境

相关文章
相关标签/搜索