Vagrant使用【1】

来源:互联网 发布:淘宝小号无忧 编辑:程序博客网 时间:2024/05/17 09:35
前言:某天和同事聊天,聊到自己对Windows系统开发环境步署的问题很困扰。为什么呢?因为自己使用的是双系统:使用Linux系统的时候,常常需要使用Google查找资料,但是没有找到登录VPN的方法;使用Windows系统的话,很多开发环境步署管理太浪费时间了。同事推荐了解下Vagrant,趁着周末,花了大半天了解了下。

Vagrant是何方神圣?

官网的介绍是:Create and configure lightweight, reproducible, and portable development environments.

有四个关键字,lightweight、reproducible、portable以及development environments。
lightweight:以自己的使用经验来看,Vagrant能够做到轻量级的原因与其去除虚拟机图形化界面有关。如果直接使用Virutalbox开启虚拟电脑,基本上使用的是图形化界面,内存分配容量基本大于1G。但是,通过Vagrant开启的Virutalbox的虚拟电脑默认是512M。换句话说,原来开1个虚拟电脑的内存,现在可以开启两个Vagrant虚拟电脑(或者说Vagrant box)。
reproducible:这个可再生特性必须要再加上快速两个字。因为不使用Vagrant也能够以可再生的方式布署多套虚拟电脑环境,但是手工方式创建Vagrant一系列的选项以及虚拟电脑包管理,个把小时是解决不了的。但是Vagrant的provisioning特性理论上能够解决这个问题,为什么说是理论上呢?因为理论上,包管理可以通过一系列脚本来处理,Vagrant只需要管理调用这些脚本就可以,但是呢,自己在Windows使用过程中,发现直接调用Shell脚本是无法达到包管理的(这个需要再研究下,TODO)。
portable:在完成一台电脑的虚拟环境布署后,如何能够在其他机器上快速步署呢?这个Portable有些类似于绿色软件,只要打个包就可以到另外电脑再次布署了。
development environments:对于开发而言,环境不一致的问题,可能会让人头大的。

Vagrant安装

官方文档中安装可通过以下命令完成:
  1. mkdir vagrant_getting_started
  2. cd vagrant_getting_started
  3. vagrant init hashicorp/precise64
  4. vagrant up
  5. vagrant ssh
说明:可以描述为安装Linux镜像,启动,SSH登录

Vagrant安装问题

1. 虚拟机软件问题
我使用的是开源虚拟机软件VirtualBox。在安装完Virtualbox后,vagrant竟然没有识别出VirtualBox,直接从官网龟速下载VirtualBox,受不了啊!!!在尝试设置PATH无效后,Google找到:
”sets the VBOX_INSTALL_PATH or VBOX_MSI_INSTALL_PATH environment variable which is what Vagrant uses to look it up“,直接设置VBOX_INSTALL_PATH后,终于识别出默认的Virtualbox了。

2. hashicorp/precise64
这个版本是hashicorp官方推荐的Box,但是下载完成后自己发现,竟然没有Vim以及其他很多常用软件。于是,自己使用的是Centos官方推荐的centos/6 Box。

3. 网络设置:端口转发
官网写的配置十分简单,只需要配置Vagrantfile后,调用 vagrant reload即可。但是自己在使用过程中出现了:Virtualbox Guest Additions Version不匹配的问题,导致端口转发配置无法生效。错误截图如下:

 网上找到的有两种方法没有解决这个问题:
1. 运行vboxguest-5.1.8 setup
2. 重新编译vboxguest
另外一种方法是使用Centos GUI界面,运行vboxguest,自己没有尝试。解决这个问题的方法是使用:vagrant plugin install vagrant-vbguest (老外写的一个Vagrant插件,专门解决不匹配问题),在花费多个小时后,终于完成端口转发配置! 截个图庆祝下:

总结及困扰

Vagrant确实是一个好的工具,但是在把它使用好,需要投入一定的时间研究。在使用过程中,自己发现Vagrant的Box阉割的比较厉害,好处是Box占用磁盘空间小了很多,坏处就是以后使用某个软件的时候,需要花费时间填坑。

附,参考资料:
1. https://www.vagrantup.com/docs/getting-started/boxes.html 【官方教程】
2. http://www.vagrantbox.es/ 【镜像列表】
0 0