instalar curso virtualbox vagrant

curso - ¿Cómo asocio un directorio de proyecto Vagrant con una máquina VirtualBox VM existente?



curso vagrant (10)

Actualice con el mismo problema hoy con Vagrant 1.7.4:

Por ejemplo, para emparejar el cuadro ''vip-quickstart_default_1431365185830_12124'' con el vagabundo.

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

De alguna manera, mi proyecto Vagrant se ha desasociado de su VirtualBox VM, de modo que cuando vagrant up Vagrant importará el cuadro base y creará una nueva máquina virtual.

¿Hay alguna manera de volver a asociar el proyecto Vagrant con la máquina virtual existente? ¿Cómo asocia internamente Vagrant un Vagrantfile con un directorio de VirtualBox VM?


En Vagrant 1.9.1:

Tenía una VM en Virtual Box llamada ''Ubuntu 16.04.1'' así que la empaqué como una caja vagabunda 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 .

Ejecuta el vagrant halt si aún no has cerrado la caja.

A continuación, enumere sus virtualboxes: VBoxManage list vms

Aparecerá una lista de todas tus cajas virtuales. Identifique la caja a la que desea revertir y agarre la identificación entre las llaves: {} .

A continuación, edite el archivo de id del proyecto: sudo nano /.vagrant/machines/default/virtualbox/id

Reemplácelo con el ID que copió de la lista de VB.

Prueba la vagrant reload .

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

Luego ejecuta la vagrant reload . Dirá que ha identificado la clave insegura y crea una nueva.

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 listo.


Estoy en macos y descubrí que quitar los bloqueos de las cajas resolvió mi problema.

Por alguna razón

vagrant halt

no eliminé estos bloqueos, y después de restaurar todos mis ajustes en .vagrant / machine / default / virtualbox usando timemachine, quitando los bloqueos, se encendió la máquina correcta.

Solo queda 1 problema menor, se inició en grub, así que tuve que presionar Enter una vez, no sé si esto se está quedando, pero lo averiguaré lo suficientemente pronto.

Estoy ejecutando vagabundo 1.7.4 y virtualbox 5.0.2


Estoy usando Vagrant 1.8.1 en OSX El Capitan

Mi VM no se cerró correctamente cuando mi computadora se reinició, así que cuando intenté vagrant up , siempre estaba creando una nueva vm. Aquí no funcionó ninguna solución para mí. Pero lo que sí funcionó fue una variación de la respuesta de ingmmurillo

Por lo tanto, en lugar de crear .vagrant/machines/default/virtualbox/id basado en el ID, ejecute VBoxManage list vms . Tuve que actualizar la identificación en .vagrant/machines/local/virtual_box/id

Tengo un trazador de líneas 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 ejecutando VBoxManage list vms


La solución con la versión superior es bastante similar.

Pero primero debe iniciar el archivo .vbox a mano para que aparezca en la VBoxManage list vms

Luego puede verificar .vagrant/machines/default/virtualbox/id para verificar que el uuid es el correcto.


Para Vagrant 1.6.3 haga lo siguiente:

1) En el directorio donde está ubicado su Vagrantfile, ejecute el comando

VBoxManage list vms

Tendrás algo como esto:

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

2) Ir a la siguiente ruta:

cd .vagrant/machines/default/virtualbox

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

4) Guarde el archivo y ejecute vagabundo


Para configuraciones multi-VM, se vería así:

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

Puede obtener los nombres vm del Vagrantfile utilizado para crear esas máquinas virtuales. Busque esta línea:

config.vm.define :web do |web_config|

"web" es el nombre de la vm en este caso.


Tuve el problema hoy, mi carpeta .vagrant faltaba y descubrí que había algunos pasos más que simplemente configurar el id.

  1. Establecer la identificación:

    VBoxManage list vms

    Encuentre la identificación y configure {project-folder}/.vagrant/machines/default/virtualbox/id .

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

  2. Detenga el aprovisionamiento de la máquina:

    Cree un archivo llamado action_provision en el mismo directorio que el archivo id , establezca su contenido en: 1.5:{id} reemplazando {id} con la identificación que se encuentra en el paso 1.

  3. Configure una nueva clave pública / privada:

    Vagrant usa una clave privada almacenada en .vagrant/machines/default/virtualbox/private_key ssh a la máquina. Necesitarás generar uno nuevo.

    ssh-keygen -t rsa

    nombrarlo private_key .

    vagrant ssh luego copie el /home/vagrant/.ssh/authorized_keys en /home/vagrant/.ssh/authorized_keys .


ADVERTENCIA: la siguiente solución funciona para Vagrant 1.0.x pero no para Vagrant 1.1+.

Vagrant usa el archivo ".vagrant" en el mismo directorio que su "Vagrantfile" para rastrear el UUID de su máquina virtual. Este archivo no existirá si una VM no existe. El formato del archivo es JSON. Se ve así 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 varias máquinas virtuales).

Si su máquina virtual se ha desasociado de alguna manera, lo que puede hacer es hacer VBoxManage list vms que enumerará todas las VBoxManage list vms que VirtualBox conoce por su nombre y UUID. Luego, cree manualmente un archivo .vagrant en el mismo directorio que su Vagrantfile y complete los contenidos correctamente.

Ejecuta el vagrant status para asegurarte de que Vagrant recogió los cambios adecuados.

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