aboutsummaryrefslogtreecommitdiff
path: root/boxes.md
blob: c8c430978542abc9655d8e1d2dfbbd785f210d57 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
[[!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).