Vagrant的介绍

Vagrant是构建在虚拟化技术之上的虚拟机运行环境管理工具。通过Vagrant可以方便实现的对虚拟机的管理,包括建立和删除虚拟机、配置虚拟机运行参数、管理虚拟机运行状态、自动化配置和安装开发环境必须的各类软件、打包和分发虚拟机运行环境等。

Vagrant的运行需要依赖某项具体的虚拟化技术,比如VirtualBox, VMware, AWS等,同时一些配置脚本比如shell脚本、Chef或Puppet可以用来管理虚拟环境。

Vagrant的好处

如果你是开发人员,Vagrant可以将你的配置独立在一个可部署环境中,包括你所用到的工具(比如:编辑器、浏览器、调试器等),一旦你或者其他人创建了一个Vagrantfile,只需要使用命令vagrant up,这些东西已经安装配置好了。工作组的其他人员可以使用同样的配置创建开发环境,不管工作平台是Linux、Mac OS X或者Windows,所有工作人员可以在相同的开发环境中运行代码、以同样的办法解决相同的依赖和配置。告别“在我机子上工作正常”这种说法。

如果你是实施工程师,Vagrant为你的基础管理脚本的开发和测试提供一个可部署的环境以及统一的流程,你可以快速的展开测试,比如shell脚本、Chef cookbook,Puppet模块以及虚拟的使用,你可以使用相同的配置、相同的流程在云环境比如AWS、RackSpace测试脚本。

如果你是一个设计师,Vagrant会自动设置号WEB应用的一切环境,以便您能够专注于做自己最擅长的:设计。一旦开发人员配置Vagrant,你不必担心如何再次运行应用程序。也不用再麻烦其他开发人员来帮助你配置基础环境,你只需要检出代码、vagrant up并且开始设计。

Vagrant的安装

本文教程的虚拟机是基于VirtualBox的(VMWare也可以,但是需要破解),下面来介绍安装VirtualBox和Vagrant的安装。

1、VirtualBox的安装

下载地址:https://www.virtualbox.org/wiki/Downloads
历史版本:https://www.virtualbox.org/wiki/Download_Old_Builds_4_3_pre24

2、Vagrant的安装

下载地址:http://www.vagrantup.com/downloads

3、版本兼容性

VirtualBox:自版本4.3.12后启动虚拟机会存在各种问题,因此建议安装4.3.12版本。
Vagrant:从1.0.x可以直接升级到1.x版本,Vagrant向后兼容Vagrant1.0.x,但是1.1+版本不在支持1.0.x版本的插件,因此插件也要做相应升级。

4、其他安装建议

建议安装好之后将VirtualBox的虚拟机位置设置到其他盘,否则占用默认C盘空间较大,已安装的虚拟机需要移动到新的目录下,具体设置办法请见下图:

Vagrant启动

简单来说,使用以下两条命令就可以启动一个Vagrant环境了:

bash$ vagrant init hashicorp/precise32
$ vagrant up

通过上面两个命令,就可以在VirtualBox中启动并运行Ubuntu 12.04 LTS 32-bit了,可以使用命令vagrant ssh登录到这台虚拟机上,当完成一切操作之后,可以使用vagrant destroy命令来销毁它。

下面我们分步骤来介绍怎么配置并且启动一个基于VirtualBox虚拟机的Vagrant环境:

1、建立工程(Project)

开始任何一个项目需要一个名为Vagrantfile的文件来配置Vagrant,这个文件的作用有一下两个:

  • 标识Vagrant项目的根目录,后续的大部分Vagrant配置都与此目录有关。
  • 描述工程启动所需的虚拟机类型和资源,以及需要安装的软件和你的访问方式。

可以使用命令vagrant init来初始化项目目录,可以按照以下步骤操作

bash$ mkdir vagrant_project
$ cd vagrant_project
$ vagrant init

这样在当前目录下就会生成名为Vagrantfile的文件,当然也可以在已有的工程目录下执行vagrant init命令来初始化生成这个文件。

2、添加虚拟机(Boxes)

可以使用命令vagrant box add来添加虚拟机,例如要添加Ubuntu12.04,我们可以使用:

bash$ vagrant box add hashicorp/precise32

未完待续。。。

