我可以动态地将主机中的(创建)共享目录添加到正在运行的Vagrant框中吗?

时间:2014-04-04 14:52:42

标签: share vagrant vagrantfile

我有一种情况,我希望将共享文件夹添加到 VirtualBox 提供的正在运行的 Vagrant 框(Ubuntu guest)中。

According to the docs,这些"同步文件夹" 应该在配置文件中定义,如下所示:

config.vm.synced_folder "/mnt/plugdrive15", "/synced/plugdrive15"

但是如果我需要共享主机上的新目录呢?我经常这样,我无法预测他们的名字,所以我不能事先在配置文件中预先写好。我想自动化这个。

使用VBoxManage sharedfolder add不起作用,因为只要执行vagrant up,就只剩下配置文件中指定的共享(以及默认的vagrant)。

如果所有其他方法都失败了(没有更好的解决方案),可以Vagrantfile解析一个配置文件(我在vagrant up之前指定共享?

1 个答案:

答案 0 :(得分:1)

您可以使用虚拟框界面,在VM设置中有共享文件夹选项,并且可以在VM运行时添加新文件夹

[修改] 有一个命令行工具关联:http://www.virtualbox.org/manual/ch04.html#sharedfolders

[编辑2 ] 设置vm名称是特定于提供者的操作,因此VBoxManage工具也会考虑它。

config.vm.provider :virtualbox do |vb|
  vb.name = "barhost"
end

如果您没有指定名称,则会生成一个名称,但请参阅How to change Vagrant 'default' machine name?以获取精确度。