Onde o Vagrant está salvando as alterações na VM?

103

Estou apenas começando com o Vagrant e estou tendo um pouco de dificuldade para entender alguns detalhes. Eu li a documentação, mas ainda não tenho um conceito básico. Quando eu quero iniciar um Vagrant box eu corro:

vagrant up

Isso irá "construir a VM com base na caixa" Eu entendo que as caixas estão armazenadas em ~ / .vagrant.d e na verdade eu empacotei minha própria caixa de uma caixa base do Ubuntu. Porém, quando eu executo o vagrant up e começo a adicionar arquivos ao VM, onde fica o disco rígido virtual do VM armazenado? Por exemplo, quando executo apt-get install apache2 e o sistema raiz é modificado, onde isso é modificado?

Quando eu faço um du no meu diretório atual, não vejo nenhuma mudança. Eu também não vejo nenhuma mudança no diretório ~ / .vagrant.d. No entanto, eu posso executar o vagrant halt, reiniciar minha máquina local e então executar o vagrant novamente e as alterações são persistentes em algum lugar.

vagrant up também relata

[default] VM already created. Booting if its not already running...

Alguém pode me dizer onde a VM é criada e onde as alterações são feitas?

Árvore
fonte

Respostas:

113

O Vagrant importa a caixa base que está localizada ~/.vagrant.d/boxes/, como você falou. É aqui que as caixas de base são mantidas. Ele o usa para iniciar uma VM do estado limpo. Ao importar uma VM, a responsabilidade de onde armazenar os arquivos de dados e o estado da VM é do próprio VirtualBox. Este é um local configurável, mas normalmente o padrão é ~/VirtualBox\ VMSpara Mac OS X e Linux. No Windows, as caixas são mantidas em%userprofile%\.vagrant.d\boxes

É fácil encontrar o lugar onde eles estão sendo criados, independentemente da plataforma que você esteja usando.

1. Start VirtualBox. 
2. Go to the VM that shows as running instance. 
3. Check out the Settings ->Storage. 
4. You can find the path to location where VMs are created and stored in your file system.
pyfunc
fonte
Obrigado pela sua resposta. Você explicou muito bem como funciona.
Árvore de
12
Também está ~/VirtualBox VMSno Windows.
Jason R. Coombs,
Eu queria saber se @pyfunc e outros usuários aqui poderiam me ajudar a usar o vagrant em uma VM existente que não foi criada usando vagrant upem primeiro lugar. stackoverflow.com/q/14503932/80353
Kim Stacks de
@kimsia: É possível exportar sua VM após certa preparação como um arquivo box que pode ser usado com o vagrant. Veja a nota do meu blog se puder ajudar: pyfunc.blogspot.com/2011/11/…
pyfunc
@pyfunc, obrigado por sua resposta. Sua postagem do blog me deu algumas pistas. Tenho mais perguntas de acompanhamento a fazer. Tudo bem se eu copiar seu comentário e colar como resposta à minha pergunta e levar a conversa para lá? Ou você mesmo prefere responder à minha pergunta? Esta é a minha pergunta stackoverflow.com/q/14503932/80353
Kim Stacks
4

Eu sempre mudo o diretório que o Virtualbox usa por padrão para VMs. Normalmente está na pasta do seu perfil no Windows.

Eu mudo para algo como "D: \ VHDs \ VBox \" e lá eu encontrei meu vagrant test vm: "test01_1347456065". Ele se chamava test01, então eu acho que o vagrant adiciona os números para manter as coisas únicas.

Christopher Thorjussen
fonte
2
O Vagrant adiciona o carimbo de data / hora UNIX ao nome da pasta.
kynan