Copie a caixa vagrant localmente

25

Eu tenho uma caixa vagrant rodando no VirtualBox, e eu preciso fazer uma cópia (com todas as suas configurações e dados existentes), para que eu possa fazer alterações sem afetar o original.

O problema é que minha caixa original veio como um pacote de arquivos - a conexão de internet onde estou trabalhando é extremamente lenta, então alguém copiou suas pastas vagabundas e virtualbox para a minha máquina. Portanto, não há

config.vm.box_url

para usar.

Como posso conseguir isso?

Edit: Estou usando o Vagrant 1.2.2

    
por xiankai 22.08.2013 / 14:12

1 resposta

38

Crie uma nova caixa na sua vm existente:

  • cd no diretório com seu arquivo do Vagrant

  • run vagrant package Isso exportará um arquivo de caixa chamado package.box por padrão

  • execute vagrant box add foo package.box para adicionar package.box às suas caixas existentes. (Supondo que você esteja usando o VirtualBox e não o VMWare)

  • execute vagrant box list para verificar se foi adicionado.

Agora, basta criar uma nova pasta, executar vagrant init como normal e definir sua caixa para o seguinte:

 config.vm.box = "foo"

A nova VM será ativada com os dados exatos que estavam presentes na VM anterior.

Documentação do Vagrant

Além disso, confira um novo produto dos criadores do Vagrant chamado Packer . Ele fará a mesma coisa, mas permitirá que você copie seus vm's para outros provedores (Amazon, VirtualBox etc.)

Atualizar

As versões mais recentes do Vagrant têm dois comandos que tornam desnecessários os passos acima.

vagrant share
vagrant package

Vagrant share carregará sua caixa para o atlas
Vagrant package criará um arquivo .box automaticamente.

Para mais informações, digite vagrant --help

    
por 22.08.2013 / 19:58