从任何虚拟机(如virtualbox)通过其界面启动vagrant box

时间:2015-01-07 06:11:16

标签: hash vagrant virtualbox vagrantfile

我已经通过 vagrant package 命令制作了流浪盒包装,我想将新制作的流浪盒分发给目前在我团队中工作的每个开发人员。问题是我不希望每个开发人员都应该在其中安装vagrant。我只是希望我共享的流浪盒将通过虚拟盒的用户界面或当前安装的任何虚拟机打开。

我怎么能实现这个目标?

当我尝试通过虚拟框

打开vagrant.box时出现错误

enter Failed to open the optical disk file /home/sandeep/vagrant image/ldapclient.box.

Could not get the storage format of the medium '/home/sandeep/vagrant image/ldapclient.box' (VERR_NOT_SUPPORTED).

Result Code: VBOX_E_IPRT_ERROR (0x80BB0005)
Component: Medium
Interface: IMedium {05f2bbb6-a3a6-4fb9-9b49-6d0dda7142ac}
Callee: IVirtualBox {fafa4e17-1ee2-4905-a10e-fe7c18bf5554}
Callee RC: VBOX_E_OBJECT_NOT_FOUND (0x80BB0001)code here

1 个答案:

答案 0 :(得分:2)

.box只是一个tar文件,里面有一些元数据和提供者特定的文件。

这不是Virtualbox支持的格式。

在你的情况下,我不确定为什么你甚至使用Vagrant(因为你可以使用Virtualbox的导出功能)。但是如果你坚持,你所要做的就是从.box文件中提取文件,然后将.ovf& .vmdk个文件

更新

逐步指导如何提取.box文件并在Virtualbox中运行它:

  1. 提取:.box只是一个tar / tar.gz / zip文件,因此请使用7-zip,unzip或tar等实用程序来提取文件(取决于您的操作系统)。
  2. 提取后你应该看到类似于下面的文件夹结构(我使用ubuntu\trusty64框作为示例): . |____14.04 | |____virtualbox | | |____.vagrant | | |____box-disk1.vmdk | | |____box.ovf | | |____metadata.json | | |____Vagrantfile |____metadata_url
  3. 正如您所看到的,box格式只是一个提供特定数据的容器,还有一些额外的元数据可以帮助Vagrant进行版本控制等等。这里的关键文件是Virtualbox支持的.ovf.vmdk

    1. 打开Virtualbox并在“文件”菜单中选择“导入设备”(这是在OS X中。在您的操作系统中可能有点不同)
    2. 将导入向导指向解压缩目录中的.ovf文件,然后继续导入。
    3. 现在将显示一些机器详细信息,您可以更改其中一些(内存,CPU等)
    4. 继续导入 - 现在Virtualbox中应该出现一个新的虚拟机
    5. 启动新虚拟机