Vagrant 从文件中获取VirtualBox id(uuid)
我试图从一个新创建的vm的文件中发现它的uuid。我知道价值在某处,但我似乎无法挖掘出来 该值将在嵌入的Vagrant 从文件中获取VirtualBox id(uuid),vagrant,virtualbox,Vagrant,Virtualbox,我试图从一个新创建的vm的文件中发现它的uuid。我知道价值在某处,但我似乎无法挖掘出来 该值将在嵌入的VBoxManage命令中使用: %x(VBoxManage guestproperty get{vm.id})/VirtualBox/GuestInfo/Net/1/V4/IP) 两种可能的解决办法: 首先,只需为VM设置一个唯一的名称并使用该名称: v.customize[“modifyvm”,:id,“--name”,“我唯一的VM名称”] 第二,可能正在阅读.vagrant/mac
VBoxManage
命令中使用:
%x(VBoxManage guestproperty get{vm.id})/VirtualBox/GuestInfo/Net/1/V4/IP)
两种可能的解决办法:
首先,只需为VM设置一个唯一的名称并使用该名称:
v.customize[“modifyvm”,:id,“--name”,“我唯一的VM名称”]
第二,可能正在阅读.vagrant/machines/default/virtualbox/id
的内容,尽管这感觉有点糟糕
第二,可能正在阅读
.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"
id
已经在Vagrant的vm
对象中的某个位置。有几个插件能够公开该值,因此从磁盘读回该值感觉像是一种黑客行为。插件可以访问@ENV
和machine
和machine.id
确实,我不确定您是否可以(没有足够的ruby经验)。另外,如果您可以从vagrant文件访问id
,则不需要传递每个提供者特定的“modifyvm”:id--name
参数,但您可以执行vb.id=xxx
,这不是vagrant文档所要的