2014-01-29 98 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* 

我希望这对你有所帮助。

相关问题