Vagrant搭建开发环境1--总体介绍相关推荐

  1. ecology9 后端开发环境搭建_利用Vagrant快速搭建开发环境

    Docker大家应该都了解吧,一个非常方便的技术,可以让我们随时随地部署应用.但是部署应用虽然方便了,开发环境的搭建还是那样的,要自己安装一大堆软件.那么有没有类似的工具可以方便我们呢?这就是本文要的 ...

  2. 《iOS 8开发指南(第2版)》——第1章,第1.3节工欲善其事,必先利其器——搭建开发环境...

    本节书摘来自异步社区<iOS 8开发指南(第2版)>一书中的第1章,第1.1节1.3 工欲善其事,必先利其器--搭建开发环境,作者 管蕾,更多章节内容可以访问云栖社区"异步社区& ...

  3. CRM客户关系管理系统开发第一讲——搭建开发环境

    这个小项目是我们学习完Spring,Hibernate,Struts2这三个框架后,为了加深对它们的理解所做的SSH项目,为CRM客户关系管理系统. CRM客户关系管理系统的概述 什么是CRM客户关系 ...

  4. PCL-1.8.1从源码搭建开发环境三(QHULL库的编译)

    原文首发于微信公众号「3D视觉工坊」:PCL-1.8.1从源码搭建开发环境三(QHULL库的编译) 首先,介绍一下QHull库. QHull是一个开源的程序软件,用来研究解决凸包问题,生成凸包形体.官 ...

  5. PCL-1.8.1从源码搭建开发环境二(FLANN库的编译)

    原文首发于微信公众号「3D视觉工坊」,PCL-1.8.1从源码搭建开发环境二(FLANN库的编译) 首先,快速近似最近邻搜索库FLANN-Fast Library for Approximate Ne ...

  6. Android移动APP开发笔记——最新版Cordova 5.3.1(PhoneGap)搭建开发环境

    引言 简单介绍一下Cordova的来历,Cordova的前身叫PhoneGap,自被Adobe收购后交由Apache管理,并将其核心功能开源改名为Cordova.它能让你使用HTML5轻松调用本地AP ...

  7. 手把手教你搭建开发环境之Java开发

    大家好呀,从今天开始,我们的手把手系列教程就正式开始啦. 如果你觉得本文对你有一些帮助,欢迎大家关注.点赞.分享给需要的小伙伴们,谢谢大家啦. 前言 Java虽然是一个比较老的语言,但到现在依然充满了 ...

  8. 使用Docker高效搭建开发环境

    女主宣言 Docker 作为轻量级的基于容器的解决方案,它对系统侵入性低,容易移植,天生就适合做复杂业务部署和开发环境搭建,今天给大家带来的是我司开发是如何使用 Docker 高效搭建开发环境的.本文 ...

  9. 深入浅出Docker(五):基于Fig搭建开发环境

    本文原创版权归 infoq 肖德时 所有,此处为技术收藏,如有再转,请于篇头保留原创作者及出处,以示尊重! 作者: 肖德时 原文: http://www.infoq.com/cn/articles/d ...

最新文章

  1. MATLAB实现批量处理图像图片的两种方法
  2. indigo egit
  3. 关于使用layui中的tree的一个坑
  4. 5天学习MYSQL数据库第一天剩余全部笔记(超级详细的mysql入门笔记适合新手反复看加深记忆)
  5. 栈的顺序存储及实现(二)
  6. SQL必知必会-使用游标
  7. java 企业号 临时素材_查看“获取临时素材文件”的源代码
  8. 饥荒一直服务器没有响应,饥荒总是启动服务器进不去 | 手游网游页游攻略大全...
  9. VS2010 正式版 破解方法详解
  10. SVN的目录结构,trunk、tag、branches
  11. 阿里云mysql导出表_mysql导出数据库表
  12. php qcloud sdk weapp_qcloud/
  13. mybatis原理分析(五)---参数处理
  14. Android 高仿微信支付键盘
  15. 最后一公里极速配送(一)
  16. 【学习笔记】计算机网络
  17. unknown类型的使用
  18. 英文词典中的那些词性缩写字母的原型
  19. sql server中的while循环语句
  20. 快手国际版Kwai测试海外电商直播,社交App的尽头是直播电商?

热门文章

  1. 【Data guard】Failover切换
  2. github可以刷星吗_GitHub 没有 star,该写进简历里吗?
  3. 暗能量什么样?爱因斯坦只“蒙”对了一半
  4. Git常见相关知识与命令
  5. sass import 小记
  6. 在ASP.NET中如何运行后台任务
  7. Redis入门系列数据类型及相关命令
  8. oracle之表空间(tablespace)、方案(schema)、段(segment)、区(extent)、块(block)
  9. Asp.Net学习-Cache高速缓存
  10. 3-6 字符和字符串处理