前置条件
1、安装VirtualBox 2、安装Vagrant 3、在VirtualBox中安装操作系统,例如 CentOS1)把在virtualBox中安装的系统打包成box
1、我们需要知道虚拟机的真实名称,进入virtualBox安装目录,执行:
$ ./VBoxManage.exe list vms"centos_default_1521543788096_25035" {5c500bf3-759f-487a-b052-22428bc4cbf2}
其中 centos_default_1521543788096_25035 是虚拟机的名字。
2、利用vagrant package命令打包,先查看一下命令介绍:
$ vagrant package --helpUsage: vagrant package [options] [name|id]Options: --base NAME Name of a VM in VirtualBox to package as a base box (VirtualBox Only) --output NAME Name of the file to output --include FILE,FILE.. Comma separated additional files to package with the box --vagrantfile FILE Vagrantfile to package with the box -h, --help Print this help
--base NAME 指VirtualBox程序里的名称,也就是上步查找的名称。
--output NAME 指要打包的box名称,需要手动添加后缀.box
--include FILE... 打包时包含的文件名,你可以把.box文件理解为一个压缩包
--vagrantfile FILE 打包时包含的Vagrantfile文件,原理和上面类似3、开始打包之前,关闭要打包的虚拟机,然后执行:
$ vagrant package --base centos_default_1521543788096_25035 --output centos20180 403.box==> centos_default_1521543788096_25035: Clearing any previously set forwarded po rts...==> centos_default_1521543788096_25035: Exporting VM...==> centos_default_1521543788096_25035: Compressing package to: D:/vagrant/cento s/centos20180403.box
2)如果只是想打包正在运行的box,再次打包:
#删除虚拟机的一个网络配置文件rm -f /etc/udev/rule.d/70-persistent-net.rules#关闭虚拟机shutdown -h now#打包vagrant package --output mypackage.box
想要将操作系统打包为可用的Vbox镜像要做以下工作
1、创建vagrant用户和用户目录,密码为vagrant2、添加vagrant用户的公共密钥,文件为/home/vagrant/.ssh/authorized_keys 3、在真实操作系统中执行vagrant package --base 虚拟机名称,这样会创建指定虚拟机的box4、将制作好的Box添加到Vagrant环境中,vagrant box add name package.box5、初始化运行环境,vagrant init name,在初始化环境的时候需要注意的一点是:这个目录下面如果以前初始化过,那么请执行vagrant destroy命令把这个环境销毁掉,并删除Vagrantfile文件,或者在windows环境下直接手动删除.vagrant目录和Vagrantfile文件有相同的效果。否则vagrant init命令无效,当你vagant up的时候得到的是一个和以前完全一样的环境。6、运行Vagrant虚拟机,vagrant up