2016-09-17 55 views
0

我下载了一个Ubuntu的64位Trust流浪者盒子,并且解雇了它,它工作正常。从预先下载的流浪盒中创建Packer图片

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

我确信在启动时使用脚本来更新系统,创建用户,启用端口转发,生成SSH密钥,安装依赖等。从流浪文件本身。它还将烧瓶和postgres web应用程序从我的本地环境复制到要在apache上运行的流浪计算机上,并且一切正常。最后手动使用包装箱:

vagrant package --base box-name 

只有那时我才了解到派克。 (脸掌)

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

但所有的示例和文档都与下载Ubuntu ISO,根据模板进行配置并将其转换为Amazon,Digital Ocean,Google,azure等的平台可部署映像并最终使用一个后期过程把它变成一个流浪者箱子。

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

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

回答

0

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

例如,如果您使用添加official Ubuntu Trusty box

vagrant box add ubuntu/trusty64 

你应该结束了,您可以在以下位置在你的VirtualBox,OVF建设者的SOURCE_PATH变量使用OVF文件:

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

注:

  • 我们使用上述过程与vmware-VMX建设者,但我没有使用virtualbox-ovf构建器进行测试。我的理解是,他们的工作类似。
  • 上面的例子是使用阿特拉斯官格,但你应该能够找到~/.vagrant.d/boxes/下一个类似的目录结构,你已经下载
  • 到OVF的路径将改变任何地方箱,当新箱被释放,但根据需要脚本或手动更新新版本的路径应该不会很困难。