如何关联与现有的VirtualBox虚拟机中的流浪项目目录?如何关联与现有的VirtualBox虚拟

2019-05-12 21:09发布

不知怎的,我的流浪项目已解除关联本身从它的VirtualBox虚拟机,这样,当我vagrant up无业游民将导入的基础,然后创建一个新的虚拟机。

有没有一种方法,以与现有的虚拟机的流浪项目重新关联? 如何流浪内部一个Vagrantfile与VM VirtualBox虚拟目录相关联?

Answer 1:

警告:下面的流浪1.0.x的作品中的解决方案,但放浪1.1+。

流浪使用“.vagrant”文件在同一目录作为你的‘Vagrantfile’来追踪你的虚拟机的UUID。 如果虚拟机不存在此文件将不会存在。 该文件的格式是JSON。 它看起来像这样,如果一个虚拟机存在:

{
   "active":{
      "default":"02f8b71c-75c6-4f33-a161-0f46a0665ab6"
   }
}

default是默认的虚拟机的名称(如果你不使用多VM设置)。

如果你的虚拟机已经俨然成为关联,你所能做的就是做VBoxManage list vms将列出所有VM VirtualBox的是知道它的名字和UUID。 然后手动创建一个.vagrant在相同的目录中的文件Vagrantfile和内容正确填写。

运行vagrant status ,以确保流浪拿起适当的改变。

注意:这不是正式流浪汉,流浪汉的支持可能会改变的格式.vagrant在任何时间。 但是,这是流浪0.9.7的有效,有效期为流浪1.0。



Answer 2:

对于流浪1.6.3做到以下几点:

1)在你的Vagrantfile所在的目录,运行命令

VBoxManage list vms

你会是这样的:

"virtualMachine" {xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}

2)转到以下路径:

cd .vagrant/machines/default/virtualbox

3)你的虚拟机XXXXXXXXXXXX-XXXXXXXX-XXXXXXXXXXXX的ID创建一个名为ID文件

4)保存文件并运行了流浪汉



Answer 3:

与上版本的解决方案是完全一样的。

但首先,你需要启动手工.vbox文件,以便它出现在VBoxManage list vms

然后,你可以检查.vagrant/machines/default/virtualbox/id来检查UUID是正确的。



Answer 4:

有问题的今天,我.vagrant文件夹不见了,发现有比简单地设置id几个步骤:

  1. 设置ID:

     VBoxManage list vms 

    查找ID和设置{project-folder}/.vagrant/machines/default/virtualbox/id

    请注意, default ,如果在你的设置可能会有所不同Vagrantfileconfig.vm.define "someothername"

  2. 从供应停止机器:

    创建一个文件名为action_provision在同一目录的id文件,设置它的内容: 1.5:{id}替换{id}在步骤1中找到的ID。

  3. 设置一个新的公共/私有密钥:

    流浪使用存储在私有密钥.vagrant/machines/default/virtualbox/private_key ssh到机器。 你需要生成一个新的。

     ssh-keygen -t rsa 

    它命名为private_key

    vagrant ssh然后将复制private_key.pub/home/vagrant/.ssh/authorized_keys



Answer 5:

用同样的问题今天流浪1.7.4更新:

  • 在有用的线索https://github.com/mitchellh/vagrant/issues/1755并特意用下面的命令:

例如,配对盒“VIP-quickstart_default_1431365185830_12124”来流浪。

$ VBoxManage list
"vip-quickstart_default_1431365185830_12124" {50feafd3-74cd-40b5-a170-3c976348de27}
$ echo -n "50feafd3-74cd-40b5-a170-3c976348de27" > .vagrant/machines/default/virtualbox/id


Answer 6:

对于多虚拟机的设置,它应该是这样的:

{
   "active":{
        "web":"a1fc9ae4-5d43-49cb-be31-ab3c4f74745d",
        "db":"13503bc5-76b8-4c26-95c4-32435b372212"
   }
}

你可以得到虚拟机名称从Vagrantfile用于创建这些虚拟机。 寻找这一行:

config.vm.define :web do |web_config|

“网络”在这种情况下,虚拟机的名称。



Answer 7:

我在OSX埃尔卡皮坦使用放浪1.8.1

我的虚拟机没有正确关闭我的计算机重新启动时,所以当我试图vagrant up它总是创建新的虚拟机。 没有解决方案在这里为我工作。 但是,没有工作是一个变化ingmmurillo的回答

因此,而不是创造.vagrant/machines/default/virtualbox/id基于从运行ID VBoxManage list vms 。 我不得不更新的ID .vagrant/machines/local/virtual_box/id

我有一个衬垫,基本上做到这一点对我来说:

echo -n `VBoxManage list vms | head -n 1 | awk '{print substr($2, 2, length($2)-2)}'` > .vagrant/machines/local/virtualbox/id

这是假设第一个框是一个我需要从运行开始VBoxManage list vms



Answer 8:

在流浪1.9.1:

我有一个VM在一个名为“Ubuntu的16.04.1”虚拟盒,所以我包装它​​作为一个流浪汉框:

vagrant package --base "Ubuntu 16.04.1"

做为回应...

==> Ubuntu 16.04.1: Exporting VM...
==> Ubuntu 16.04.1: Compressing package to: blah blah/package.box


Answer 9:

这是从修改@ Petecoop的答案 。

运行vagrant halt ,如果您还没有关闭箱呢。

然后列出您的virtualboxes: VBoxManage list vms

它会列出所有你virtualboxes的。 标识要恢复到框,抓住大括号中的ID: {}

然后编辑该项目的ID文件: sudo nano /.vagrant/machines/default/virtualbox/id

与您的VBS列表复制ID替换它。

尝试vagrant reload

如果不工作,并得到挂在SSH授权 (在这里我迷迷糊糊),复制从不安全的公共密钥颠沛流离的git 。 更换的内容/.vagrant/machines/default/virtualbox/private_key 。 当然,备份原: cp private_key private_key-bak

然后运行vagrant reload 。 它会说这是确定的不安全的关键,并创建一个新的。

default: Vagrant insecure key detected. Vagrant will automatically replace
default: this with a newly generated keypair for better security.
default: Inserting generated public key within guest...
default: Removing insecure key from the guest if it's present...
default: Key inserted! Disconnecting and reconnecting using new SSH key...
==> default: Machine booted and ready!

您应该所有设置。



Answer 10:

我在MacOS,发现箱子上取下.locks解决我的问题。

由于某些原因

vagrant halt

没有删除这些锁,并且使用时间机器在.vagrant /机/默认/ VirtualBox的恢复我的所有设置,去掉锁后,正确的机器启动了。

只有1名未成年人问题依然存在,它启动到GRUB,所以我不得不按回车一次,如果这是住不知道,但我会发现很快。

我运行游民1.7.4和5.0.2的VirtualBox



文章来源: How do I associate a Vagrant project directory with an existing VirtualBox VM?