Как получить каталог виртуальной машины на Vagrant - PullRequest
0 голосов
/ 02 марта 2019

Мне нужно создать несколько дополнительных дисков на моей виртуальной машине VirtualBox в зависимости от какой-либо внешней конфигурации, но эти диски должны быть автономными, то есть в каталоге виртуальной машины.Я сделал это с успехом, но, форсируя имя виртуальной машины (делая его предсказуемым), , однако, я не могу форсировать имя в моей среде из-за некоторых ограничений .Некоторые люди будут работать одновременно в разных ветках и в разных каталогах, и принудительное использование имени не является хорошей идеей для этого конкретного случая, оно должно быть динамичным.Любая идея для решения этой проблемы будет высоко ценится.

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

1 Ответ

0 голосов
/ 02 марта 2019

Вы можете установить имя этой папки, выполнив следующее, и сослаться на него в своем 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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...