如何通过名称而不是id来阻止环境



来自流浪者文档:

vagrant halt [name|id]

假设流浪者全局状态输出如下:

id       name    provider   state    directory
------------------------------------------------
6e16e1a  envname virtualbox running  D:/git/envname

因此,从包含Vagrantfile的目录之外,我应该能够用停止这台机器

vagrant halt 6e16e1a #works!

以及

vagrant halt envname #doesn't work!

错误消息:

运行此命令需要Vagrant环境或目标计算机。运行vagrant init以创建一个新的Vagrant环境。或者,从vagrant global-status获取目标计算机的ID以在其上运行此命令。最后一个选项是更改到包含Vagrantfile的目录,然后重试

这与在没有Vagrantfile的目录中vagrant halt时的输出相同。

那么,我能叫个名字停下来吗?如果可以,怎么停?

Windows 10 上的Vagrant 2.2.14

流浪者档案摘录:

config.vm.hostname = "envname"
config.vm.define "envname"

我找不到一个"干净";这个问题的解决方案,所以我写了一个小bash函数来从盒子name中获得盒子id

function vgid() {
BOX_NAME=$1
BOX_ID=$(vagrant global-status --prune | grep $BOX_NAME | awk '{print $1}')
echo $BOX_ID
}

使用这个功能,我现在可以在如下命令中使用盒子的名称:

vagrant up $(vgid name)

这不是我最喜欢的解决方案,但它确实有效,我更喜欢它从global-status输出中复制粘贴ID。

相关内容

  • 没有找到相关文章

最新更新