【问题标题】:Can I add (create) shared directories from the host to a running Vagrant box on the fly?我可以从主机添加(创建)共享目录到正在运行的 Vagrant 盒子吗?
【发布时间】:2014-05-16 23:04:52
【问题描述】:

我想将共享文件夹添加到 VirtualBox 提供的正在运行的 Vagrant 框(Ubuntu 来宾)。

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

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

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

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

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

【问题讨论】:

  • 你可以共享父目录吗?
  • 不同平台上的父级不同(我不想让用户共享靠近root的文件夹)。

标签: share vagrant vagrantfile


【解决方案1】:

您可以使用虚拟盒子界面,在虚拟机设置中有一个共享文件夹选项,您可以在虚拟机运行时添加一个新文件夹

[编辑] 有一个相关的命令行工具:http://www.virtualbox.org/manual/ch04.html#sharedfolders

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

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

如果您不指定名称 vagrant 将生成一个,请参阅How to change Vagrant 'default' machine name? 了解精确度。

【讨论】:

  • 我知道我可以在界面中为 VM 提供程序本身添加一个,但我正在寻找 Vagrant 特定的方法,或者其他与平台无关的命令行技巧。
  • 谢谢,您的编辑与我的问题有关。当我回到办公室时,我会尝试一下。但是当客户端或脚本只执行vagrant up 时,我如何知道 VM 名称?这是一个随机的名字吗?当它由 Vagrant 设置时,它甚至可以由 VBoxManage 管理吗?
  • 这不起作用。 Vagrant up 将删除任何手动指定的共享。
  • @edit2:我知道,这不是问题。打开图形用户界面。使用VBoxManage 添加共享文件夹。您会看到 GUI 中的共享文件夹计数器增加。做vagrant up。您将看到GUI 中的共享文件夹计数器重置为Vagrantfile 中指定的共享数量。他们不会坚持。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-07-03
  • 1970-01-01
  • 2017-08-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多