vagrant系列(3):搭建跨平台的项目开发环境

需求情况

哪些情况下可能会需要使用Vagrant来搭建开发环境:

  • 项目本身需要在Linux/MacOS上跑(比如Ruby项目),而开发者使用的是Windows (当然这种情况也可以不通过vagrant,自己搭建虚拟机)

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

  • 搭建项目环境是一个较为麻烦的过程,新手可能需要花费较多时间,但是需要所有开发者快速投入开发工作

使用场景

  • 自己初始化一个box,从零开始搭建环境

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

box是什么

box是Vagrant中的一个概念,其包含了操作系统和项目运行的依赖环境,比如一个Ruby and Rails项目封装好的box,可能是Ubuntu系统+git+Ruby/Bundle+Rails+Nodejs+MySQL。

常用命令

从Vagrant官网进入Docs,可以找到命令的说明。这里列出我认为常用的一些,可以在不进入虚拟机的情况下,使用Vagrant进行操作。

# vagrant box add VM_name /path/to/box    //本地导入box
# vagrant box list          //查看本地box列表
# vagrant box remove box_name    //移除box列表中的某个box
# vagrant init VM_name    //初始化虚拟机,在当前目录生成了Vagrantfile
# vagrant up --provider virtualbox   

//启动虚拟机,不加--provider的话,会默认用virtualbox
# vagrant ssh  VM_name          //ssh连接到虚拟机,也可借助第三方SSH工具
# vagrant reload VM_name       //重启虚拟机
# vagrant halt VM_name         //关闭虚拟机
# vagrant up VM_name           // 启动虚拟机
# vagrant provision          

//在虚拟机已启动的情况下,修改了Vagrantfile,加载新的设置
# vagrant reload VM_name --provision    //修改了Vagrantfile,重启虚拟机,以加载新的设置
# vagrant destroy VM_name   // 删除虚拟机
# vagrant global-status     // 查看vagrant的全局环境信息
# vagrant global-status --prune  ID    // 删除vagrant的某个环境

Vagrantfile

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

.vagrant文件夹

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

获取box

box的获取大概有三种方式:其一,团队其他成员分发;其二,vagrant官网提供的官方版本,如ubuntu/trusty64(ubuntu14.04),laravel/homestead 或其他开发者上传的,如leopard/rwtrusty64(rails,ubuntu14.04);其三,自己打包制作,当然是可依赖于官网提供的基础版本,再安装项目的依赖环境,然后打包box。

初始化box,启动项目

确定好box后,在项目下初始化然后启动:

# vagrant box add VM_name /path/to/box 
# vagrant init VM_name
# vagrant up VM_name
# vagrant ssh VM_name

ssh连接后启动项目,在宿主机浏览器访问。

若是需要自己安装环境,有2种方式,其一,在ssh连接后手动进行安装。第二种方式,可以配置Vagrantfile后重新启动

我的小结

使用vagrant开发的步骤:
1. 本地导入box
2. 初始化box
3. 启动虚拟机(vagrant up)
4. 连接进入虚拟机系统(vagrant ssh)
5. 启动项目
6. 最后在宿主机浏览器里访问虚拟机里的项目(其实是虚拟机系统把项目访问权限开放给了宿主机)

可以看到,vagrant在这其中的角色其实是提供了一种方式,使得开发者可以使用已经搭建好的项目环境,从而快速启动项目进行开发,而这种方式,就是通过分发box,借助vagrant在虚拟机中启动项目环境,并且把访问权限开放给宿主机,从而开发者可以在自己主机上通过浏览器访问项目,不必再花费时间在搭建项目环境上。

使用vagrant搭建项目环境的具体操作,其实理解了vagrant在做什么,再来搭建环境就明朗很多了,根据自己的项目类型(PHP/Ruby/Python/Java),找到对应的教程/文章,通读后进行实操即可。

Tips

  • 注意先安装VirtualBox,再安装Vagrant。

  • VirtualBox安装好后,像一般的软件,可以添加快捷图标到桌面;而vagrant不是,可以在命令行键入vagrant -v检测是否已安装。

  • box:可以在 https://atlas.hashicorp.com/boxes/search 找需要的box。

  • vagrant的所有配置信息其实都在Vagrantfile文件里,这是一个没有后缀名的文件,是vagrant的配置文件。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值