Ninguém duvida que, em ambientes automatizados, a linha de comando seja essencial. Escrevendo meu livro sobre JBoss cheguei, também, a mais um motivo para apresentar a linha de comando: não tive paciência para ficar tirando screenshots das telas do VirtualBox enquanto criava a máquina virtual (VM) que utilizo nesse livro. Além disso, é chato inserir figuras em um documento e redimensioná-las adequadamente para explicar cada uma delas (é preciso ter uma paciência de designer gráfico pra estas coisas ;). Por isso, resolvi descomplicar, e economizar páginas, trabalhando com as linhas de comando que são necessárias para criar uma VM ao invés de explicar as telas que fariam os mesmos comandos no VirtualBox. ;)

Com a execução do script Bash vm-centos.create.sh eu crio a VM nos moldes que preciso para a execução de todas as atividades que preciso apresentar em meu livro. Neste post, apresento pequenos detalhes a mais sobre esse script.

Segue o conteúdo desse minúsculo script, linha a linha:

$ cat -n vm-centos.create.sh 
     1  #!/bin/bash
     2  
     3  VBoxManage createvm --name vm-centos --ostype RedHat --register
     4  VBoxManage modifyvm vm-centos --memory 2048 --clipboard bidirectional
     5  VBoxManage createhd --filename ~/VirtualBox\ VMs/vm-centos/vm-centos.vdi --size 12288 --format VDI
     6  VBoxManage storagectl vm-centos --name "SATA Controller" --add sata --controller IntelAhci
     7  VBoxManage storageattach vm-centos --storagectl "SATA Controller" --port 0 --device 0 --type hdd --medium ~/VirtualBox\ VMs/vm-centos/vm-centos.vdi
     8  VBoxManage storagectl vm-centos --name "IDE Controller" --add ide --controller PIIX4
     9  VBoxManage storageattach vm-centos --storagectl "IDE Controller" --port 1 --device 0 --type dvddrive --medium ~/Sites/CentOS/6/isos/i386/CentOS-6.3-i386-netinstall.iso

Antes de executá-lo em teu ambiente, verifique se há uma VM nomeada vm-centos em teu ambiente. Do contrário, a execução desse gerará erros e eu não estou tratando nenhum deles no script, para manter sua simplicidade.

Em todo o script, você pode ver a chamada ao comando VBoxManage. Basicamente, todas as atividades relativas a configuração de uma VM VirtualBox são realizadas através desse comando.

A linha 3, primeiro passo, cria uma máquina virtual nomeada vm-centos do tipo RedHat e faz seu registro no VirtualBox.

A linha 4 altera a VM configurando uma memória de 2048MB (2GB) e também um clipboard bidirecional. Esta configuração de clipboard será útil para podermos copiar/colar textos da VM para o Host e vice-versa.

A linha 5 cria o HD da VM com o tamanho de 12288MB (12GB). No caso apresentado, esse disco é criado dentro do diretório que o VirtualBox cria para a VM (~/VirtuaBox VMs/vm-centos).

As linhas 6 e 7 fazem a adição de um controlador SATA para a VM e anexam o disco criado a ela.

A linha 8 faz a adição de um controlador IDE e a linha 9 anexa o ISO do CentOS a esse controlador informando que ele gerenciará um DVD cujo conteúdo está no ISO ~/Sites/CentOS/6/isos/i386/CentOS-6.3-i386-netinstall.iso. Desta forma, quando for dado boot na VM, ela será inicializada conforme os comandos de boot presentes nesse ISO.

Pronto! A execução desse script produz, em minha máquina, uma saída semelhante a apresentada a seguir. Ele é tudo o que é preciso para criar a vm-centos e deixá-la preparada para instalar o CentOS!

$ ./vm-centos.create.sh 
Virtual machine 'vm-centos' is created and registered.
UUID: 7b9bf1f1-642f-410a-9541-cee4acff7a95
Settings file: '/Users/pj/VirtualBox VMs/vm-centos/vm-centos.vbox'
0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
Disk image created. UUID: 2fd91305-a462-4222-a095-948e1559c059

Num próximo post eu explicarei como, durante o boot, utilizar um arquivo kickstart para automatizar o processo de instalação do sistema operacional CentOS, que será executado por esta VM.