Как заставить файл Vagrant с несколькими машинами использовать одну виртуальную машину?

Есть ли способ настроить несколько компьютеров, где каждая конфигурация использует одну и ту же машину? Я разрабатываю веб-сайты, и я хотел бы, чтобы моя виртуальная машина была настроена для работы в качестве веб-сервера с IP-адресом и имела каждую конфигурацию для загрузки папки синхронизации и имени домена.

Это то, что у меня есть до сих пор:

Vagrant.configure("2") do |config|
config.vm.box = "ubuntu/trusty64"
config.vm.network :forwarded_port, host: 8080, guest: 80
config.vm.network "private_network", ip: "172.28.128.3"

config.vm.define "myoffercode" do |vm1|
    vm1.vm.synced_folder "/Users/gregoryschultz/Sites/myoffercode", "/var/www/html"
end

config.vm.define "dailybayou" do |vm2|
    vm2.vm.synced_folder "/Users/gregoryschultz/Sites/dailybayou", "/var/www/html"
end
end

Спасибо за помощь,


person Gregory Schultz    schedule 06.10.2016    source источник


Ответы (1)


Есть ли способ настроить несколько компьютеров, где каждая конфигурация использует одну и ту же машину?

нет, вы не можете, 1 машина конфигурации = 1 виртуальная машина, поэтому, когда вы пишете

config.vm.define "myoffercode" do |vm1|
    vm1.vm.synced_folder "/Users/gregoryschultz/Sites/myoffercode", "/var/www/html"
end

он действительно создает новую виртуальную машину, управляемую бродягой

Я разрабатываю веб-сайты, и я хотел бы, чтобы моя виртуальная машина была настроена для работы в качестве веб-сервера с IP-адресом и имела каждую конфигурацию для загрузки папки синхронизации и имени домена.

Решением будет использование 1 ВМ и использование виртуальных хостов.

поэтому в вашей виртуальной машине вы синхронизируете весь свой проект

Vagrant.configure("2") do |config|
  config.vm.box = "ubuntu/trusty64"
  config.vm.network :forwarded_port, host: 8080, guest: 80
  config.vm.network "private_network", ip: "172.28.128.3"

  config.vm.synced_folder "/Users/gregoryschultz/Sites/myoffercode", "/var/www/html/myoffercode"
  config.vm.synced_folder "/Users/gregoryschultz/Sites/dailybayou", "/var/www/html/dailybayou"
end

и в вашей конфигурации Apache

# Ensure that Apache listens on port 80
Listen 80
<VirtualHost *:80>
    DocumentRoot "/var/www/html/dailybayou"
    ServerName dailybayou.localdev

    # Other directives here
</VirtualHost>

<VirtualHost *:80>
    DocumentRoot "/var/www/html/myoffercode"
    ServerName myoffercode.localdev

    # Other directives here
</VirtualHost>

обязательно обновите локальный файл хоста, чтобы указать 172.28.128.3 на эти веб-сайты

person Frederic Henri    schedule 07.10.2016
comment
Можно ли иметь несколько машин, но использовать один и тот же ящик на всех виртуальных машинах? Пример: правильно настроенный ящик 1vm, а затем используйте этот ящик на VM2, VM3 и т. д. - person Gregory Schultz; 07.10.2016
comment
да, вы можете - см. мой пост [stackoverflow.com/a/39838357/4296747] он был о моментальном снимке (не о том, что вы хотите), но часть о предоставлении или переупаковке коробки - это то, что вы хотели бы использовать - person Frederic Henri; 07.10.2016