Come rimuovo una casella Vagrant dallo stato globale, dopo aver cancellata quella casella dal filesystem?


87

Ho eliminato una cartella contenente una scatola Vagrant in esecuzione prima di rendermi conto che era ancora in esecuzione.

Come posso eliminarlo da Vagrant (global-status) ora?

Ho già rimosso la VM Virtualbox.


1
Se la VM Vagrant è in esecuzione o meno, non importa (l'ho scoperto di recente). Anche se la VM viene arrestata, se elimini manualmente i suoi file invece di eseguirla vagrant destroy, vagrant global-statussegnalerà comunque il problema di "stato host sconosciuto".
John Berberich

Risposte:


195

Per scartare le vecchie caselle elencate in vagrant global-status(es. Hai cancellato la cartella contenente la .vagrantdir dal filesystem) devi solo eseguire:

vagrant global-status --prune

Potrebbe essere necessario rimuovere la macchina virtuale direttamente dall'interfaccia di controllo del provider (VMWare, Virtualbox, ..).


Ho creato il problema per me stesso al contrario: ho eliminato i file della VM dal provider e ho anche cambiato il Vagrantfile in modo che la VM non facesse più parte della configurazione Vagrant del progetto. L' --pruneopzione ha funzionato anche per il mio scenario. Grazie!
John Berberich

Ha funzionato per me solo dall'interno di una VM con provisioning Vagrant in esecuzione esistente.
Nikos Alexandris

1
Non ha funzionato per me. Ho dovuto modificare ~/.vagrant.d/data/machine-indexe rimuovere manualmente la voce incriminata.
Dalin

Questo ha funzionato per il mio caso. Se cambi il nome della tua macchina e quella vecchia (che non funziona più) è ancora elencata per vagrant global-status.
Dayron Gallardo

6

Credo che il nuovo nome file dei dati globali sia ~/.vagrant.d.

Quindi puoi correre rm -r ~/.vagrant.da cancellare tutti i dati utente per un nuovo inizio.


0

Per il mio caso: dove cucina e .kitchen / cartella possono contenere file vagabondi nascosti creati da

$ kitchen create

Devo andare oltre la distruzione della cucina o la distruzione del vagabondo o anche la distruzione del vagabondo machineID (dallo stato globale vagabondo - che fornisce un elenco di istanze vagabonde nel tuo spazio utente).

Nel mio caso, ho dovuto spazzare via i file di blocco della macchina vagabondi contenuti nella directory nascosta .vagrant degli utenti.

$ rm -r ~/.vagrant/data

E nel mio caso ho bisogno di sudo il comando precedente.

Poi finalmente ho avuto modo di pulire

$ vagrant global-status

elenco


0

Per prima cosa usi vagrant global-statusper elencare tutte le macchine vagabonde e il loro stato e ids.

allora puoi usare:

 vagrant destroy -f the_id_of_the_machine

dopodiché se esegui di vagrant global-statusnuovo troverai che l'id che hai specificato nel filevagrant destroy -f comando è stato rimosso dalla lista.

e quindi potrebbe essere necessario riavviare la macchina Tuttavia questi comandi non influenzeranno le tue caselle.


0

I comandi precedenti non hanno rimosso la vecchia scatola nel mio caso su una macchina Windows. Avevo già rimosso la .vagrantcartella e la casella dalla cartella del provider di virtualbox ma la casella era ancora nel file vagrant global-status list.

Come accennato nel commento dato da 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.

Quindi ho ucciso ruby.exedall'elenco dei processi e ho fatto un successivo vagrant global-status --prune.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.