Como eu removo uma caixa do Vagrant do status global, depois de excluir essa caixa do sistema de arquivos?

87

//, eu apaguei uma pasta contendo uma caixa do Vagrant em execução antes de perceber que ela ainda estava em execução.

Como posso excluí-lo do Vagrant (status global) agora?

Já removi o Virtualbox VM.

mettjus
fonte
1
Se o Vagrant VM está rodando ou não, não importa (recentemente descobri isso). Mesmo se a VM for interrompida, se você excluir manualmente seus arquivos em vez de executá-los vagrant destroy, vagrant global-statusainda relatará o problema de "estado de host desconhecido".
John Berberich

Respostas:

193

Para descartar as caixas antigas listadas em vagrant global-status(por exemplo, você excluiu a pasta que contém o .vagrantdir do sistema de arquivos), você só precisa executar:

vagrant global-status --prune

Pode ser necessário remover a máquina virtual diretamente da interface de controle do seu provedor (VMWare, Virtualbox, ..).

Jon Dowdle
fonte
Eu criei o problema para mim ao contrário: apaguei os arquivos da VM do provedor e também alterei o Vagrantfile para que a VM não fizesse mais parte da configuração do Vagrant do projeto. A --pruneopção funcionou para o meu cenário também. Obrigado!
John Berberich
Funcionou para mim apenas de dentro de uma VM provisionada com Vagrant em execução.
Nikos Alexandris
1
Não funcionou para mim. Tive que editar ~/.vagrant.d/data/machine-indexe remover manualmente a entrada ofensiva.
Dalin
Isso funcionou para o meu caso. Se você mudar o nome da sua máquina e o antigo (que não funciona mais) ainda listado pelo vagrant global-status.
Dayron Gallardo
5

Eu acredito que o novo nome de arquivo dos dados globais é ~/.vagrant.d.

Assim, você pode executar rm -r ~/.vagrant.dpara excluir todos os dados do usuário para um novo começo.

Alex Phelps
fonte
0

Para o meu caso: onde cozinha e .kitchen / pasta podem conter arquivos vagos ocultos criados por

$ kitchen create

Preciso ir além de kitchen destroy ou vagrant destroy ou mesmo vagrant destroy machineID (do vagrant global-status - que fornece uma lista de instâncias do vagrant em seu espaço de usuário).

No meu caso, eu tive que explodir os arquivos de bloqueio da máquina vagrant contidos no diretório oculto .vagrant do usuário.

$ rm -r ~/.vagrant/data

E no meu caso eu preciso sudo no comando acima.

Então eu finalmente cheguei a um limpo

$ vagrant global-status

Lista

Terry J Fundak
fonte
0

Primeiro você usa vagrant global-statuspara listar todas as máquinas vagrant e seus status e ids.

então você pode usar:

 vagrant destroy -f the_id_of_the_machine

depois disso, se você executar vagrant global-statusnovamente, você descobrirá que o id que você especificou novagrant destroy -f comando foi removido da lista.

e então você pode precisar reiniciar sua máquina. No entanto, esses comandos não afetarão suas máquinas.

Amr Aly
fonte
0

Os comandos acima não removeram a caixa antiga no meu caso em uma máquina Windows. Eu já tinha removido a .vagrantpasta e a caixa da pasta do provedor do virtualbox, mas a caixa ainda estava na vagrant global-status list.

Conforme mencionado no comentário dado por um 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.

Então, matei ruby.exeda lista de processos e fiz um subsequente vagrant global-status --prune.

Ulrich
fonte