我需要在我的VirtualBox VM上创建一些额外的磁盘,具体取决于一些外部配置,但这些磁盘必须是自包含的,我的意思是在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
您可以通过执行以下操作来设置该文件夹的名称,并在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