5

我有一个 vagrantfile 使用 virtualbox 顶部的一个带有配置脚本的框。

现在我正在尝试使用打包器在提供后已经输出一个框。

但是我找不到构建器来使用我已经拥有的“.box”文件。我究竟做错了什么?

4

3 回答 3

3

我刚刚解决了这个小问题(将 vagrant .box 文件转换为 .ova 供打包机使用):

  • 使用 .box 文件作为基础创建一个 vm。我用这个Vagrantfile,盒子opscode-centos-7.0
    $provisioning_script = <<PROVISIONING_SCRIPT
    添加用户打包程序
    回声“打包机” | 密码打包程序--stdin
    echo "packer ALL=(ALL:ALL) NOPASSWD: ALL" > /etc/sudoers.d/packer
    PROVISIONING_SCRIPT

    Vagrant.configure(2) 做 |config|
      config.vm.box = "opscode-centos-7.0"
      config.ssh.insert_key = false
      config.vm.provider "virtualbox" 做 |v|
        v.name = "打包机基础"
      结尾
      config.vm.provision :shell,内联:$provisioning_script
    结尾
  • vagrant up
  • vagrant halt
  • vboxmanage export --ovf20 -o packer-base.ova packer-base
  • vagrant destroy

这也创建了packer具有默认密码的用户,以便打包程序可以轻松地连接到实例以执行操作。另请注意该insert_key参数将防止用安全密钥替换 vagrant 默认不安全密钥,并允许后续 vagrant 设置通过 SSH 正确连接到新映像(在打包程序完成后)。

于 2015-12-15T02:47:34.897 回答
0

开箱即用的 Packer 不支持使用 Vagrant 框作为输入(目前)。

但是有一个自定义插件,请参阅此评论

于 2018-08-14T21:28:47.920 回答
-1

如果您想构建一个与提供程序 virtualbox 一起运行的 vagrant box,请查看此处

但是,它需要一个isoovf作为输入,而不是一个流浪盒。

查看这些模板,让您开始使用带有打包程序的 virtualbox builder。

确保运行后处理器以将 virtualbox vm 转换为 vagrant box。

于 2015-03-26T08:06:23.533 回答