vagrant - 如何使用 Packer 版本设置 Vagrant 盒子的版本号?

标签 vagrant virtualbox packer

添加的框的版本总是v0 ;我怎样才能改变这个值?例如,当我做一个 vagrant box list ,我的盒子一直是版本v0 .

我正在使用 Packer 创建一个 VirtualBox Vagrant“盒子”,但我不知道如何设置盒子输出的版本。

Packer 构建命令使用构建器 JSON 文件

$ packer build builder.json

...

==> virtualbox-iso (vagrant): Creating Vagrant box for 'virtualbox' provider
    virtualbox-iso (vagrant): Copying from artifact: dist-28/ion-disk001.vmdk
    virtualbox-iso (vagrant): Copying from artifact: dist-28/ion.ovf
    virtualbox-iso (vagrant): Renaming the OVF to box.ovf...
    virtualbox-iso (vagrant): Compressing: Vagrantfile
    virtualbox-iso (vagrant): Compressing: box.ovf
    virtualbox-iso (vagrant): Compressing: ion-disk001.vmdk
    virtualbox-iso (vagrant): Compressing: metadata.json

上面的 Packer 步骤的输出是名为 packer_virtualbox-iso_virtualbox.box 的 Vagrant 框,然后我使用它添加到 Vagrant
$ vagrant box add BOX_NAME packer_virtualbox-iso_virtualbox.box
==> box: Box file was not detected as metadata. Adding it directly...
==> box: Adding box 'BOX_NAME' (v0) for provider: 
    box: Unpacking necessary files from: file:///packer/packer_virtualbox-iso_virtualbox.box
==> box: Successfully added box 'BOX_NAME' (v0) for 'virtualbox'!

我想更改值 v0到别的东西。这是builder.json的内容
{
  "builders": [
    {
      "type": "virtualbox-iso",
      "vm_name": "ion-${ION_BUILD_NUMBER}",
      "output_directory": "dist-${ION_BUILD_NUMBER}",
      "iso_url": "${ISO_URL}",
      "iso_checksum": "${MD5}",
      ...
    }
  ],
  "post-processors": [
    "vagrant"
  ]
}

最佳答案

有一个 issue已修复,您现在可以提供自己的 metadata.json文件

box metadata的内容

{
  "name": "xxxx",
  "description": "xxxx",
  "versions": [
    {
      "version": "0.1.0",
      "providers": [
        {
          "name": "virtualbox",
        }
      ]
    }
  ]
}

关于vagrant - 如何使用 Packer 版本设置 Vagrant 盒子的版本号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46960068/

相关文章:

ruby - 如何在 'vagrant up' 上传递参数并将其置于 Vagrantfile 的范围内?

syntax - PyCharm 中的 Vagrantfile 语法高亮

vagrant - 具有您指定名称的连接已存在

virtual-machine - 驱动器号更改 - 为 VirtualBox VM 重新注册 VDI

php - Laravel 迁移已完成,但在数据库中并不总是可见

Vagrant 。您尝试添加的框不支持您请求的提供商

linux - 无法在 virtualbox 中导入 ovf 设备

amazon-web-services - AWS AMI 中需要烘焙哪些内容以及使用 cloud-init 来配置哪些内容?

azure - 如何从 Azure 中现有的私有(private)打包程序镜像创建新的打包程序镜像

perl - 在 perl PAR Packer 中使用外部文件和模块