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.


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, ..).


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.


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


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.


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.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.