Wie entferne ich eine Vagrant-Box aus dem globalen Status, nachdem ich diese Box aus dem Dateisystem gelöscht habe?

87

// Ich habe einen Ordner gelöscht, der eine laufende Vagrant-Box enthält, bevor ich festgestellt habe, dass sie noch läuft.

Wie kann ich es jetzt aus Vagrant (globaler Status) löschen?

Ich habe die Virtualbox-VM bereits entfernt.

Mettjus
quelle
1
Ob die Vagrant-VM ausgeführt wird oder nicht, spielt keine Rolle (das habe ich kürzlich herausgefunden). Selbst wenn die VM gestoppt ist und Sie ihre Dateien manuell löschen, anstatt sie auszuführen vagrant destroy, vagrant global-statuswird weiterhin das Problem "Hoststatus unbekannt" gemeldet.
John Berberich

Antworten:

193

Um alte Felder zu verwerfen, die in aufgeführt sind vagrant global-status(z. B. Sie haben den Ordner mit dem .vagrantVerzeichnis aus dem Dateisystem gelöscht ), müssen Sie nur Folgendes ausführen:

vagrant global-status --prune

Möglicherweise müssen Sie die virtuelle Maschine direkt von der Steuerschnittstelle Ihres Providers (VMWare, Virtualbox, ..) entfernen.

Jon Dowdle
quelle
Ich habe das Problem in umgekehrter Reihenfolge für mich selbst erstellt: Ich habe die VM-Dateien vom Anbieter gelöscht und auch die Vagrant-Datei so geändert, dass die VM nicht mehr Teil der Vagrant-Konfiguration des Projekts war. Die --pruneOption funktionierte auch für mein Szenario. Vielen Dank!
John Berberich
Es funktionierte für mich nur innerhalb einer vorhandenen, von Vagrant bereitgestellten VM.
Nikos Alexandris
1
Hat bei mir nicht funktioniert. Ich musste ~/.vagrant.d/data/machine-indexden fehlerhaften Eintrag manuell bearbeiten und entfernen.
Dalin
Das hat bei meinem Fall funktioniert. Wenn Sie Ihren Computernamen ändern und der alte (der nicht mehr funktioniert) immer noch im vagabundierenden globalen Status aufgeführt ist.
Dayron Gallardo
5

Ich glaube, dass der neue Dateiname der globalen Daten ist ~/.vagrant.d.

Sie können also ausführen rm -r ~/.vagrant.d, um alle Benutzerdaten für einen Neustart zu löschen.

Alex Phelps
quelle
0

Für meinen Fall: Wo Küche und .kitchen / Ordner versteckte vagabundierende Dateien enthalten können, die von erstellt wurden

$ kitchen create

Ich muss weiter gehen als entweder Küchenvernichtung oder Vagabundzerstörung oder sogar Vagabundzerstörungs-Maschinen-ID (vom globalen Vagabundstatus - der eine Liste von Vagabundinstanzen in Ihrem Benutzerbereich enthält).

In meinem Fall musste ich die vagabundierenden Maschinensperrdateien im versteckten Verzeichnis des Benutzers .vagrant wegblasen.

$ rm -r ~/.vagrant/data

Und in meinem Fall muss ich den obigen Befehl sudo.

Dann bin ich endlich sauber geworden

$ vagrant global-status

aufführen

Terry J Fundak
quelle
0

Zuerst vagrant global-statuslisten Sie alle Vagabundmaschinen und ihren Status auf und ids.

dann können Sie verwenden:

 vagrant destroy -f the_id_of_the_machine

Wenn Sie danach vagrant global-statuserneut ausführen, werden Sie feststellen, dass die im vagrant destroy -fBefehl angegebene ID aus der Liste entfernt wurde.

und dann müssen Sie möglicherweise Ihren Computer neu starten. Diese Befehle wirken sich jedoch nicht auf Ihre Boxen aus.

Amr Aly
quelle
0

Die obigen Befehle haben die alte Box in meinem Fall auf einem Windows-Computer nicht entfernt. Ich hatte den .vagrantOrdner und die Box bereits aus dem Ordner des Virtualbox-Anbieters entfernt, aber die Box befand sich noch im vagrant global-status list.

Wie in dem Kommentar eines vagrant upBefehls erwähnt:

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.

Also habe ich ruby.exevon der Prozessliste getötet und eine nachfolgende gemacht vagrant global-status --prune.

ulrich
quelle