使用vagrant的意义在哪

在了解docker时知道有vagrant这么个工具,传说是可以很方便的管理虚拟机,就跟着几篇文章试用了一下,为什么我感觉不到它方便在哪。

大部分是说用来构建开发环境,可以根据需要定制自己的vbox。我想问的是这个开发环境是在自己工作电脑的上安装virtualbox和vagrant吗,不会吧,多开几个电脑负重会导致用起来卡。那假如说是安装在独立的物理服务器上比如CentOS,在上面通过vagrant启动多个虚拟机,各个都是独立的完整服务器,这与直接运行virtualbox图形工具有什么区别呢,我也可以通过导入导出vbox模板,似乎是用vagrant命令行不用GUI看起来酷一点,没发现其它什么好处。

我公司vSphere和Hyper-V都有用,图形化操作很方便,如果切换到vagrant我感觉不到像网上鼓吹的那么好用。也许是我理解的不对,谁能帮我解决疑惑

阅读 14.8k
4 个回答

vagrant 的主要意义是让所有开发人员都使用和线上服务器一样的环境,本质上和你新建一个虚拟机,然后发给所有的同事是一样的,vagrant 只是简单地帮你自动化这个过程,比如 vagrant 可以通过一个配置文件来生成一个虚拟机,在本地和虚拟机之间共享文件,把一个虚拟机分享给别人等等。

一般情况下我们是用 Command-Line 来控制 vagrant 的,通过 Command-Line 控制的好处就是可以自动化、脚本化。我们一般也不会在虚拟机中安装桌面环境,vagrant 默认给虚拟机分配 512M 的内存,大部分情况下够用了,一般现在电脑的内存都 8G 起了,也不会太多地影响主机的性能。

本质上 vagrant 和你使用其他的虚拟化技术没什么区别,但值得一提的是 vagrant 和 VirtualBox 都是免费且开源,支持大部分主流平台的,所以有很多人选择 vagrant.

一个配置文件一个box就都搞定了,如果要更改vm环境,比如原来没有安装redis,通过配置文件直接从新provision,再up就搞定了,不用手工安装,当然国内的网络环境实现这个自动化,执行速度可能是非常的慢。包括设置共享目录,ip映射,端口映射,环境变量设置都可以通过vagrant的配置文件设置,觉得还是相当方便的,毕竟不是每个人都是系统管理员,也不用管具体box的操作系统是什么,只要按照配置去配就行了。

不用图形界面用命令行的好处我觉得就不用多说了

现在我用laravel,laravel自己用vagrant封装了一个homestead工具,还附带一些自己的命令行工具,比以前配置一个环境要舒服的多了,比使用vagrant更简单,连配置基本都不用管了。

还有现在15寸mac book pro的标配已经16g内存了,同时启几个vm也不是什么问题。。

As an engineer, everything should be code-ize and console-ize

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
宣传栏