我需要根据一些外部配置在VirtualBox VM上创建一些额外的磁盘,但是这些磁盘必须是独立的,在VM的目录下。我成功地做到了这一点,但是,强制使用虚拟机名称(使其可预测),但是,由于某些限制,我不能在我的环境中强制使用该名称。某些人将在不同的分支和目录中同时工作,对于这种特殊情况,强行使用名称不是一个好主意,它必须是动态的。解决该问题的任何想法将不胜感激。
Vagrant.require_version ">= 1.9.7"
Vagrant.configure('2') do |config|
config.vm.define "mylinux-vm", autostart: false do |this|
this.vm.box = "ubuntu/xenial64"
this.vm.hostname = "my-linuxvm"
this.vm.provider :virtualbox do |vb|
vb.memory = 2048;
vb.cpus = 2
# What is the directory where this VM is going to be created?
# I need to create other disk files under the VM directory
# is going to be something like:
# $HOME/VirtualBox VMs/<current_dir_name>_mylinux-vm_<timestamp>
# How can I get this directory?
end
end
end
答案 0 :(得分:1)
您可以通过执行以下操作来设置该文件夹的名称,并在您的Vagrantfile中对其进行引用:
vb_memory = 2048
vb_cpus = 2
vb_name = "mylinuxvm-foobar-mem#{vb_memory}-cpu#{vb_cpus}"
...
this.vm.provider :virtualbox do |vb|
vb.memory = vb_memory;
vb.cpus = vb_cpus
vb.name = vb_name
# Setting the above would create a directory like this :
# $HOME/VirtualBox VMs/mylinuxvm-foobar-mem2048-cpu2
end
这将使文件夹的名称保持唯一,您也可以在整个Vagrantfile中将其称为vb_name