Há muito tempo eu estava curioso para testar o Vagrant que, para quem não conhece, é uma ferramenta para auxiliar na gestão de máquinas virtuais, utilizando como base o Oracle VirtualBox. Após ler o post do Elton Minetto, decidi botar a mão na massa e criar uma VM para meu ambiente de desenvolvimento Java e PHP. Comecei instalando a VM com a última versão LTS do Ubuntu:
vagrant box add precise32 http://files.vagrantup.com/precise32.boxDepois disso iniciei um projeto Vagrant com o comando:
vagrant init precise32E iniciei a máquina virtual com:
vagrant upAcessar a máquina criada por SSH é bem prático:
vagrant sshEstando na máquina, resolvi atualizar os pacotes com os comandos:
sudo apt-get update
sudo apt-get dist-upgradeDesliguei a máquina virtual com o comando:
vagrant haltE liguei novamente com o comando:
vagrant upDepois dessa atualização, o kernel da máquina virtual foi atualizado, e o resultado do comando vagrant up veio acompanhado de um erro:
The following SSH command responded with a non-zero exit status.
Vagrant assumes that this means the command failed!
mount -t vboxsf -o uid=`id -u vagrant`,gid=`id -g vagrant` v-root /vagrantO problema ocorre porque ao atualizar o kernel, o pacote de Guest Additions precisa ser recompilado com os headers do kernel atual. Para solucionar o problema, foi necessário instalar os headers para o kernel atual:
sudo apt-get install build-essential linux-headers-`uname -r`E re-adicionar o pacote Guest Additions:
sudo /etc/init.d/vboxadd setupAo reiniciar a máquina virtual, o erro desapareceu. Mais informações: Issue #733 no GitHub.