¿Cómo puedo asociar un Vagabundo directorio del proyecto con un VirtualBox VM?

StackOverflow https://stackoverflow.com/questions/9434313

  •  12-11-2019
  •  | 
  •  

Pregunta

De alguna manera mi Vagrant proyecto se ha desvinculado de su VM VirtualBox, así que cuando me vagrant up Vagrant va a importar la base de la caja y crear una nueva máquina virtual.

Hay una manera de volver a asociar el Vagrant proyecto con el mv?¿Cómo Vagrant internamente asociar un Vagrantfile con un VirtualBox VM directorio?

¿Fue útil?

Solución

Advertencia: La solución a continuación funciona para Vagrant 1.0.x pero no Vagrant 1.1 +.

Vagrant usa el archivo ".vagant" en el mismo directorio que su "VagrantFile" para rastrear el UUID de su VM. Este archivo no existirá si una VM no existe. El formato del archivo es JSON. Parece esto si existe una sola máquina virtual:

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

default es el nombre de la máquina virtual predeterminada (si no está utilizando configuraciones de Multi-VM).

Si su VM se ha desmontado de alguna manera, lo que puede hacer es hacer VBoxManage list vms, lo que enumerará cada VM que VirtualBox sabe por su nombre y UUID. Luego, cree manualmente un archivo .vagrant en el mismo directorio que su Vagrantfile y complete el contenido correctamente.

Ejecute vagrant status para garantizar que el vagabundo haya recogido los cambios adecuados.

Nota: Esto no es compatible oficialmente por Vagrant y Vagrant puede cambiar el formato de .vagrant en cualquier momento. Pero esto es válido a partir de Vagrant 0.9.7 y será válido para Vagrant 1.0.

Otros consejos

para vagrant 1.6.3 Haz lo siguiente:

1) En el directorio donde se encuentra su archivo VagrantFile, ejecute el comando

VBoxManage list vms

Tendrás algo como esto:

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

2) Vaya a la siguiente ruta:

cd .vagrant/machines/default/virtualbox

3) Crear un archivo llamado id con el ID de su VM xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx

4) Guarde el archivo y ejecute vagrant up

La solución con la parte superior de la versión es la misma.

Pero en primer lugar usted necesita para iniciar el .vbox archivo con la mano para que aparezca en VBoxManage list vms

A continuación, puede ver la .vagrant/machines/default/virtualbox/id para comprobar que el uuid es el correcto.

Tenía la edición de hoy, mi .vagrant carpeta faltaba y encontró que había un par de pasos más de los que simplemente establecer el id:

  1. Establezca el id:

    VBoxManage list vms
    

    Encontrar el id y establecer en {project-folder}/.vagrant/machines/default/virtualbox/id.

    Tenga en cuenta que default puede ser diferente si se establece en su Vagrantfile por ejemplo, config.vm.define "someothername".

  2. Parada de la máquina de aprovisionamiento:

    Crear un archivo llamado action_provision en el mismo dir como el id archivo, establece que el contenido de: 1.5:{id} la sustitución de {id} con el id se encuentra en el paso 1.

  3. La instalación de una nueva clave pública/privada:

    Vagrant utiliza una clave privada almacenada en .vagrant/machines/default/virtualbox/private_key para ssh en la máquina.Necesita generar una nueva.

    ssh-keygen -t rsa
    

    nombre private_key.

    vagrant ssh a continuación, copie la private_key.pub en /home/vagrant/.ssh/authorized_keys.

Actualizar con el mismo problema hoy con Vagrant 1.7.4:

  • hilo útil en https://github.com/mitchellh/vagrant/issues/1755 y especialmente con los siguientes comandos:

    Por ejemplo, para parar la casilla 'vip-quickstart_default_1431365185830_12124' a Vagrant.

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

Para configuraciones de Multi-VM, se vería así:

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

Puede obtener los nombres de VM del archivo Vagrant que se usa para crear esos VMS.Busque esta línea:

config.vm.define :web do |web_config|

"Web" es el nombre de la VM en este caso.

Estoy usando vagant 1.8.1 en osx el capitan

Mi máquina virtual no se cerró correctamente cuando mi computadora se reinició, así que cuando intenté vagrant up, siempre estaba creando una nueva máquina virtual.No hay soluciones aquí trabajadas para mí.Pero, ¿qué funcionó fue una variación de respuesta de ingmmurillo

por lo que en lugar de crear .vagrant/machines/default/virtualbox/id basado en la ID de ejecución VBoxManage list vms.Tuve que actualizar la identificación en .vagrant/machines/local/virtual_box/id

Tengo un único forro que esencialmente hace esto para mí:

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

Esto supone que el primer cuadro es el que necesito para comenzar desde la ejecución de VBoxManage list vms

en Vagrant 1.9.1:

Tuve una máquina virtual en la casilla virtual llamada 'Ubuntu 16.04.1', así que lo empaqueté como una caja Vagrant con:

vagrant package --base "Ubuntu 16.04.1"

responde con ...

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

Esto se modifica desde la respuesta de Petecoop .

ejecutar vagrant halt si aún no ha apagado la caja.

Luego enumere sus virtuales: VBoxManage list vms

Enumerará todas sus cajas virtuales. Identifique la casilla con la que desea volver y agarrar la identificación entre los soportes rizados: {}.

Luego edite el archivo ID de proyecto: sudo nano .vagrant/machines/default/virtualbox/id (desde el directorio del proyecto)

Reemplácelo con la identificación que copió de la lista de VBS.

Intente vagrant reload.

Si eso no funciona y se coloca en la autorización de SSH (donde me topé), copie la clave pública insegura de la git vagant . Reemplace el contenido de /.vagrant/machines/default/virtualbox/private_key. Copia de seguridad del original, por supuesto: cp private_key private_key-bak.

Luego ejecute vagrant reload. DIGA QUE ES IDENTIFICADO LA CLAVE INSEGURADA Y CREAR UNA NUEVO.

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!

Deberías estar todo configurado.

Estoy en MacOS y encontré que eliminar los bloques en las cajas resolví mi problema.

por alguna razón

vagrant halt

No eliminó estos bloqueos, y después de restaurar todas mis ajustes en .vagrant / Machine / Predeterminado / VirtualBox usando timemachine, eliminando las cerraduras, la máquina derecha se arrancó.

Solo 1 problema menor queda, se inició en Grub, así que tuve que presionar Entrar una vez, no sé si se queda, pero lo descubriré lo suficientemente pronto.

Estoy ejecutando Vagrant 1.7.4 y VirtualBox 5.0.2

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top