vagrant安装程序virtualbox名称和json文件中的box版本

vagrant安装程序virtualbox名称和json文件中的box版本,vagrant,virtualbox,Vagrant,Virtualbox,我们的项目中有一个Vagrantfile,它被配置为获取元数据json作为box\u url 在这个元数据json中,我们列出了所有可用的框(不同的版本和/或提供者),如下所述 如果我们执行vagrant up,那么vagrant将创建一个名为\u default\u 我现在设置了一个自定义VirtualBox名称,如下所示: config.vm.provider "virtualbox" do |vb| vb.name = "my-project (centos-67-x64)" end

我们的项目中有一个Vagrantfile,它被配置为获取元数据json作为box\u url

在这个元数据json中,我们列出了所有可用的框(不同的版本和/或提供者),如下所述

如果我们执行
vagrant up
,那么vagrant将创建一个名为
\u default\u

我现在设置了一个自定义VirtualBox名称,如下所示:

config.vm.provider "virtualbox" do |vb|
  vb.name = "my-project (centos-67-x64)"
end
但我想要以下virtualbox名称:

我的项目(centos-67-x64)-1.0.0

版本应来自metadata.json中的version属性

有可能吗?
我没有找到关于这个主题的信息,我想知道,没有其他用户有这个问题。

如果我理解得很好,那就是从ruby读取json文件

以您所指的示例为例,metadata.json文件如下

{
  "name": "hashicorp/precise64",
  "description": "This box contains Ubuntu 12.04 LTS 64-bit.",
  "versions": [{
    "version": "0.1.0",
    "providers": [{
      "name": "virtualbox",
      "url": "http://somewhere.com/precise64_010_virtualbox.box",
      "checksum_type": "sha1",
      "checksum": "foo"
    }]
  }]
}
require 'json'

file = File.read('metadata.json')
data_hash = JSON.parse(file)
version = data_hash['versions'][0]['version']

Vagrant.configure(2) do |config|

  <blablabla>

  config.vm.provider "virtualbox" do |vb|
    vb.name = "my-project (centos-67-x64) - " + version
  end
end
因此您需要
版本
信息。那么流浪者的档案会是这样的

{
  "name": "hashicorp/precise64",
  "description": "This box contains Ubuntu 12.04 LTS 64-bit.",
  "versions": [{
    "version": "0.1.0",
    "providers": [{
      "name": "virtualbox",
      "url": "http://somewhere.com/precise64_010_virtualbox.box",
      "checksum_type": "sha1",
      "checksum": "foo"
    }]
  }]
}
require 'json'

file = File.read('metadata.json')
data_hash = JSON.parse(file)
version = data_hash['versions'][0]['version']

Vagrant.configure(2) do |config|

  <blablabla>

  config.vm.provider "virtualbox" do |vb|
    vb.name = "my-project (centos-67-x64) - " + version
  end
end
require'json'
file=file.read('metadata.json')
data_hash=JSON.parse(文件)
version=数据\u散列['versions'][0]['version']
Vagrant.configure(2)do | config|
config.vm.provider“virtualbox”do | vb|
vb.name=“我的项目(centos-67-x64)-”+版本
结束
结束

您是否尝试过设置
vb.name=“我的项目(centos-67-x64)”+config.vm.box\u版本