我为流浪汉下载了一个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,根据模板配置它,并将其转换为亚马逊,数字海洋,谷歌,天蓝等等的平台可部署映像有关,并最终使用后处理把它变成一个流浪盒。
他们不会谈论使用预先下载的流浪盒来做同样的事情。我的问题是,如果可以使用预先下载的流浪盒和打包器为亚马逊,天蓝等支持的平台创建机器图像?
如果是这样,我该怎么办呢?
答案 0 :(得分:0)
您不能将现有的流浪者盒子作为打包器构建器的输入。在新版本中,packer添加了许多新构建器,因此您可以从现有virtual VM构建新的打包器图像,对于amazon,您可以输入existing EBS drive,existing 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
注意:
~/.vagrant.d/boxes/
下找到您已下载的任何本地框的类似目录结构