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

Virtual machine 如何打包未使用vagrant up命令创建的现有VM?,virtual-machine,virtualbox,packaging,vagrant,Virtual Machine,Virtualbox,Packaging,Vagrant,我安装了VirtualBox,然后在其中安装了Ubuntu 12.10服务器操作系统。我已经安装了各种php软件包和其他软件包。我的朋友建议我使用Vagrant,这样我可以轻松地与队友分享我的设置 因为我当前的VirtualBox虚拟机不是使用vagrant up创建的,所以我不知道如何打包它。《流浪汉》的结尾谈到了包装,但开头说: 在完成本页其余部分之前,请确保 环境是由流浪汉建立起来的 在我的例子中,我现有的VM最初不是使用vagrant up创建的 如何打包现有VM?虽然不是一个完整的答案

我安装了VirtualBox,然后在其中安装了Ubuntu 12.10服务器操作系统。我已经安装了各种php软件包和其他软件包。我的朋友建议我使用Vagrant,这样我可以轻松地与队友分享我的设置

因为我当前的VirtualBox虚拟机不是使用vagrant up创建的,所以我不知道如何打包它。《流浪汉》的结尾谈到了包装,但开头说:

在完成本页其余部分之前,请确保 环境是由流浪汉建立起来的

在我的例子中,我现有的VM最初不是使用vagrant up创建的


如何打包现有VM?

虽然不是一个完整的答案,但我认为您可以从文档中获得所需的内容,文档内容非常广泛。我相信“流浪者站”仅仅是一个方便的设置流浪者“盒子”的方法。对于符合流浪汉标准的箱子,有许多要求。他们在这里被描述

文件:

盒子所需的裸骨如下

  • 用于共享文件夹、端口转发等的VirtualBox来宾添加
  • SSH为流浪用户提供基于密钥的身份验证支持
  • Ruby&RubyGems将安装厨师和木偶
  • 厨师和木偶,提供资源调配支持
一旦一个盒子符合这些要求,就应该简单地使用
vagrant package
命令来创建一个便携式安装

更多文档:


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

任何VirtualBox都可以打包到Vagrant基本盒(基本上是带有
Vagrant文件的OVA

问题在于:虚拟机不是按照vagrant基本框构建的,如果您没有在vagrant Box.es上共享它,那么就可以了

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

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

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


请记住,如果您想与他人共享vagrant base box,最好阅读文档并遵循这些规则,以方便他人使用。

需要意识到的重要一点(vagrant文档对此并不太清楚)是包装有两种“味道”:

  • 您所指的假设是您从一个vagrant基本框开始,并使用
    vagrant up
    对其进行了初始化,但您没有这样做。这允许您打包对vagrant基本框所做的任何自定义
  • 如果您从零开始,或者从一个“普通”的VirtualBox VM开始,那么您需要创建一个虚拟机。您应该可以很好地遵循基于Ubuntu的
  • 有一个使用Oracle Enterprise Linux的示例,可能会有所帮助。你也可以试试

    或者,您可以从一个端口开始定制,在这种情况下,您可以使用更简单的第一种打包方式

    更新 以上是指流浪汉1.0。在1.1中,情况略有变化,尤其是文档被重写:

  • vagrant包
    允许您以与1.0中相同的方式打包对现有vagrant基本框所做的任何自定义
  • 已在1.1中删除,但建议该过程保持不变,但现在Vagrant 1.1支持一个额外的
    metadata.json
    文件
  • vagrant包--输出框\u name.box--基本“vm机器名” --流浪者档案流浪者档案

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


    这可能是一个很好的例子:

    查看更新的文档,找到您的盒子应该具备的所有特征,如果您希望它与vagrant无缝配合:

    您还应该看看一个名为veewee的伟大项目,它允许您从scractch脚本生成vagrant box。这意味着veewee将从您的发行版下载ISO,并将其安装在virgin virtualbox机器上,然后配置并安装所有依赖项

    它为所有不同类型的linux发行版提供了很多方法:

    更多的盒子来了。他们说他们是木偶盒,但他们与所有供应商合作(厨师、木偶和贝壳脚本):

    您所指的“入门”中的包装指南假设您从一个vagrant base box开始,并使用vagrant up对其进行初始化,但您没有这样做。这允许您打包对vagrant基本框所做的任何自定义


    如果您从零开始,或者从一个“普通的”
    VirtualBox
    VM开始,那么您需要创建一个浮动基本框。您应该可以很好地遵循基于Ubuntu的指南。

    就个人而言,打包过程中的幻象是
    --base
    开关。我怀疑很多人都是这样。查看Wagrant package--help了解说明。似乎也没有提到它

    我发现这两个伟大、深入、循序渐进的指南可以从最初是VirtualBox机器的机器中创建流浪者盒子:


  • 使用“VBoxManage list vms”命令!我在sudo中使用它只是为了看到没有列出任何虚拟机。因此,请对正确的经过身份验证的用户使用该命令。上面的答案也有助于创建该框。

    如本文所述- 要导入和包装盒子,您需要三样东西:

    • 安装来宾添加
    • 无密码sudo
    • SSH访问 所以你只需要登录你的Ubuntu12.10,安装VBoxGuest additi