Как мне удалить поле Vagrant из глобального статуса после удаления этого поля из файловой системы?

87

//, я удалил папку, содержащую работающий ящик Vagrant, прежде чем понял, что он все еще работает.

Как мне теперь удалить его из Vagrant (global-status)?

Я уже удалил виртуальную машину Virtualbox.

Меттьюс
источник
1
Независимо от того, работает ли Vagrant VM или нет (я недавно это узнал). Даже если виртуальная машина остановлена, если вы вручную удалите ее файлы вместо запуска vagrant destroy, vagrant global-statusвсе равно будет сообщаться о проблеме «состояние хоста неизвестно».
Джон Берберих

Ответы:

194

Чтобы отказаться от старых ящиков, перечисленных в vagrant global-status(например, вы удалили папку, содержащую каталог, .vagrantиз файловой системы), вам просто нужно запустить:

vagrant global-status --prune

Возможно, вам потребуется удалить виртуальную машину прямо из интерфейса управления вашего провайдера (VMWare, Virtualbox, ..).

Джон Даудл
источник
Я создал для себя проблему в обратном порядке: я удалил файлы виртуальной машины от поставщика, а также изменил Vagrantfile, чтобы виртуальная машина больше не была частью конфигурации Vagrant проекта. Этот --pruneвариант сработал и для моего сценария. Благодарность!
Джон Берберих
Это сработало для меня только изнутри существующей работающей виртуальной машины, подготовленной Vagrant.
Никос Александрис
1
У меня не получилось. Мне пришлось вручную отредактировать ~/.vagrant.d/data/machine-indexи удалить оскорбительную запись.
Далин
В моем случае это сработало. Если вы измените имя своего компьютера, а старый (который больше не работает) по-прежнему будет указан vagrant global-status.
Дейрон Галлардо
6

Я считаю, что новое имя файла глобальных данных ~/.vagrant.d.

Таким образом, вы можете запустить, rm -r ~/.vagrant.dчтобы удалить все пользовательские данные для начала.

Алекс Фелпс
источник
0

В моем случае: где кухня и папка .kitchen / могут содержать скрытые бродячие файлы, созданные

$ kitchen create

Мне нужно пойти дальше, чем уничтожить кухню, уничтожить бродягу или даже уничтожить бродячий идентификатор машины (из vagrant global-status - который дает список бродячих экземпляров в вашем пользовательском пространстве).

В моем случае мне пришлось удалить файлы блокировки бродячих машин, содержащиеся в скрытом каталоге users .vagrant.

$ rm -r ~/.vagrant/data

И в моем случае мне нужно выполнить приведенную выше команду sudo.

Затем я наконец добрался до чистой

$ vagrant global-status

список

Терри Дж. Фундак
источник
0

Сначала вы используете, vagrant global-statusчтобы перечислить все бродячие машины и их статус, а также ids.

тогда вы можете использовать:

 vagrant destroy -f the_id_of_the_machine

после этого, если вы запустите vagrant global-statusснова, вы обнаружите, что идентификатор, который вы указали в vagrant destroy -fкоманде, был удален из списка.

а затем вам может потребоваться перезагрузить компьютер. Однако эти команды не повлияют на ваши ящики.

Амр Али
источник
0

Приведенные выше команды не удаляли старый ящик в моем случае на машине с Windows. Я уже удалил .vagrantпапку и ящик из папки поставщика виртуальных боксов, но ящик все еще был в папке 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.

Ульрих
источник