[[!toc levels=4]] Boxes ===== Necessidade ----------- * Ambiente de desenvolvimento ágil. * Que permita executar de forma isolada aplicações sem auditoria ou checagem de integridade. Criando uma base box -------------------- O procedimento básico já é detalhado aqui: * [Creating a Base Box - Vagrant Documentation](https://docs.vagrantup.com/v2/boxes/base.html). * [Creating a Base Box - VirtualBox Provider - Vagrant Documentation](https://docs.vagrantup.com/v2/virtualbox/boxes.html). Note que: * Você precisa apenas do pacote `virtualbox-guest-dkms` para que a integração da máquina com o vagrant funcione corretamente. * O procedimento não serve apenas para usar a máquina virtual com o vagrant. Você pode usá-la também diretamente com o VirtualBox. * A seguir apenas documentaremos configurações específicas ou melhorias em relação à documentação oficial do vagrant. ### Configuração do sudo Usamos algo mais recomendado ao invés de mexer no `/etc/sudoers` do pacote: echo "vagrant ALL=(ALL) NOPASSWD: ALL" > /etc/sudoers.d/vagrant chown root.root /etc/sudoers.d/vagrant chmod 0440 /etc/sudoers.d/vagrant ### Workarounds A mensagem de erro [stdin: is not a tty](https://github.com/mitchellh/vagrant/issues/1673) é corrigida com isto no `/root/.profile`: tty -s && mesg n ### Customizando Você já pode parar por aí pois já tem uma máquina bem genérica ou começar a customizar a máquina para ter ferramentas e configurações comuns para o seu dia dia. Por exemplo, considere a [instalação](/install) da Hydra Suite na máquina virtual. Encolhendo uma máquina virtual ------------------------------ Procedimento genérico, dentro da máquina virtual: hydractl upgrade clean apt-get install zerofree # apenas uma vez telinit 1 mount -o remount,ro / zerofree /dev/sda1 halt No host (`$box` é o nome da máquina): VBoxManage modifyhd --compact /var/cache/virtualbox/$box/$box.vdi Referências ----------- * [How to compact VirtualBox's VDI file size?](https://superuser.com/questions/529149/how-to-compact-virtualboxs-vdi-file-size). * [Shrinking a Dynamic VirtualBox Disk Image](http://www.thelinuxdaily.com/2010/02/shrinking-a-dynamic-virtualbox-disk-image/). * [ubuntu - "mount: / is busy" when trying to mount as read-only so that I can run zerofree](https://unix.stackexchange.com/questions/42015/mount-is-busy-when-trying-to-mount-as-read-only-so-that-i-can-run-zerofree).