Comment supprimer une boîte Vagrant du statut global après avoir supprimé cette boîte du système de fichiers?

87

//, j'ai supprimé un dossier contenant une boîte Vagrant en cours d'exécution avant de réaliser qu'elle était toujours en cours d'exécution.

Comment puis-je le supprimer de Vagrant (statut global) maintenant?

J'ai déjà supprimé la VM Virtualbox.

mettjus
la source
1
Que la VM Vagrant soit en cours d'exécution ou non n'a pas d'importance (j'ai récemment découvert cela). Même si la VM est arrêtée, si vous supprimez manuellement ses fichiers au lieu de l'exécuter vagrant destroy, vagrant global-statussignalera toujours le problème «état de l'hôte inconnu».
John Berberich

Réponses:

193

Pour vagrant global-statussupprimer les anciennes boîtes répertoriées dans (par exemple, vous avez supprimé le dossier contenant le répertoire .vagrantdu système de fichiers), il vous suffit d'exécuter:

vagrant global-status --prune

Vous devrez peut-être supprimer la machine virtuelle directement de l'interface de contrôle de votre fournisseur (VMWare, Virtualbox, ..).

Jon Dowdle
la source
J'ai créé le problème pour moi-même à l'envers: j'ai supprimé les fichiers de la machine virtuelle du fournisseur et j'ai également modifié le fichier Vagrant pour que la machine virtuelle ne fasse plus partie de la configuration Vagrant du projet. L' --pruneoption a également fonctionné pour mon scénario. Merci!
John Berberich
Cela a fonctionné pour moi uniquement à partir d'une machine virtuelle Vagrant en cours d'exécution existante.
Nikos Alexandris
1
Cela n'a pas fonctionné pour moi. J'ai dû modifier ~/.vagrant.d/data/machine-indexet supprimer manuellement l'entrée incriminée.
Dalin
Cela a fonctionné pour mon cas. Si vous changez le nom de votre machine et l'ancien (qui ne fonctionne plus) est toujours répertorié par vagrant global-status.
Dayron Gallardo
5

Je crois que le nouveau nom de fichier des données globales est ~/.vagrant.d.

Vous pouvez donc exécuter rm -r ~/.vagrant.dpour supprimer toutes les données utilisateur pour un nouveau départ.

Alex Phelps
la source
0

Pour mon cas: Où la cuisine et le dossier .kitchen / peuvent contenir des fichiers de vagabonds cachés créés par

$ kitchen create

Je dois aller plus loin que la destruction de la cuisine ou la destruction des vagabonds ou même la destruction des vagabonds machineID (de vagrant global-status - qui donne une liste d'instances vagabondes dans votre espace utilisateur.)

Dans mon cas, j'ai dû supprimer les fichiers de verrouillage de la machine vagrant contenus dans le répertoire caché des utilisateurs .vagrant.

$ rm -r ~/.vagrant/data

Et dans mon cas, je dois sudo la commande ci-dessus.

Puis je suis finalement arrivé à un nettoyage

$ vagrant global-status

liste

Terry J Fundak
la source
0

Vous utilisez vagrant global-statusd' abord pour lister toutes les machines vagabondes et leur statut et ids.

alors vous pouvez utiliser:

 vagrant destroy -f the_id_of_the_machine

après cela, si vous exécutez à vagrant global-statusnouveau, vous constaterez que l'id que vous avez spécifié dans la vagrant destroy -fcommande a été supprimé de la liste.

puis vous devrez peut-être redémarrer votre machine. Cependant, ces commandes n'affecteront pas vos boîtes.

Amr Aly
la source
0

Les commandes ci-dessus n'ont pas supprimé l'ancienne boîte dans mon cas sur une machine Windows. J'avais déjà supprimé le .vagrantdossier et la boîte du dossier du fournisseur de virtualbox mais la boîte était toujours dans le vagrant global-status list.

Comme mentionné dans le commentaire donné par une vagrant upcommande:

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.

J'ai donc tué ruby.exede la liste des processus et j'ai fait une suite vagrant global-status --prune.

Ulrich
la source