Vagrant Config Error - “A box must be specified.”

匿名 (未验证) 提交于 2019-12-03 02:52:02

问题:

The boxes were working fine. Then I halted one (the only one running at the time) and now I can't get either of them back up.


Running vagrant up [name] gives me the following error, regardless of which I pick or whether I leave it at vagrant up for them both to come up:

There are errors in the configuration of this machine. Please fix the following errors and try again:  vm: * A box must be specified. 

Running latest version of Vagrant (1.7.4).

Here is my Vagrantfile in its entirety, comments included (just in case):

# Search for boxes here: https://atlas.hashicorp.com/boxes/search # Refer to commands_vagrant.txt for command reference  Vagrant.configure("2") do |config|      # Globally defined variables     config.vm.synced_folder "./", "/var/www/public"      # CentOS 6.5, Apache 2.2.15, MySQL 5.5.36 (-u root), PHP 5.3.28     # Note: If PHP session keys don't work, set permissions to 777 (or other more restrictive, but this is guaranteed to work) on /var/lib/php/session     config.vm.define "php5dot3", primary: true do |php5dot3|         config.vm.box = "smallhadroncollider/centos-6.5-lamp"         config.vm.network :forwarded_port, guest: 80, host: 4567     end      # Ubuntu 14.04 (SSH pw: vagrant), Apache 2.4.12, MySQL 5.5.43 (-u root -p root), PHP 5.6.10     config.vm.define "php5dot6" do |php5dot6|         config.vm.box = "scotch/box"         config.vm.network :forwarded_port, guest: 80, host: 4568     end  end 

Result of running vagrant status:

Current machine states:  php5dot3                  poweroff (virtualbox) php5dot6                  poweroff (virtualbox) 

Result of running vagrant global-status:

id       name     provider   state    directory                            -------------------------------------------------------------------------- e1f3c85  default  virtualbox poweroff /home/sam/Web                        c588d51  php5dot6 virtualbox poweroff /home/sam/Web                        4e71c50  php5dot3 virtualbox poweroff /home/sam/Web     

'default' was the singular box I had in my Vagrantfile before I got multi-machines working last week. (Relevant?)


Result of running vagrant box list:

scotch/box                          (virtualbox, 2.0) smallhadroncollider/centos-6.5-lamp (virtualbox, 1.0.0) 

Any help would be appreciated, thanks.

回答1:

Inside of your machine definitions, you need to use the variable name of that machine, instead of config. Try this out:

In the file below, I've changed config.vm to either php5dot3.vm or php5dot6.vm:

Vagrant.configure("2") do |config|      # Globally defined variables     config.vm.synced_folder "./", "/var/www/public"      # CentOS 6.5, Apache 2.2.15, MySQL 5.5.36 (-u root), PHP 5.3.28     # Note: If PHP session keys don't work, set permissions to 777 (or other more restrictive, but this is guaranteed to work) on /var/lib/php/session     config.vm.define "php5dot3", primary: true do |php5dot3|         php5dot3.vm.box = "smallhadroncollider/centos-6.5-lamp"         php5dot3.vm.network :forwarded_port, guest: 80, host: 4567     end      # Ubuntu 14.04 (SSH pw: vagrant), Apache 2.4.12, MySQL 5.5.43 (-u root -p root), PHP 5.6.10     config.vm.define "php5dot6", autostart:false do |php5dot6|         php5dot6.vm.box = "scotch/box"         php5dot6.vm.network :forwarded_port, guest: 80, host: 4568     end  end 

I also added autostart:false to the definition of your php5dot6 box, which you can remove if you wish. (It just means that running vagrant up will only start the primary by default.



标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!