Vagrant 配置错误 - “必须指定一个框". [英] Vagrant Config Error - "A box must be specified."
问题描述
盒子工作正常.然后我停止了一个(当时唯一一个运行的),现在我无法让它们中的任何一个恢复.
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.
运行 vagrant up [name]
给了我以下错误,无论我选择哪个,或者我是否将它留在 vagrant 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.
运行最新版本的 Vagrant (1.7.4).
Running latest version of Vagrant (1.7.4).
这是我的 Vagrantfile 的全部内容,包括评论(以防万一):
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
<小时>
运行vagrant status
的结果:
Current machine states:
php5dot3 poweroff (virtualbox)
php5dot6 poweroff (virtualbox)
<小时>
运行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' 是我上周让多台机器工作之前在我的 Vagrantfile 中的单一框.(相关?)
'default' was the singular box I had in my Vagrantfile before I got multi-machines working last week. (Relevant?)
运行vagrant box list
的结果:
scotch/box (virtualbox, 2.0)
smallhadroncollider/centos-6.5-lamp (virtualbox, 1.0.0)
<小时>
任何帮助将不胜感激,谢谢.
Any help would be appreciated, thanks.
推荐答案
在您的机器定义中,您需要使用该机器的变量名称,而不是 config
.试试这个:
Inside of your machine definitions, you need to use the variable name of that machine, instead of config
. Try this out:
在下面的文件中,我将 config.vm
更改为 php5dot3.vm
或 php5dot6.vm
:
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
我还在 php5dot6
框的定义中添加了 autostart:false
,如果您愿意,可以将其删除.(这只是意味着运行 vagrant up
只会默认启动主服务器.
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.
这篇关于Vagrant 配置错误 - “必须指定一个框".的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!