1.Vagrant
Vagrant是一个虚拟机管理和配置工具,所以虚拟机系统还得靠专门的虚拟化软件,Vagrant它底层支持VirtualBox、VMware甚至AWS作为虚拟机系统。通常情况下,如果你的Vagrant环境需要封装给其他小伙伴们用,最好使用VirtualBox这个支持OSX/Linux/Win三大宿主系统的免费软件作为后端。而且,Vagrant默认已经内置了VirtualBox Provider用来跟 VirtualBox交互,所以安装完Vagrant再去VirtualBox官网下载并安装VirtualBox就可以正式开始使用了。
总之,Vagrant是通常用于构建及配置虚拟开发环境的软件。
Vagrant并不提供虚拟化技术,本质上是一个虚拟机外挂,通过虚拟机的管理接口来管理虚拟机。说白了vagrant就是一个普普通通的装了一个Linux的VirtualBox虚拟机,配以vagrant团队为之开发的一系列套件,辅助完成诸如安装初始化、文件同步、ssh、部署环境升级、功能插件安装等等一些列问题的开发环境部署套件。
vagrant虚拟开发环境搭建好之后,在Virtualbox中可以看到被vagant创建出来的新虚拟机。
2.Vagrant虚拟工作环境的搭建
以下是在Windows7系统下亲测通过:
(1)安装virtualbox,官网下载,很好安装
下载地址:https://www.virtualbox.org/wiki/Downloads
(2)安装Vagrant,官网下载,很好安装
下载地址:http://downloads.vagrantup.com/
(3)下载box(box是一个后缀为 box 的文件,实际上它就是一个包含了虚拟机配置、虚拟机硬盘镜像和Vagrant 配置的压缩包),这个灰常重要哦
备注:可以到http://www.vagrantbox.es/上下载box,但是国内会灰常慢。
(4)添加box
执行如下命令:
vagrant box add test 远端的box地址或者本地的box文件名
备注:其中test是我们给这个 box 命的名字,eg:
vagrant box add test https://dl.dropbox.com/u/7225008/Vagrant/CentOS-6.3-x86_64-minimal.box
vagrant box add testCentOS-6.3-x86_64-minimal.box
vagrant box add "CentOS 6.3 x86_64 minimal" CentOS-6.3-x86_64-minimal.box
执行完添加box命令后,box中的镜像文件被放到了/Users/astaxie/.vagrant.d/boxes/,如果在window系统中应该是放到了C:\Users\当前用户名\.vagrant.d\boxes\目录下。
(5)初始化
cd到开发目录(这里的开发目录和vagrant ssh登录虚拟机后的/vagrant目录是一样的),然后执行如下命令:
vagrant init test
(6)启动虚拟机
vagrant up
(7)登录虚拟机
vagrant ssh
备注:windows系统上要安装OpenSSH(http://sourceforge.net/projects/opensshwindows/)之后且为openssh配置了PATH环境变量之后才可以的。不然因为找不到ssh命令,vagrant ssh会执行失败。
3.修改virutalbox和vagrant的默认目录
virtualbox和vagrant默认都是放到系统C盘中,如果安装的box比较多,很容易打满C盘。这个目标路径的配置是可以修改的:
(1)更改VirtualBox虚拟机映像文件的位置
打开 VirtualBox 程序,点击管理/全局设定菜单项(Ctrl+G), 将常规栏里的默认虚拟电脑位置(M)改为其他磁盘下的路径
将原路径 C:\Users\user_name\.VirtualBox\VirtualBox VMs 下的文件移动到新路径下。
重新启动VirtualBox程序,在虚拟机列表里,以前建立的虚拟机虽然都还在,但已经不可用了,将他们全部删除。
双击打开新路径各个文件夹里的vbox文件,将建立的虚拟机重新导入。
(2)更改vagrant配置文件的位置
将 C:\Users\user_name\.vagrant.d 移动到新的位置
新建环境变量VAGRANT_HOME,并指向新路径
学习资料参考于:
http://wing2south.com/post/44371306891/vagrant/
4.从零制作vagrant box
http://xuclv.blog.51cto.com/5503169/1239351
5.vagrant的其他的一些常用的操作命令
vagrant halt #关闭虚拟机环境,其实是调用vitualbox的管理接口,关闭了虚拟机
vagrant suspend #暂停虚拟机环境
vagrant reload #修改了Vagrantfile后,使之生效(相当于先halt,再up)
6.效果展示
被Vagrant创建出来的虚拟机:
使用vagrant ssh登录虚拟机:
学习资料参考于:
https://github.com/astaxie/go-best-practice/blob/master/ebook/zh/01.1.md
https://imququ.com/post/vagrantup.html