如果已经Up,则提供Vagrant Up或Provision

时间:2013-08-06 22:41:03

标签: batch-file vagrant

我需要创建一个简单的脚本(Windows .bat)来配置或打开一个盒子。

对.bat文件没什么经验,所以这是我到目前为止所做的:

感谢Greg Hewgill

cd C:\vagrant-box\

call vagrant-up.bat

if errorlevel 1 call vagrant-provision.bat

脚本中的.bat文件call只包含一行:vagrant upvagrant reload

当流浪盒倒塌时,流浪者成功运行。启动时,我遇到了vagrant up(我期望)的错误,但整个批处理文件在那里死亡。 ErrorLevel似乎没有做任何事情。


如果有所不同,则出现错误

Bringing machine 'default' up with 'virtualbox' provider...
There was an error while executing `VBoxManage`, a CLI used by Vagrant
for controlling VirtualBox. The command and stderr is shown below.

Command: ["list", "hostonlyifs"]

Stderr: VBoxManage.exe: error: Failed to create the VirtualBox object!
VBoxManage.exe: error: Code CO_E_SERVER_EXEC_FAILURE (0x80080005) - Server execution failed (extend)
VBoxManage.exe: error: Most likely, the VirtualBox COM server is not running or failed to start.

我想强调我不关心错误本身。当盒子没有运行时它可以工作,所以没关系。我只想捕获或忽略它,然后转到下一个命令。

2 个答案:

答案 0 :(得分:2)

vagrant up退出时代码为0,即使机器已在运行。

但是你不必费心去掉退出代码,你可以运行:

vagrant provision && vagrant up

你应该涵盖这两种情况。如果访客未运行,vagrant provision将正常失败,vagrant up将成功,反之亦然。

答案 1 :(得分:1)

请发布你的vagrant-up.bat。

另外,试试这个: vagrant up --debug

和/或

VAGRANT_LOG=debug vagrant <action>

更多关于COM / VBox问题的细节。