¿Cómo elimino una caja Vagrant del estado global, después de eliminar esa caja del sistema de archivos?

87

//, eliminé una carpeta que contenía un cuadro Vagrant en ejecución antes de darme cuenta de que todavía se estaba ejecutando.

¿Cómo puedo eliminarlo de Vagrant (estado global) ahora?

Ya eliminé la VM Virtualbox.

mettjus
fuente
1
No importa si Vagrant VM se está ejecutando o no (recientemente descubrí esto). Incluso si la máquina virtual está detenida, si elimina manualmente sus archivos en lugar de ejecutarlos vagrant destroy, vagrant global-statusseguirá informando el problema de "estado de host desconocido".
John Berberich

Respuestas:

194

Para descartar las cajas antiguas enumeradas en vagrant global-status(por ejemplo, eliminó la carpeta que contiene el .vagrantdirectorio del sistema de archivos) solo necesita ejecutar:

vagrant global-status --prune

Es posible que deba eliminar la máquina virtual directamente de la interfaz de control de su proveedor (VMWare, Virtualbox, ..).

Jon Dowdle
fuente
Creé el problema para mí al revés: eliminé los archivos de la VM del proveedor y también cambié el Vagrantfile para que la VM ya no formara parte de la configuración Vagrant del proyecto. La --pruneopción también funcionó para mi escenario. ¡Gracias!
John Berberich
Me funcionó solo desde el interior de una VM aprovisionada por Vagrant en ejecución.
Nikos Alexandris
1
No funcionó para mí. Tuve que editar ~/.vagrant.d/data/machine-indexy eliminar manualmente la entrada ofensiva.
Dalin
Esto funcionó para mi caso. Si cambia el nombre de su máquina y la anterior (que ya no funciona) seguirá listada por vagrant global-status.
Dayron Gallardo
6

Creo que el nuevo nombre de archivo de los datos globales es ~/.vagrant.d.

De modo que puede ejecutar rm -r ~/.vagrant.dpara eliminar todos los datos del usuario para comenzar de nuevo.

Alex Phelps
fuente
0

Para mi caso: donde la cocina y la carpeta .kitchen / pueden contener archivos vagabundos ocultos creados por

$ kitchen create

Necesito ir más allá de la destrucción de la cocina o la destrucción vagabunda o incluso la destrucción vagabunda de machineID (del estado global vagabundo, que proporciona una lista de instancias vagabundas en su espacio de usuario).

En mi caso, tuve que eliminar los archivos de bloqueo de la máquina vagabundos contenidos en el directorio oculto .vagrant de los usuarios.

$ rm -r ~/.vagrant/data

Y en mi caso necesito sudo el comando anterior.

Entonces finalmente llegué a una limpieza

$ vagrant global-status

lista

Terry J Fundak
fuente
0

Primero usa vagrant global-statuspara listar todas las máquinas vagabundas y su estado y ids.

entonces puedes usar:

 vagrant destroy -f the_id_of_the_machine

después de eso, si vagrant global-statusvuelve a ejecutar , encontrará que la identificación que ha especificado en el vagrant destroy -fcomando se ha eliminado de la lista.

y luego es posible que deba reiniciar su máquina. Sin embargo, estos comandos no afectarán sus cajas.

Amr Aly
fuente
0

Los comandos anteriores no eliminaron la caja anterior en mi caso en una máquina con Windows. Ya había eliminado la .vagrantcarpeta y el cuadro de la carpeta del proveedor de virtualbox, pero el cuadro todavía estaba en el vagrant global-status list.

Como se menciona en el comentario dado por un vagrant upcomando:

If you believe this message is in error, please check the process
listing for any "ruby" or "vagrant" processes and kill them. Then
try again.

Así que maté ruby.exede la lista de procesos e hice una subsiguiente vagrant global-status --prune.

ulrich
fuente