2017-01-11 8 views
0

я переместил этот вопрос в течение от Serverfault я думал, что это больше вопрос, принадлежащий там :-)Vagrant - Следующие параметры не должны существовать: память, имя

У меня есть Vagrant версии 1.9.1 на MacOS и у меня есть VirtualBox 5.1.12 Я пытаюсь создать многовариантный файл Vagrant, и я столкнулся с проблемами, когда хочу его запустить.

Я получаю сообщение:

There are errors in the configuration of this machine. Please fix the following errors and try again:

vm: * The following settings shouldn't exist: memory, name

Сейчас на данном этапе я закомментирована вторую машину, потому что я получаю ошибку дважды - так что я просто пытаюсь исправить первый.

я видел на других потоках я должен удалить .vm в линиях, которые находятся в блоке «веб», но если я это сделаю, то я получаю эту ошибку:

There are errors in the configuration of this machine. Please fix the following errors and try again:

Vagrant: * Unknown configuration section 'memory='.
* Unknown configuration section 'name='.
* Unknown configuration section 'network'.
* Unknown configuration section 'provision'.

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

Мой бродяга файл прямо здесь - так пожалуйста, любая помощь будет оценена :-)

Vagrant.configure("2") do |config| 

config.vm.box = "bento/ubuntu-16.04" 

config.vm.provider "virtualbox" do |vb| 
    vb.gui = false 
end 

config.vm.define "web" do |web| 
    web.vm.name = "16.04-web01" 
    web.vm.memory = "512" 
    web.vm.network "private_network", ip: "192.168.50.3" 
    web.vm.network "forwarded_port", guest: 80, host: 8083 
    web.vm.network "public_network", bridge: "en1: Wi-Fi (AirPort)" 
    web.vm.provision :shell, path: "bootstrap.sh"  
end 

# config.vm.define :sql01 do |sql| 
#  sql.vm.name = "16.04-sqlserver" 
#  sql.vm.memory = "4096" 
#  sql.vm.network "private_network", ip: "192.168.50.2" 
#  sql.vm.network "forwarded_port", guest: 80, host: 8084 
#  sql.vm.network "public_network", bridge: "en1: Wi-Fi (AirPort)" 
#  sql.vm.provision :shell, path: "bootstrap.sh"  
# end 

#Options for Me specific 
config.vm.synced_folder "/Applications/MAMP/htdocs/", "/htdocs_home" 

end 

ответ

3

name и memory конкретные параметры провайдера, поэтому они должны быть перемещены в этом блоке

Vagrant.configure("2") do |config| 

    config.vm.box = "geerlingguy/ubuntu1604" 

    config.vm.define "web" do |web| 
     web.vm.network "private_network", ip: "192.168.50.3" 
     web.vm.network "forwarded_port", guest: 80, host: 8083 
     web.vm.network "public_network", bridge: "en1: Wi-Fi (AirPort)" 
     web.vm.provision :shell, path: "bootstrap.sh"  

     web.vm.provider "virtualbox" do |vb| 
      vb.gui = false 
      vb.name = "16.04-web01" 
      vb.memory = "512" 
     end 
    end 

    config.vm.define :sql01 do |sql| 
     sql.vm.network "private_network", ip: "192.168.50.2" 
     sql.vm.network "forwarded_port", guest: 80, host: 8084 
     sql.vm.network "public_network", bridge: "en1: Wi-Fi (AirPort)" 
     sql.vm.provision :shell, path: "bootstrap.sh"  

     sql.vm.provider "virtualbox" do |vb| 
      vb.gui = false 
      vb.name = "16.04-sqlserver" 
      vb.memory = "4096" 
     end 
    end 

    #Options for Me specific 
    config.vm.synced_folder "/Applications/MAMP/htdocs/", "/htdocs_home" 

end 
+0

Могу ли я установить другое имя и распределение памяти на разные машины? –

+0

уверен, что .. отредактируйте ответ, чтобы показать пример ... тогда блок-провайдер должен находиться в каждом блоке VM, если вы устанавливаете его за пределами, он применяется для всех VM –

+0

. Ах, это здорово, что имеет смысл - не думал о том, чтобы поставить провайдер внутри определений :-) –