1. 关于Vagrant

Vagrant是一个虚拟机管理工具。可以实现快速的虚拟机镜像分发和使用。可以说,Vagrant使得虚拟机技术的使用门槛大大降低。让所有人都可以快速的使用虚拟机投入到具体的开发工作中去。(尤其对于那些需要在服务器环境中进行开发的人来说)。

2. 安装Vagrant

Vagrant的安装非常简单,从它的主页上可以方便的下载得到在各种操作系统下的安装程序。我使用的是Win7操作系统。因此直接下载对应操作系统的安装程序即可。Vagrant的安装符合win7下安装应用的一般过程。这就不用多说了。

要使用Vagrant,当然需要虚拟化技术的支持。目前Windows操作系统已经支持的HyperV的虚拟化技术。对于Win7操作系统来说,默认并没有提供该项功能。需要单独从Microsoft的网站上安装。在其他的虚拟化技术中,由于VirtualBox是开源的,并且在各类操作系统中均有运行环境,因此在Vagrant一开始支持的虚拟化技术中,VirtualBox是首先得到支持的。目前VMWare的虚拟化技术也已经得到了Vagrant的支持。为了方便学习,我选择VirtualBox作为虚拟化解决方案。当然,关于Vagrant使用VirtualBox的各类教程,也是最多的。

VirtualBox的安装,同样,从主页下载程序后执行安装即可。

3. 配置Vagrant和VirtualBox

Vagrant和VirtualBox安装完成后,默认存放虚拟机镜像文件的位置在系统盘。这对于大多数系统盘容量有限的人来说,很快就会收到“磁盘容量不足”的告警。通过必要的设置将镜像数据移出系统盘。

3.1. 更改VirtualBox的镜像文件存放位置

具体步骤如下:

  1. 打开VirtualBox,从菜单项选择 全局设置 (快捷键是 Ctrl-G )
  2. 选择 常规 里的 默认虚拟电脑位置(M)
  3. 设置为非系统盘的位置。
  4. 将原位置中的虚拟机镜像移动到新的位置。
  5. 如果在设置前已经安装了虚拟机,那么在Windows 资源管理器中,选择对应目录中的 Vbox 文件,即可将新目录中的虚拟机镜像添加到VirtualBox中。

3.2. 更改Vagrant的镜像存储位置

Vagrant对于虚拟机的管理分成两个部分:Box和Machine。Box是指初始的未部署的虚拟机镜像文件。这个文件相当于是虚拟机的一个模板,可以进行无限制次数的复制。Machine,是指处于可运行状态下的虚拟机。当在Vagrant中添加box是,默认Vagrant会将这些虚拟机模板镜像文件存放在c:\User\<Username>\.Vagrant.d里。因此,当使用Vagrant管理的虚拟机模板镜像较多时,这个目录也是比较大的。可以转移到其他磁盘分区上。方法是:

  1. 将 c:\User\<username>\.vagrant.d 目录移动到新的位置
  2. 设置 VAGRANT_HOME 环境变量指向新的位置即可。

4. 使用vagrant添加虚拟机镜像

4.1. 从互联网添加虚拟机镜像文件

在正式使用Vagrant前,建议先添加vagrant的镜像文件。使用如下指令添加虚拟机模板镜像文件:

E:\vagrant_starter>vagrant box add ubuntu/trusty64

执行上面的指令后,系统会自动从互联网下载相应的镜像文件。执行上述指令后,会得到如下的输出:

E:\vagrant_starter>vagrant box add ubuntu/trusty64
==> box: Loading metadata for box 'ubuntu/trusty64'
    box: URL: https://vagrantcloud.com/ubuntu/trusty64
==> box: Adding box 'ubuntu/trusty64' (v14.04) for provider: virtualbox
    box: Downloading: https://atlas.hashicorp.com/ubuntu/boxes/trusty64/versions
/14.04/providers/virtualbox.box
    box: Progress: 0% (Rate: 7168/s, Estimated time remaining: 21:27:41)

当 Progress 进展到100%时,相应的镜像就添加到Vagrant中可供随时克隆使用了。

