从Vagrantfile获取VirtualBox id(uuid)

时间:2015-11-16 14:22:38

标签: vagrant virtualbox

我试图从其Vagrantfile中发现新创建的vm的uuid。我知道价值存在于某个地方,但我似乎无法将其挖掘出来。

该值将用于嵌入式VBoxManage命令:

%x(VBoxManage guestproperty get #{vm.id} "/VirtualBox/GuestInfo/Net/1/V4/IP")

两种可能的解决方法:

首先,只需为VM设置一个唯一的名称并使用:

v.customize ["modifyvm", :id, "--name", "My unique VM name"]

其次,可能正在阅读.vagrant/machines/default/virtualbox/id的内容,尽管这有点可怕。

1 个答案:

答案 0 :(得分:1)

  第二,可能正在阅读的内容   .vagrant / machines / default / virtualbox / id虽然感觉有点儿   可怕。

为什么它太可怕了?此文件仅包含Id本身,因此无需解析,并且每个提供商都有该文件

这样的东西可以直接使用

Vagrant.configure(2) do |config|
  p "read id " + File.read(".vagrant/machines/default/vmware_fusion/index_uuid")

所以会给你

$ vagrant up
"read id 678add84e58c4c918d498a2b629f30f7"