Bagaimana cara menghapus kotak gelandangan dari status global, setelah menghapus kotak itu dari sistem berkas?

87

Saya menghapus folder yang berisi kotak Vagrant yang sedang berjalan sebelum menyadarinya masih berjalan.

Bagaimana saya bisa menghapusnya dari Vagrant (status global) sekarang?

Saya sudah menghapus VM Virtualbox.

mettjus
sumber
1
Apakah Vagrant VM sedang berjalan atau tidak tidak masalah (saya baru-baru ini menemukan ini). Meskipun VM dihentikan, jika Anda menghapus file secara manual dan bukan menjalankannya vagrant destroy, vagrant global-statusakan tetap melaporkan masalah "status host tidak diketahui".
John Berberich

Jawaban:

195

Untuk membuang kotak lama yang terdaftar di vagrant global-status(mis. Anda menghapus folder yang berisi .vagrantdir dari sistem berkas) Anda hanya perlu menjalankan:

vagrant global-status --prune

Anda mungkin perlu menghapus Mesin Virtual langsung dari antarmuka kontrol penyedia Anda (VMWare, Virtualbox, ..).

Jon Dowdle
sumber
Saya membuat masalah untuk diri saya sendiri secara terbalik: Saya menghapus file VM dari penyedia, dan juga mengubah Vagrantfile sehingga VM tidak lagi menjadi bagian dari konfigurasi Vagrant proyek. The --prunepilihan bekerja untuk skenario saya juga. Terima kasih!
John Berberich
Ini bekerja untuk saya hanya dari dalam VM yang disediakan Vagrant yang sudah ada.
Nikos Alexandris
1
Tidak berhasil untuk saya. Saya harus mengedit ~/.vagrant.d/data/machine-indexdan menghapus entri yang melanggar secara manual .
Dalin
Ini berhasil untuk kasus saya. Jika Anda mengubah nama mesin Anda dan yang lama (yang tidak berfungsi lagi) masih terdaftar oleh status global gelandangan.
Dayron Gallardo
6

Saya percaya bahwa nama file baru dari data global adalah ~/.vagrant.d.

Jadi Anda dapat menjalankan rm -r ~/.vagrant.duntuk menghapus semua data pengguna untuk awal yang baru.

Alex Phelps
sumber
0

Untuk kasus saya: Di mana folder dapur dan .kitchen / mungkin berisi file gelandangan tersembunyi yang dibuat oleh

$ kitchen create

Saya harus melangkah lebih jauh daripada menghancurkan dapur atau menghancurkan gelandangan atau bahkan menghancurkan gelandangan machineID (dari status global gelandangan - yang memberikan daftar contoh gelandangan di seluruh ruang pengguna Anda.)

Dalam kasus saya, saya harus meniup file kunci mesin gelandangan yang terdapat dalam direktori tersembunyi pengguna .vagrant.

$ rm -r ~/.vagrant/data

Dan dalam kasus saya, saya perlu sudo perintah di atas.

Kemudian saya akhirnya bersih

$ vagrant global-status

daftar

Terry J Fundak
sumber
0

Pertama Anda gunakan vagrant global-statusuntuk mendaftar semua mesin gelandangan dan statusnya dan ids.

maka Anda dapat menggunakan:

 vagrant destroy -f the_id_of_the_machine

setelah itu jika Anda menjalankan vagrant global-statuslagi Anda akan menemukan bahwa id yang Anda tentukan di vagrant destroy -fperintah telah dihapus dari daftar.

dan kemudian Anda mungkin perlu menghidupkan ulang mesin Anda. Namun perintah ini tidak akan mempengaruhi kotak Anda.

Amr Aly
sumber
0

Perintah di atas tidak menghapus kotak lama dalam kasus saya di mesin Windows. Saya sudah menghapus .vagrantfolder dan kotak dari folder penyedia kotak virtual tetapi kotak itu masih ada di vagrant global-status list.

Seperti yang disebutkan dalam komentar yang diberikan oleh sebuah vagrant upperintah:

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.

Jadi saya membunuh ruby.exedari daftar proses dan melakukan selanjutnya vagrant global-status --prune.

ulrich
sumber