gpt4 book ai didi

vagrant - 如何通过名称而不是 id 使环境 Vagrant 停止

转载 作者:行者123 更新时间:2023-12-04 13:54:27 24 4
gpt4 key购买 nike

从 Vagrant 文件:

vagrant halt [name|id]
假设 vagrant global-status 输出以下内容:
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 的目录并重试。
这与我 vagrant halt 时的输出相同在一个没有 Vagrantfile 的目录中。
那么,我可以按名字停止 Vagrant 吗,如果是,如何?
Windows 10 上的 Vagrant 2.2.14
Vagrant 文件摘录:
config.vm.hostname = "envname"
config.vm.define "envname"

最佳答案

我找不到这个问题的“干净”解决方案,所以我写了一个小 bash 函数来获取框 id从盒子name .

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。输出。

关于vagrant - 如何通过名称而不是 id 使环境 Vagrant 停止,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65135892/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com