如何打包未使用vagrant up命令创建的现有VM?

Kim*_*cks 42 packaging virtualbox virtual-machine vagrant

我安装了一个VirtualBox,然后在其中安装了Ubuntu 12.10 Server Base OS.我已经安装了各种php包和其他包.我的朋友们建议我使用Vagrant,这样我就可以轻松地与队友分享我的设置.

因为我当前的VirtualBox VM不是使用创建的vagrant up,所以我不知道如何打包它.Vagrant 的文件谈到了包装,但首先说:

在完成本页的其余部分之前,请确保通过运行vagrant来构建虚拟环境.

在我的情况下,我最初使用vagrant up创建了我现有的VM.

如何打包现有VM?

kyn*_*nan 25

要实现的重要事项(以及流浪文档并不过分清楚)是包装有两种"味道":

  1. 您所指的"入门"中包装指南假设您已经从一个流浪的基本盒子开始并用它进行初始化vagrant up,而您没有.这允许您打包对流浪者基本框进行的任何自定义.
  2. 如果您从头开始或从"普通"VirtualBox VM开始,就像您一样,您需要创建一个流浪汉基本框.您应该遵循基于Ubuntu 的指南.

有一个使用Oracle Enterprise Linux 从头开始创建流浪盒详细指南,这可能会有所帮助.你也可以试试VeeWee.

或者,您可以从Ubuntu 12.10基本框开始并移植自定义,在这种情况下,您可以使用更简单的第一种打包方式.

更新

以上是指Vagrant 1.0.事情在1.1中略有改变,特别是文档已被重写:

  1. vagrant package 命令允许您以与1.0中相同的方式将对现有流浪者基本框进行的任何自定义打包.
  2. 使用VirtualBox创建基本框文档已在1.1中删除,但文档建议该过程保持不变,但现在需要一个额外的metadata.json文件,因为Vagrant 1.1支持多个提供程序.


ami*_*lid 9

vagrant package --output box_name.box --base"vm machine name"--vagrantfile Vagrantfile

确保正确设置端口转发和SSH密钥.

这可能是一个很好的例子:https://github.com/okfn/ckan/wiki/How-to-Create-a-CentOS-Vagrant-Base-Box


Ter*_*ang 7

任何VirtualBox都可以打包到Vagrant Base Boxes(基本上是带有a的OVA Vagrantfile).

问题是:虚拟机不是按照流浪者基础盒构建的,如果你不在vagrantbox.es上共享它那么它就没事了.

只需安装vagrant(通过gem或安装程序),在VM文件夹中运行以下命令将其打包到.box

注意:对于Vagrant 1.2.x,建议的安装方法是使用特定于操作系统的软件包.Ruby Gem不适用于1.2.x.

vagrant package --base ubuntu --output /path/to/ubuntu.box

请记住,如果您想与其他人共享流浪汉基本框,请更好地阅读文档并遵循这些规则以使其他人更容易.


Gor*_*man 5

While not a complete answer, I think you can get what you need from the documentation, which is quite extensive. I believe that vagrant up is merely a convenient means to setting up a Vagrant "box". There are a number of requirements for a box to be Vagrant compliant. They are described here...

Documentation: Vagrant - Base Boxes

The bare bones needed for a box are as follows...

  • VirtualBox Guest Additions for shared folders, port forwarding, etc.
  • SSH with key-based auth support for the vagrant user
  • Ruby & RubyGems to install Chef and Puppet
  • Chef and Puppet for provisioning support

Once a box is compliant with these requirements, it should simply be a matter of using the vagrant package command to create a portable installation...

More documentation: Vagrant - Boxes

所以,虽然我没有一个完整的答案,我从来没有这样做过,但我认为有可能让您的安装进入允许您打包和分发它的状态。