Dropbox上的Vagrant.Vagrant文件
我在两台机器(家庭和办公室)上使用Vagrant,我的工作目录存储在Dropbox中。我经常遇到这样的问题:Dropbox上的Vagrant.Vagrant文件,vagrant,dropbox,vagrantfile,Vagrant,Dropbox,Vagrantfile,我在两台机器(家庭和办公室)上使用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 Vagr
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共享一个工作目录
vagrant up
上收到一条消息,说id
值与我创建时的值不同。(一般来说,503对501)rm-rf.vagrant
和vagrant up
.vagrant\machines\default\virtualbox\creator\u UID
中的UID并将501/503更改为0来修复此问题。(0表示您以sudo身份运行)
但我认为另一个问题是,您的每台计算机都在创建自己的VM,并将其存储在您的/Users/user/Documents/Virtual machines
下,而您没有共享这些文件
当您使用VirtualBox创建虚拟机时,vb将分配虚拟机和id-此id是关键,并将在vagrant和vb之间建立链接。当您创建两个不同的虚拟机时,虚拟机具有不同的Id,vagrant无法在这两个虚拟机之间切换
希望到目前为止这是清楚的,但如何从那里开始-您将有两个选择:
rm-rf
,因此每次切换计算机时都会重新创建虚拟机)因此,您可以创建.vagrant.home
和.vagrant.office
并在更改计算机时切换.vagrant
指向相应的文件夹,这样至少您不需要重新创建虚拟机,只需从相应的计算机启动虚拟机即可。这并不理想,但会奏效.vagrant
目录,这样您就不会在dropbox帐户下存储.vagrant
目录,但您可以使用一个脚本导出此变量并在每台机器上分别存储.vagrant目录(一个未共享的文件夹),因此每台计算机将创建自己的VM。
如果您计划使用不同的位置,您可以在bash配置文件中为每台计算机设置VAGRANT_CWD
,但是您也可以使用workhere.sh
脚本,该脚本将只执行导出VAGRANT_CWD=/folder…
如果您在两台计算机上都有相同的设置,并且只执行源代码>在此之前的工作你是流浪者吗
- 您可以在
下检查文件,并查看/Users//Library/VirtualBox/VirtualBox.xml
下的条目,您将获得机器条目的uuid,确保导出/导入后两台计算机之间的uuid匹配 - 对于vagrant,您需要在两台计算机之间同步另一个文件
,该文件列出了计算机上可用的VM。如果一台计算机上有其他VM,而另一台计算机上没有,则可以同步,但最好只复制要同步的VM的必要条目/Users///.vagrant.d/data/machine index/index
.vagrant
文件夹后,您应该能够从一台或另一台计算机上执行vagrant up
同样,我没有测试所有的步骤,但我认为这是可行的
几点注意:
- 仅当两台计算机具有相同的设置(相同的操作系统(如果不是版本,则至少具有相同的系列)、文件夹结构(因为某些文件涉及完整路径)、相同的虚拟盒版本…)时,此功能才起作用
- vagrant box应该在两台计算机上同步(但我假设是这样的,因为您可以从同一个vagrant文件中漫游)
- 如果在任何计算机上销毁/创建虚拟机,则需要再次同步该Id,因为每次创建新虚拟机时,virtual box都会分配一个新Id
- Vagrant为这个用例提供了一个环境变量:
Vagrant\u DOTFILE\u PATH
请参阅此处的文档:
VAGRANT\u DOTFILE\u路径
VAGRANT\u DOTFILE\u PATH
可以设置为更改VAGRANT存储VM特定状态的目录,例如VirtualBox VM UUID。默认情况下,这设置为.VAGRANT
。如果您将VAGRANT文件保存在Dropbox文件夹中,以便在台式机和笔记本电脑之间共享该文件夹(例如),Vagrant将使用最近使用的主机上的VM的详细信息覆盖此目录中的文件。为避免此情况,您可以将Vagrant\u DOTFILE\u PATH
设置为。Vagrant膝上型电脑
和。Vagrant桌面
(请记住更新您的.gitignore
!)
什么时候会发生这种情况?当您运行
vagrant up
时?为了弄清楚您的。vagrant
目录在dropbox中,而不是vm?您的vm也在dropbox中吗?virtual box的问题是vm位于一个中央文件夹中(如mac的/Users/user/Documents/virtual Machines
)(例如,vmware将虚拟机存储在.vagrant
目录中,这比在