2013-05-14 58 views
2

我已閱讀文檔,還有一些東西仍然讓我困惑,主要與同步文件夾和數據庫數據有關。流浪文件結構和web根目錄

我想用我的主機

ROOT
|- workFolder
||- project1
|||- project1DatabaseAndFiles
|||- project1WebRoot
||- project2
|||- project2DatabaseAndFiles
|||- project2WebRoot
||- project3
|||- project3DatabaseAndFiles
|||- project3WebRoot

的下列文件夾結構,然後創建虛擬機,每個虛擬機主機根目錄指向適當projectX創建/ projectXWebRoot文件夾。
從我讀過的內容中,我只能指定一個遠程Sync DIR。 (http://docs.vagrantup.com/v2/synced-folders/)。但是,如果我創建一個新的虛擬機,我也想指定項目名稱,從而選擇正確的主機文件夾。

是我所描述的可能使用流浪漢?
如果我希望另一個開發人員使用此環境,我希望他們能夠立即訪問數據庫結構/設置等,而無需導入任何SQL文件。這可能嗎?

我希望我只是不理解流浪者的目的,但這似乎是一個很好的使用共享VM的我。任何可能有幫助的指針或文章都會非常受歡迎。

回答

3

從我讀過的內容中,我只能指定一個遠程Sync DIR。

不,這是不正確的。您始終可以添加更多共享文件夾。從 manual

該指令用於在虛擬機上配置共享文件夾,並在Vagrantfile可以多次使用。

這意味着您可以使用定義其他共享文件夾:

config.vm.share_folder "name", "/path/on/vm", "path/on/host" 

如果我想其他開發者使用這種環境下,我想爲他們對數據庫結構的即時訪問/安裝程序等,而無需導入任何SQL文件。這可能嗎?

是的,你可以改變的,比如說,MySQL的數據存儲路徑,它存儲在共享的主機,以便 當VM被破壞的數據不會丟失的。

但是,這並不像聽起來那麼簡單。如果您正在使用MySQL Cookbook(同樣,假設您使用的是MySQL),您必須對其進行修改,以便共享文件夾使用mysql用戶的uid和gid進行掛載,否則用戶無法寫入。此外

mount -t vboxsf -o uid=`id -u mysql` -o gid=`id -g mysql` sharename /new/data/dir 

,如果你使用Ubuntu或Debian的喘息,AppArmor的需要爲MySQL, 配置不同,因爲它不允許寫入新配置的數據目錄:您可以手動安裝每股這樣。這可以通過編寫

/new/data/dir r, 
/new/data/dir/** rwk, 

/etc/apparmor/apparmor.d/local/usr.sbin.mysqld。 mysql cookbook的This version已經支持這個行爲,所以你可以看看它是如何做到這一點的。

+0

歡迎您快速回復!我非常詳細地閱讀這本書! – Beertastic 2013-05-14 14:18:23

+0

啊,我試圖從一個文件夾實例化每個實例。我沒有意識到每個項目都可以有自己的vagrantFile和特定的設置。當我導航到一個項目時,我可以做一些改變,並啓動所需的特定實例。 我仍然是一個理解一切的途徑,但這一事實浪費了一天.. ..哦.. :) – Beertastic 2013-05-15 10:52:44