TIP : 在VagrantCloud有大量已经制作好可供下载的基础镜像文件。有兴趣可以去看看,能减少自己做系统的时间。

4.2. 从本地添加镜像文件

从互联网添加是最基本的方法。从本地已经下载好的文件中添加镜像文件当然会更加的方便。要添加本地已下载好的镜像文件,执行如下指令即可:

E:\vagrant_starter>vagrant box add ubuntu/trusty64 file:///e:\download\trusty-server-cloudimg-amd64-vagrant-disk1.box

5. 初始化虚拟机

开始使用虚拟机,首先需要将虚拟机模板镜像导入“工作环境”。如前所属,已经添加了 ubuntu/trusty64 镜像之后,可以之间使用如下指令完成相关虚拟机的初始化。

E:\vagrant_starter>vagrant init ubuntu/trusty64
A `Vagrantfile` has been placed in this directory. You are now
ready to `vagrant up` your first virtual environment! Please read
the comments in the Vagrantfile as well as documentation on
`vagrantup.com` for more information on using Vagrant.

如果以前没有使用 vagrant box add 指令,直接使用init命令时,会先添加box,完成后再执行初始化操作。

6. 使用虚拟机

6.1 启动虚拟机

启动虚拟机只需要一个指令,并且可以得到一下输出:

E:\vagrant_starter>vagrant up
Bringing machine 'default' up with 'virtualbox' provider...
==> default: Importing base box 'ubuntu/trusty64'...
==> default: Matching MAC address for NAT networking...
==> default: Setting the name of the VM: git-server_default_1418350291527_32287
==> default: Clearing any previously set forwarded ports...
==> default: Clearing any previously set network interfaces...
==> default: Preparing network interfaces based on configuration...
    default: Adapter 1: nat
==> default: Forwarding ports...
    default: 22 => 2222 (adapter 1)
==> default: Booting VM...
==> default: Waiting for machine to boot. This may take a few minutes...
    default: SSH address: 127.0.0.1:2222
    default: SSH username: vagrant
    default: SSH auth method: private key
==> default: Machine booted and ready!
==> default: Checking for guest additions in VM...
==> default: Mounting shared folders...
    default: /vagrant => E:/vagrant_starter

6.2 登录虚拟机

要登陆虚拟机可以使用 Vagrant ssh 命令登录虚拟机系统。登录后可以看到:

E:\vagrant_starter>vagrant ssh
Welcome to Ubuntu 14.04.1 LTS (GNU/Linux 3.13.0-40-generic x86_64)

 * Documentation:  https://help.ubuntu.com/

  System information as of Fri Dec 12 02:12:05 UTC 2014

  System load:  0.36              Processes:           91
  Usage of /:   2.8% of 39.34GB   Users logged in:     0
  Memory usage: 21%               IP address for eth0: 10.0.2.15
  Swap usage:   0%

  Graph this data and manage this system at:
    https://landscape.canonical.com/

  Get cloud support with Ubuntu Advantage Cloud Guest:
    http://www.ubuntu.com/business/services/cloud

0 packages can be updated.
0 updates are security updates.


vagrant@vagrant-ubuntu-trusty-64:~$

如果你得到了以上的输出显示,好的,你已经成功登录到你的 私有 服务器上了。在你自己的服务器上撒泼打滚吧,在这个服务器上,你就是 上帝 。

7. 停止或删除虚拟机

要停止虚拟机的运行,可以使用如下指令:

  • 虚拟机关机:E:\vagrant_starter>vagrant halt

  • 虚拟机挂起:E:\vagrant_starter>vagrant suspend

  • 删除虚拟机:E:\vagrant_starter>vagrant destory

    危险:虚拟机删除后,所有在虚拟机中做的改动都不再存在。如果重新使用,需要再次使用init命令初始化。此时得到的将是一个全新的虚拟机。所以,注意安全。

8. 参考文档:

  1. Vagrant官方文档: https://docs.vagrantup.com/v2/
  2. 小硬盘伤不起-将Vagrant移出系统盘的方法: http://wing2south.com/post/44371306891/vagrant/

 

via。http://www.ituring.com.cn/article/131438