2014-01-29 126 views
3

我有幾個目錄有不同的Mercurial歷史,我正在並行工作。它們都具有相同的Vagrantfile,因此對於它們全部使用一個實例是很自然的。 但是當我在一個新目錄中運行「vagrant up」時,它會從鏈接現有VM開始,設置環境等等。 如何在不同目錄之間共享Vagrant實例?在不同的目錄之間共享一個流浪實例

UPDATE:我的目錄結構:

\ 
Vagrantfile 
puppet 
    *.pp 
support 
    nginx.conf 
    uwsgi.development.ini 
other_repo_related_files_and_dirs 
+0

你能列出你的目錄結構嗎? – cocheese

回答

1

只是想大聲這裏。不知道它是否能滿足您的需求。

如果你建立一個目錄結構像這樣

/Main 
    /projects 
    /mercurial_history_1 
    /mercurial_history_2 
    /mercurial_history_3 
    /puppet 
    /modules 
    /manifests 
    default.pp 
    Vagrantfile 

我不知道你正在運行什麼樣的項目,但如果你正在運行例如Apache網絡服務器。您可以爲虛擬機內的每個mercurial項目指定一個單獨的虛擬主機。因此,您可以將DocumentRoot指向特定的mercurial項目。

對於這個解決方案,您必須添加以下行Vagrantfile

config.vm.network "private_network", ip: "22.22.22.11" <- Just an example IP 

那麼你的主機上,你可以更新主機與IP和相應vhostname服務器名的文件。這是多一點的工作,但你可以使用預配,以使生活更輕鬆添加虛擬主機)

這樣,你只需要一個虛擬機運行,運行人的善變項目

5

好吧,如果你想分享一些具有相同Vagrant實例的目錄,您可以配置Vagrantfile。

這是一個有兩個VM(應用和網絡)示例,使用同一個盒子(Ubuntu的12.04)相同Vagrantfile。每個實例都有兩個文件夾(VM一個文件夾)。

# -*- mode: ruby -*- 
# vi: set ft=ruby : 

# Vagrantfile API/syntax version. Don't touch unless you know what you're doing! 
VAGRANTFILE_API_VERSION = "2" 

Vagrant.configure(VAGRANTFILE_API_VERSION) do |config| 

    config.vm.define 'app' do |app_config| 
    app_config.vm.box = 'ubuntu-12.04' 
    app_config.vm.host_name = 'app' 
    app_config.vm.network "private_network", ip: "192.168.33.33" 
    app_config.vm.synced_folder "app_config", "/app_config"  
    end 
    config.vm.define 'web' do |web_config| 
    web_config.vm.box = 'ubuntu-12.04' 
    web_config.vm.host_name = 'web' 
    web_config.vm.network "private_network", ip: "192.168.33.34" 
    web_config.vm.synced_folder "web_config", "/web_config" 
    end 
end 

應用機器具有APP_CONFIG文件夾和幅材機具有web_config文件夾(這些文件夾是在Vagrantfile文件相同的水平)。

當你用vagrant ssh命令進入每個虛擬機時,你可以看到每個文件夾。 這是進入a​​pp機器。

[email protected]:~/Desktop/multiple$ vagrant ssh app 
Welcome to Ubuntu 12.04 LTS (GNU/Linux 3.2.0-23-generic-pae i686) 

* Documentation: https://help.ubuntu.com/ 
Welcome to your Vagrant-built virtual machine. 
Last login: Mon Jan 27 13:46:36 2014 from 10.0.2.2 
[email protected]:~$ cd /app_config/ 
[email protected]:/app_config$ ls 
app_config_file 

這是網絡機器。

[email protected]:~/Desktop/multiple$ vagrant ssh web 
Welcome to Ubuntu 12.04 LTS (GNU/Linux 3.2.0-23-generic-pae i686) 

* Documentation: https://help.ubuntu.com/ 
Welcome to your Vagrant-built virtual machine. 
Last login: Mon Jan 27 13:47:12 2014 from 10.0.2.2 
[email protected]:~$ cd /web_config/ 
[email protected]:/web_config$ ls 
web_config_file 
[email protected]:/web_config$ 

這是我的目錄結構。

. 
├── **app_config** 
│   └── *app_config_file* 
├── attributes 
├── Berksfile 
├── Berksfile.lock 
├── chefignore 
├── definitions 
├── files 
│   └── default 
├── Gemfile 
├── libraries 
├── LICENSE 
├── metadata.rb 
├── providers 
├── README.md 
├── recipes 
│   └── default.rb 
├── resources 
├── templates 
│   └── default 
├── test 
│   └── integration 
│    └── default 
├── Thorfile 
├── Vagrantfile 
├── Vagrantfile~ 
└── **web_config** 
    └── *web_config_file* 

我希望這對你有所幫助。

相關問題