如何打包未使用vagrant up命令创build的现有VM?
我安装了一个VirtualBox,然后在其中安装了Ubuntu 12.10 Server Base OS。 我已经安装了各种PHP软件包和其他包。 我的朋友推荐我使用stream浪汉,所以我可以轻松地与我的队友分享我的设置。
因为我当前的VirtualBox虚拟机不是用vagrant up
创build的,所以我不知道如何打包。 在Vagrant的文件谈论包装,但开始说:
在完成本页其余部分的工作之前,请确保虚拟环境是通过运行vagrantbuild立起来的。
就我而言,我现有的虚拟机并不是最初使用stream浪汉创build的。
如何打包现有的虚拟机?
要认识到的重要的事情(和stream浪的文件不太清楚)是有两个包装的“口味”:
- 你所说的“入门”中的包装指南假设你已经从一个stream浪的底盒开始,并用
vagrant up
其初始化,而你却没有。 这允许您打包您对stream浪者基地箱做的任何定制 。 - 如果您从头开始,或从“简单的”VirtualBox虚拟机开始,则需要创build一个stream浪的基础框 。 你应该很好地遵循基于Ubuntu的指南 。
有一个使用Oracle Enterprise Linux 从零开始创buildstream浪盒的详细指南 ,这可能会有所帮助。 你也可以试试VeeWee 。
或者,您可以从Ubuntu 12.10基础盒子开始,并移植您的自定义设置,在这种情况下,您可以使用更简单的第一种打包方式。
更新
以上是指Vagrant 1.0。 事情在1.1中略有改变,尤其是文档已被改写:
-
vagrant package
命令允许您以1.0中相同的方式打包您对现有的stream浪者基地箱进行的任何定制 。 - 1.1中已经删除了用于创build基本框的文档 ,但是文档build议该过程保持不变,但是现在需要额外的
metadata.json
文件,因为Vagrant 1.1支持多个提供者 。
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
任何VirtualBox都可以打包成stream浪基盒(基本上是带有Vagrantfile
OVA)。
问题是 :虚拟机不是根据stream浪者的基础箱子build立的,如果你没有在vagrantbox.es上分享它,那么它会没事的。
只需安装vagrant(通过gem或安装程序),在VM文件夹中运行以下命令将其打包到.box
注意 :对于Vagrant 1.2.x,推荐的安装方法是使用操作系统特定的软件包。 Ruby Gem不适用于1.2.x.
vagrant package --base ubuntu --output /path/to/ubuntu.box
请记住,如果你想和其他人分享stream浪基地箱子,最好是阅读文档,并遵循这些规则,使其他人更容易。
虽然不是一个完整的答案,但我认为你可以从文档中得到你需要的东西,这是相当广泛的。 我相信vagrant up
只是一个方便的方法来build立一个stream浪的“盒子”。 对于符合Vagrant的盒子有一些要求。 他们在这里描述…
文件: stream浪者 – 基地箱子
一个盒子所需的裸骨头如下…
- 用于共享文件夹,端口转发等的VirtualBox Guest Additions
- SSH与基于密钥的身份validation支持stream浪的用户
- Ruby和RubyGems来安装Chef和Puppet
- 厨师和木偶提供支持
一旦一个盒子符合这些要求,它应该只是一个使用vagrant package
命令来创build一个便携式安装的问题…
更多文档: Vagrant – 盒子
所以,虽然我没有一个完整的答案,但从来没有这样做过,我认为可以让你的安装进入一个可以打包和发布的状态。
就个人而言,包装过程的虚幻的方面是 – 基础开关。 我怀疑可能是很多人的情况。 检查出vagrant package --help
帮助描述。 文档似乎也没有提到它。
我发现了这两个伟大的,深入的,一步一步的指南,从最初的VirtualBox机器创buildVagrant箱子:
- 如何build立一个CentOSstream浪基地箱
- 从头开始为Vagrant创build基础框
使用'VBoxManage list vms'命令!我用sudo只看到没有列出VMS,所以使用正确authentication用户的命令。上面的答案也有助于制作盒子。
如上所述 – http://sysadm.pp.ua/linux/sistemy-virtualizacii/vagrant-box-creation.html您需要导入和打包三个框:;
- 安装客人补充
- 无密码sudo
- SSH访问所以你只需要login到你的Ubuntu 12.10,安装Vbox Guest添加,添加用户“vagrant”与无密码的sudo访问。
看看更新的文件,find你的箱子应该具有的所有特性,如果你想要它无缝地与stream浪者工作:
http://docs.vagrantup.com/v2/virtualbox/boxes.html
你也应该看看一个叫做veewee的伟大项目,它允许你从scractch脚本生成一个stream浪者箱子。 这意味着veewee会从您的发行版中实际下载ISO,并将其安装在处女虚拟机上,然后configuration并安装所有依赖项。
它配备了许多不同types的Linux发行版的食谱:
https://github.com/jedi4ever/veewee
这里来了更多的盒子。 他们说他们是傀儡盒,但他们与所有提供者(厨师,傀儡和shell脚本)一起工作:
您所指的“入门指南”中的包装指南假设您已经从一个stream浪的底盒开始,并用stream浪的方式进行初始化。 这允许您打包您对stream浪者基地箱做的任何定制。
如果您从头开始,或从“简单的” VirtualBox
虚拟机开始,则需要创build一个stream浪的基础框。 你应该很好地遵循基于Ubuntu的指南。