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的镜像文件存放位置
具体步骤如下:
- 打开VirtualBox,从菜单项选择 全局设置 (快捷键是 Ctrl-G )
- 选择 常规 里的 默认虚拟电脑位置(M)
- 设置为非系统盘的位置。
- 将原位置中的虚拟机镜像移动到新的位置。
- 如果在设置前已经安装了虚拟机,那么在Windows 资源管理器中,选择对应目录中的 Vbox 文件,即可将新目录中的虚拟机镜像添加到VirtualBox中。
3.2. 更改Vagrant的镜像存储位置
Vagrant对于虚拟机的管理分成两个部分:Box和Machine。Box是指初始的未部署的虚拟机镜像文件。这个文件相当于是虚拟机的一个模板,可以进行无限制次数的复制。Machine,是指处于可运行状态下的虚拟机。当在Vagrant中添加box是,默认Vagrant会将这些虚拟机模板镜像文件存放在c:\User\<Username>\.Vagrant.d里。因此,当使用Vagrant管理的虚拟机模板镜像较多时,这个目录也是比较大的。可以转移到其他磁盘分区上。方法是:
- 将 c:\User\<username>\.vagrant.d 目录移动到新的位置
- 设置 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. 参考文档:
- Vagrant官方文档: https://docs.vagrantup.com/v2/
- 小硬盘伤不起-将Vagrant移出系统盘的方法: http://wing2south.com/post/44371306891/vagrant/
via。http://www.ituring.com.cn/article/131438