我有一个vagrantfile,它使用虚拟机顶部的框和一个配置脚本。
现在我正在尝试使用packer在提供后输出一个盒子。
但是我找不到使用我已经拥有的“.box”文件的构建器。我做错了什么?
答案 0 :(得分:3)
我刚刚解决了这个小问题(将一个流浪汉.box文件转换为.ova供打包者使用):
Vagrantfile
,框opscode-centos-7.0
:$provisioning_script = <<PROVISIONING_SCRIPT adduser packer echo "packer" | passwd packer --stdin echo "packer ALL=(ALL:ALL) NOPASSWD: ALL" > /etc/sudoers.d/packer PROVISIONING_SCRIPT Vagrant.configure(2) do |config| config.vm.box = "opscode-centos-7.0" config.ssh.insert_key = false config.vm.provider "virtualbox" do |v| v.name = "packer-base" end config.vm.provision :shell, inline: $provisioning_script end
vagrant up
vagrant halt
vboxmanage export --ovf20 -o packer-base.ova packer-base
vagrant destroy
这也会为packer
用户创建一个默认密码,以便打包者可以轻松连接到实例来执行操作。另请注意insert_key
参数,该参数将阻止使用安全密钥替换vagrant默认的不安全密钥,并允许后续的vagrant设置通过SSH正确连接到新映像(填充程序完成后)。
答案 1 :(得分:0)
开箱即用的打包工具尚不支持使用Vagrant框作为输入(尚未)。
但是有一个自定义插件,请参见this comment。
答案 2 :(得分:-1)
如果您想构建一个使用提供者虚拟框运行的流浪盒,请查看here。
但是,输入需要iso
或ovf
,而不是流浪盒。
查看these templates以开始将虚拟框构建器与packer一起使用。
确保运行post-processor以将virtualbox vm转换为流浪盒。