从预先下载的流浪盒

时间:2016-09-17 17:25:52

标签: vagrant packer

我为流浪汉下载了一个Ubuntu 64 Trust流浪者盒并将其解雇并且工作正常。

vagrant box add /local/path/to/downloaded/box.box
vagrant init
vagrant up
vagrant ssh

我确保在从Vagrant文​​件本身启动时使用脚本来更新系统,创建用户,启用端口转发,生成ssh密钥,安装依赖项等。它还将一个烧瓶和postgres web应用程序从我的本地环境复制到流氓机器上以便在apache上运行,一切正常。最后使用以下方法手动打包盒子:

vagrant package --base box-name

我才知道Packer。 (面掌)

我了解到你可以自动完成整个过程。所以现在,我有我的烧瓶和Postgres网络应用程序,以及预先下载的流浪盒。我已经阅读了文档,我很乐意编写打包程序模板,配置它们,设置构建器等等。这非常棒。

但所有示例和文档都与下载Ubuntu ISO,根据模板配置它,并将其转换为亚马逊,数字海洋,谷歌,天蓝等等的平台可部署映像有关,并最终使用后处理把它变成一个流浪盒。

他们不会谈论使用预先下载的流浪盒来做同样的事情。我的问题是,如果可以使用预先下载的流浪盒和打包器为亚马逊,天蓝等支持的平台创建机器图像?

如果是这样,我该怎么办呢?

2 个答案:

答案 0 :(得分:0)

您不能将现有的流浪者盒子作为打包器构建器的输入。在新版本中,packer添加了许多新构建器,因此您可以从现有virtual VM构建新的打包器图像,对于amazon,您可以输入existing EBS driveexisting amazon instance或{{ 3}}等等。你应该检查包装工amazon chroot

答案 1 :(得分:0)

正如Frédéric所提到的,可以使用virtualbox-ovf / vmware-vmx构建器将现有VM作为Packer的输入,运行配置然后输出新的框。对于您的用例,您可以使用其中一个构建器并将source_path变量设置为与您要从其开始的框关联的ovf / vmx文件。

例如,如果您使用以下内容添加official Ubuntu Trusty box

vagrant box add ubuntu/trusty64

您最终应该得到一个ovf文件,您可以在以下位置的virtualbox-ovf构建器的source_path变量中使用该文件:

$HOME/.vagrant.d/boxes/ubuntu-VAGRANTSLASH-trusty64/20160908.0.0/virtualbox/box.ovf

注意:

  • 我们将上述过程与vmware-vmx构建器一起使用,但我还没有使用virtualbox-ovf构建器进行测试。我的理解是他们的工作方式相似。
  • 以上示例使用Atlas的官方框,但您应该能够在~/.vagrant.d/boxes/下找到您已下载的任何本地框的类似目录结构
  • 当释放新框时,ovf的路径会发生变化,但根据需要编写脚本或手动更新新版本的路径应该不难。