【问题标题】:How to switch Vagrant virtual machine?如何切换 Vagrant 虚拟机?
【发布时间】:2013-09-30 22:15:34
【问题描述】:

当我意识到我需要通过端口 8000 访问它来测试 Web 界面时,我正在使用 Vagrant 设置的虚拟机,所以我做了vagrant halt 以修改 Vagrantfile 并转发端口 8000我保存了文件并做了vagrant up 启动备份那台机器,令我惊讶的是,Vagrant 从头开始​​构建了一台新机器。现在,当我查看名为“VirtualBox VMs”的文件夹时,我可以看到两个具有相同名称的 VM + 一个不同的长数字。我相信一台是我想用我的所有包和设置启动的第一台机器,而另一台是新的空机器。 我怎样才能切换回第一个,所以当我执行vagrant up 时,它实际上会启动那个?以及可选的如何摆脱新的、空的?

【问题讨论】:

  • 确实应该有一个基于名称的方法来从 CLI 执行此操作...

标签: ubuntu virtualbox vagrant


【解决方案1】:

我的理解是每个 Vagrant 项目目录(Vagrantfile 的主页)都与 VirtualBox(默认提供程序)中由 vagrant 管理的虚拟机相关联。通常采用“baseboxname_id”的模式。

您的问题可能是由旧 Vagrant 版本中的错误引起的。请确保您运行的是最新的 Vagrant 1.3.3 + VirtualBox 4.2.18。或者,可能混淆了多个Vagrantfile(根据您的描述不太可能是这种情况)。

找出 vagrant box 的 ID

  1. 将目录更改为Vagrantfile 所在的位置
  2. 查看=>的内容 /path/to/Vagrantfile/.vagrant/.vagrant/machines/default/virtualbox/id, 你会得到一个像a90df491-4c25-4a07-be1a-be137908058c 这样的ID。

    注意:这 是与 Vagrantfile 关联的虚拟机的uuid 由 VirtulBox 管理。

摆脱新的/空的虚拟机

既然您知道了uuid,您可以unregister 虚拟机并将其删除 => VBoxManage unregistervm <uuid> --delete

Vagrantfile 与第一个虚拟机重新关联

  1. 获取 VirtualBox 管理的 VM 名称和 uuid 列表
  2. /path/to/Vagrantfile/.vagrant/.vagrant/machines/default/virtualbox/id中第一个VM的uuid替换id
  3. 启动第一个虚拟机 => vagrant up
  4. 完成!

【讨论】:

  • 很好的答案谢谢 :) 我的 vagrant 版本是 1.0.3-1ubuntu3,所以与您所说的版本(1.3.3)相比,它看起来有点过时,但因为它是 Ubuntu 存储库中可用的最新版本那我现在就这样吧。只是对您的答案的补充,要列出 VM,命令是 VBoxManage list vms 并且使用该信息确实可以在 vagrant 文件夹中切换 VM。
  • 自从 1.1+ vagrant 改变了它的分发方式,从 gem 到 OS 特定的包。对于 Ubuntu,只需使用 .deb(自包含)包,它易于管理,值得为新功能和错误修复付出努力。 downloads.vagrantup.com
【解决方案2】:

如上所述,使用以下内容收集所需的 vm id:

`vboxmanagevm list vms`

然后将 $vagrant_base_dir/.vagrant/machines/default/virtualbox/id 的内容替换为想要的 id。

上面没有提到的是文件需要是单行,不能有换行和回车: 尝试类似:

tr -d '\n' < id > id

这个花絮被发现How do I associate a Vagrant project directory with an existing VirtualBox VM?

希望这对找到它的人有所帮助。

【讨论】:

  • vboxmanagevm list vms 对我不起作用。也许这个答案有错别字,但vboxmanage list vms 有效。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-01-07
  • 1970-01-01
  • 2015-09-17
  • 2013-06-15
  • 1970-01-01
  • 2013-03-02
相关资源
最近更新 更多