如何使用Packer构建设置Vagrant box的版本号?

4

添加的版本始终为v0,我该如何更改这个值?例如,当我执行vagrant box list时,我的box版本始终是v0

我正在使用Packer创建VirtualBox Vagrant "box",但我无法找到设置box输出版本的方法。

Packer构建命令需要一个builder 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 box,我会使用以下方法将其添加到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"
  ]
}
2个回答

1

现在已经修复了一个问题,因此您现在可以提供自己的metadata.json文件

查看元数据框的内容

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

2
我使用Packer创建了我的虚拟机,那么我该如何获取Packer创建的虚拟机中的元数据呢? - activedecay

1
我想我可以将输出文件名用作版本号。
  "post-processors": [
    {
      "output": "box/vm-${ION_BUILD_NUMBER}.box",
      "type": "vagrant"
    }
  ]

你找到更好的方法了吗? - another
1
不,我能想到的唯一方法就是将版本号放在构建输出框中。很烦人。这太痛苦了,而且阻碍了前进的步伐,所以我只好忍受它的缺点。 - activedecay

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接