[[!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: * 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. A partir daqui você pode 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) a Hydra Suite na máquina virtual. Encolhendo uma máquina virtual ------------------------------ Sobre: * https://superuser.com/questions/529149/how-to-compact-virtualboxs-vdi-file-size * http://www.thelinuxdaily.com/2010/02/shrinking-a-dynamic-virtualbox-disk-image/ * https://packages.debian.org/wheezy/zerofree * https://unix.stackexchange.com/questions/42015/mount-is-busy-when-trying-to-mount-as-read-only-so-that-i-can-run-zerofree Procedimento genérico, dentro da máquina virtual: hydractl upgrade clean apt-get install zerofree telinit 1 mount -o remount,ro / zerofree /dev/sda1 halt Fora da máquina: VBoxManage modifyhd --compact /var/cache/virtualbox/$box/$box.vdi