ฉันจะลบกล่อง Vagrant ออกจากสถานะส่วนกลางหลังจากลบกล่องนั้นออกจากระบบไฟล์ได้อย่างไร


87

ฉันลบโฟลเดอร์ที่มีกล่อง Vagrant ที่กำลังทำงานอยู่ก่อนที่จะรู้ตัวว่ายังทำงานอยู่

ฉันจะลบออกจาก Vagrant (global-status) ได้อย่างไร?

ฉันได้ลบ Virtualbox VM แล้ว


1
ไม่ว่า Vagrant VM จะทำงานหรือไม่ไม่สำคัญ (ฉันเพิ่งค้นพบสิ่งนี้) แม้ว่า VM จะหยุดถ้าคุณด้วยตนเองลบไฟล์แทนของการทำงานvagrant destroy, vagrant global-statusจะยังคงรายงาน "เจ้าภาพรัฐที่ไม่รู้จัก" ปัญหา
John Berberich

คำตอบ:


195

หากต้องการทิ้งกล่องเก่าที่อยู่ในรายการvagrant global-status(เช่นคุณลบโฟลเดอร์ที่มี.vagrantdir ออกจากระบบไฟล์) คุณเพียงแค่เรียกใช้:

vagrant global-status --prune

คุณอาจต้องลบ Virtual Machine โดยตรงจากอินเทอร์เฟซการควบคุมของผู้ให้บริการ (VMWare, Virtualbox, .. )


ฉันสร้างปัญหาให้ตัวเองในทางกลับกัน: ฉันลบไฟล์ของ VM จากผู้ให้บริการและเปลี่ยน Vagrantfile เพื่อไม่ให้ VM เป็นส่วนหนึ่งของการกำหนดค่า Vagrant ของโครงการอีกต่อไป --pruneตัวเลือกการทำงานสำหรับสถานการณ์ของฉันเช่นกัน ขอบคุณ!
John Berberich

มันใช้งานได้สำหรับฉันจากภายใน VM ที่จัดเตรียมโดย Vagrant ที่มีอยู่
Nikos Alexandris

1
ไม่ได้ผลสำหรับฉัน ฉันต้องแก้ไข~/.vagrant.d/data/machine-indexและลบรายการที่ละเมิดด้วยตนเอง
Dalin

สิ่งนี้ใช้ได้กับกรณีของฉัน หากคุณเปลี่ยนชื่อเครื่องของคุณและชื่อเครื่องเก่า (ที่ใช้งานไม่ได้อีกต่อไป) ยังคงแสดงอยู่ในสถานะโกลบอลพเนจร
Dayron Gallardo

6

~/.vagrant.dผมเชื่อว่าชื่อไฟล์ใหม่ของข้อมูลทั่วโลกคือ

ดังนั้นคุณสามารถเรียกใช้rm -r ~/.vagrant.dเพื่อลบข้อมูลผู้ใช้ทั้งหมดเพื่อเริ่มต้นใหม่


0

สำหรับกรณีของฉัน: ที่ห้องครัวและ. ห้องครัว / โฟลเดอร์อาจมีไฟล์คนจรจัดที่ซ่อนอยู่ซึ่งสร้างโดย

$ kitchen create

ฉันต้องไปให้ไกลกว่าการทำลายครัวหรือการทำลายคนจรจัดหรือแม้แต่คนเร่ร่อนทำลาย machineID (จากสถานะโลกเร่ร่อน - ซึ่งให้รายการอินสแตนซ์เร่ร่อนในพื้นที่ผู้ใช้ของคุณ)

ในกรณีของฉันฉันต้องลบไฟล์ล็อคเครื่องคนจรจัดที่มีอยู่ในไดเรกทอรีที่ซ่อนอยู่ของผู้ใช้.

$ rm -r ~/.vagrant/data

และในกรณีของฉันฉันต้อง sudo คำสั่งด้านบน

แล้วในที่สุดฉันก็สะอาด

$ vagrant global-status

รายการ


0

แรกที่คุณใช้รายการทั้งหมดเครื่องจรจัดและสถานะของพวกเขาและvagrant global-statusids

จากนั้นคุณสามารถใช้:

 vagrant destroy -f the_id_of_the_machine

หลังจากนั้นหากคุณเรียกใช้vagrant global-statusอีกครั้งคุณจะพบว่า ID ที่คุณระบุในvagrant destroy -fคำสั่งถูกลบออกจากรายการ

จากนั้นคุณอาจต้องรีสตาร์ทเครื่องอย่างไรก็ตามคำสั่งเหล่านี้จะไม่มีผลกับกล่องของคุณ


0

คำสั่งข้างต้นไม่ได้ลบกล่องเก่าในกรณีของฉันบนเครื่อง Windows ฉันได้ลบ.vagrantโฟลเดอร์และกล่องออกจากโฟลเดอร์ผู้ให้บริการ virtualbox แล้ว แต่กล่องยังอยู่ในไฟล์vagrant global-status list.

ดังที่กล่าวไว้ในความคิดเห็นที่กำหนดโดยvagrant upคำสั่ง:

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.

ดังนั้นฉันจึงฆ่าruby.exeจากรายการกระบวนการและทำสิ่งต่อvagrant global-status --pruneไป

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.