gpt4 book ai didi

Dropbox 上的 Vagrant .vagrant 文件

转载 作者:行者123 更新时间:2023-12-02 12:07:47 26 4
gpt4 key购买 nike

我在两台机器(家庭和办公室)上使用 Vagrant,我的工作目录存储在 Dropbox 中。我经常遇到这样的问题:

The VirtualBox VM was created with a user that doesn't match the
current user running Vagrant. VirtualBox requires that the same user
be used to manage the VM that was created. Please re-run Vagrant with
that user. This is not a Vagrant issue.

通过rm -rf .vagrant很容易解决这个问题,但我想找到一个更优雅的解决方案——比如一种轻松自动化的方式来放置 .vagrant 文件别处。

更新

场景如下:通过 Dropbox 在办公室和家庭计算机之间共享工作目录。

  1. 我成功地在办公计算机上vagrant up
  2. 我关闭办公室机器并回家。
  3. 我收到有关 vagrant up 的消息,表示 id 值与我创建时的值不同。 (一般为 503 与 501)
  4. 我成功地执行了 rm -rf .vagrant 并再次执行了 vagrant up
  5. 当我回到办公室时,同样的问题。

最佳答案

关于原来的问题

I get the message about on vagrant up, saying the id values aren't the same as when I created. (503 vs 501 in general)

您可以通过在以下文件 .vagrant\machines\default\virtualbox\creator_uid 中编辑您的 UID 来修复此问题并将 501/503 更改为 0。(0 表示您以 sudo 身份运行)

但我认为另一个会出现的问题是,您的每台计算机都在创建自己的虚拟机并将其存储在您的 /Users/user/Documents/Virtual Machines 下并且您没有共享这些文件。

当您使用 VirtualBox 创建虚拟机时,vb 将分配虚拟机和 id - 此 id 是关键,它将在 vagrant 和 vb 之间建立链接。当您创建 2 个不同的 VM 时,VM 具有不同的 ID,并且 vagrant 无法在这 2 个 VM 之间切换。

希望到目前为止这已经很清楚了,但是如何从那里开始 - 您将有几个选择:

  1. 显然您不太介意虚拟机的内容(就像您rm -rf一样,因此每次切换计算机时都会重新创建虚拟机),因此您可以创建一个.vagrant.home.vagrant.office并切换 .vagrant当你更换机器时指向相应的文件夹,这样至少你不需要重新创建VM,你可以从相应的计算机启动VM。这并不理想,但会起作用。

  2. 您可以避免切换 .vagrant通过设置环境变量 VAGRANT_CWD 从上述点目录中,这样您就不会存储 .vagrant您的 dropbox 帐户下有一个 .vagrant 目录,但您可以使用一个脚本来导出此变量并将 .vagrant 目录单独存储在每台计算机上(不共享的文件夹),以便每台计算机都将创建自己的虚拟机。您可以拥有VAGRANT_CWD如果您计划有不同的位置,请在每台计算机的 bash 配置文件中设置,但您也可以有例如 workhere.sh脚本就可以 export VAGRANT_CWD=/folder...如果两台计算机上的设置相同,只需执行 source workhere在此之前vagrant up

  3. 另一个选项(我没有测试)将涉及几个步骤:从 VirtualBox 创建的虚拟机导出/导入到一台计算机到另一台计算机。这里的问题是保留 Id。我不确定,但通常当您导入到另一台计算机时,虚拟盒子应该保留 Id。

    • 您可以查看/Users/<user>/Library/VirtualBox/VirtualBox.xml下的文件并查看 <MachineRegistry> 下的条目,您将获得机器条目的 uuid,确保导出/导入后它们在您的 2 台计算机之间匹配
    • 对于 vagrant,您还需要在两台计算机之间同步另一个文件 /Users/<user>/.vagrant.d/data/machine-index/index计算机上可用 VM 的列表。如果一台计算机上有其他虚拟机在另一台计算机上不可用,则可以进行同步,但最好只复制要同步的虚拟机的必要条目。

完成此操作并同步 .vagrant 后文件夹,您应该能够 vagrant up从一台计算机或另一台计算机。

同样,我没有测试所有步骤,但我认为这会起作用。

一些注释:

  • 仅当两台计算机具有相同的设置(相同的操作系统(如果不是版本至少相同系列)、文件夹结构(因为某些文件涉及完整路径)、相同的虚拟盒版本...)时,此操作才有效
  • vagrant box 应该在两台计算机上同步(但我认为是这样,因为你可以从同一个 Vagrantfile 进行 vagrant up)
  • 如果您在任何计算机上销毁/创建虚拟机,则需要再次同步 ID,因为每次创建新虚拟机时,虚拟盒都会分配一个新 ID

关于Dropbox 上的 Vagrant .vagrant 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36160239/

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