2014-04-04 43 views
1

我有一種情況,我想將共享文件夾添加到正在運行的Vagrant框(Ubuntu guest),由VirtualBox提供。我可以在主機上添加(創建)從主機共享的目錄到正在運行的Vagrant框嗎?

According to the docs,這些「同步文件夾」應該在配置文件中定義,像這樣:

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

但是如果我需要共享是新的我的主機上的目錄?我經常這樣做,而且我無法預測他們的名字,所以我無法事先在配置文件中預先寫入它們。我想自動化這一點。

使用VBoxManage sharedfolder add不起作用,因爲只要你做vagrant up,只有配置文件(默認vagrant一個)中規定的股票被保留。

如果一切都失敗(沒有更好的解決方案),可以Vagrantfile解析一個配置文件(在我指定的虛擬機共享權利之前vagrant up

+0

你可以分享父目錄? – Doon

+0

父母在不同的平臺上有所不同(我不想讓用戶共享一個接近root的文件夾)。 – Redsandro

回答

1

您可以使用虛擬框界面,你有一個共享文件夾選項設置並在VM上運行

您可以添加新的文件夾

[編輯] 有OFC相關的命令行工具:http://www.virtualbox.org/manual/ch04.html#sharedfolders

[編輯2] 設置虛擬機名稱是提供程序特定的操作,因此VBoxManage工具也會考慮它。

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

如果不指定一個名稱流浪漢會產生一個,見How to change Vagrant 'default' machine name?的精度。

+0

我知道我可以在VM提供程序本身的界面中添加一個,但我正在尋找一種Vagrant特定的方法,或者與平臺無關的命令行技巧。 – Redsandro

+0

謝謝,你的編輯與我的問題有關。當我回到辦公室時,我會嘗試一下。但是,如果客戶端或腳本剛剛「流浪」,我怎麼知道虛擬機名稱?這是一個隨機的名字嗎?它由Vagrant設置時是否可以通過'VBoxManage'管理? – Redsandro

+0

這不起作用。 'Vagrant up'將移除任何手動指定的份額。 – Redsandro