我已经通过 vagrant package 命令制作了 vagrant box 包,我想将新制作的 vagrant box 分发给当前在我的团队中工作的每个开发人员。问题是我不希望每个开发人员都在其中安装 vagrant。我只是希望我共享的 vagrant box 能够通过 virtual box 或当前安装的任何虚拟机的用户界面打开。
我怎样才能实现这个目标?
这是我尝试通过虚拟框打开 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
最佳答案
a .box
只是一个 tar 文件,其中包含一些元数据和提供商特定的文件。
这不是 Virtualbox 支持的格式。
就你而言,我不确定你为什么使用 Vagrant (因为你可以只使用 Virtualbox 的导出功能)。但如果您坚持,您所要做的就是从 .box 文件中提取文件并将 .ovf
和 .vmdk
文件导入 Virtualbox
更新:
分步指导如何提取 .box
文件并在 Virtualbox 中运行它:
- 提取:
.box
只是一个 tar/tar.gz/zip 文件,因此请使用 7-zip、unzip 或 tar 等实用程序来提取文件(取决于您的操作系统)。< - 解压后,您应该会看到类似于以下内容的文件夹结构(我使用
ubuntu\trusty64
框作为示例):。 |____14.04 | |____虚拟盒 | | |____. Vagrant | | |____box-disk1.vmdk | | |____box.ovf | | |____元数据.json | | |____Vagrantfile |____元数据_url
如您所见,box
格式只是一个容器,用于提供特定数据以及一些帮助 Vagrant 进行版本控制等的附加元数据。这里的关键文件是 Virtualbox 支持的 .ovf
和 .vmdk
。
- 打开 Virtualbox,然后在"file"菜单中选择“导入设备”(这是在 OS X 中。在您的操作系统中可能会有所不同)
- 将导入向导指向提取目录中的
.ovf
文件,然后继续导入。 - 现在将显示一些机器详细信息,您可以更改其中一些信息(内存、CPU 等)
- 继续导入 - Virtualbox 中现在应出现一个新的虚拟机
- 启动新的虚拟机
关于hash - 从任何虚拟机(例如 virtualbox)通过其接口(interface)启动 vagrant box,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27813425/