sexta-feira, 30 de abril de 2010

Virtual Box - Iniciando via linha de comando

o VirtualBox é uma excelente ferramenta para virtualização, tanto amadora quanto profissional, sabemos que existem diversas ferramentas com bem mais recursos e que conseguem distribuir melhor a carga na máquina hospedeira. Mas vamos ao que interessa.

O VBoxManage é a interface de linha de comando do VirtualBox. Com ela você pode controlar completamente o VirtualBox através da linha de comando do seu sistema operacional hospedeiro. O VBoxManage suporta todos os recursos que a interface gráfica de usuário da acesso, mas ainda sim, há vários outros recursos além da interface gráfica. Ele expõe realmente todos os recursos do sistema de virtualização até as não acessadas pela GUI, muito útil para se criar scripts.

Os exemplos mostrados a seguir são apenas uma pequena fração das funcionalidades do VirtualBox, serão mostradas apenas funções para Ligar e Desligar a VM.

o primeiro comando que iremos conhecer é o

vbox manage list vms

com este comando se tem na tela a lista das VM e seus respectivos UUID, e será com o UUID que explicaremos nossos exemplos que também podem ser chamadas as VM pelo nome.

sabendo da UUID da VM, por exemplo:

c89fc351-8ec6-4f02-a048-57f4d25288e5

com esta referência podemos trabalhar na VM.

o próximo comando será para Ligar a máquina virtual, e há alguns tipos básicos para fazer funcionar a mesma:

a sintaxe básica para os comandos vboxmanage startvm é:
vboxmanage startvm [--type gui|sdl|vrdp|headless] |

seria o comando, o tipo de abertura para a máquina virtual e o código uuid ou o nome da VM. E vamos ligá-la:

vboxmanage startvm --type gui c89fc351-8ec6-4f02-a048-57f4d25288e5

fazendo isto a máquina ira abrir normalmente, como se clicando no botão iniciar no modo gráfico, ele abre a tela gráfica também, este é o padrão.

vboxmanage startvm --type vrdp c89fc351-8ec6-4f02-a048-57f4d25288e5

Inicia uma VM em modo gráfico, mas com sua saída de vídeo acessível por uma Cliente RDP.

vboxmanage startvm --type headless c89fc351-8ec6-4f02-a048-57f4d25288e5

com este precioso comando você inicia uma Máquina Virtual sem a janela gráfica, rodando apenas em serviço, podendo ser acessada apenas via RDP, ou outro acesso remoto.

Agora que nossa Virtual Machine está ligada, vamos desligá-la. A sintaxe básica para o comando vboxmanage controlvm, que é o que utilizaremos para desligar, é:

vboxmanage controlvm | [pause|resume|reset|poweroff|savestate|acpipowerbutton]

e outros. o que usaremos aqui para exemplificar são apenas dois.

vboxmanage controlvm c89fc351-8ec6-4f02-a048-57f4d25288e5 acpipowerbutton

que desliga a máquina virtual como se estivesse pressionando rápido o botão no gabinete, enviando um sinal de desligamento para a VM.

vboxmanage controlvm c89fc351-8ec6-4f02-a048-57f4d25288e5 pause

o comando anterior coloca a máquina em espera, a janela ficará cinza, para indicar que está em espera, pausada.

vboxmanage controlvm c89fc351-8ec6-4f02-a048-57f4d25288e5 resume

para voltar a máquina da pausa.

vboxmanage controlvm c89fc351-8ec6-4f02-a048-57f4d25288e5 reset

se tem o mesmo efeito de se apertar o botão reset em um computador.

vboxmanage controlvm c89fc351-8ec6-4f02-a048-57f4d25288e5 poweroff

é o mesmo efeito em uma Máquina Virtual de se puxar o cabo de força em um computador Real.

vboxmanage controlvm c89fc351-8ec6-4f02-a048-57f4d25288e5 savestate

Salvará o atual estado da VM no discoe depois para ela, equivalente a selecionar Fechar no menu gráfico e colocar para Salvar o estado da máuqina.

bem pessoal, era o que eu tinha pra dizer, a combinação de comandos é imensa, quem quiser aprender mais um pouco dá uma lida na documentação do VirtualBox, há muita coisa interessante para se fazer que não é disponível na parte gráfica.

é isso aew.





3 comentários:

Emanuelle disse...

Que chique, parte gráfica é a minha área! :P
Bju amor.

Roger Trancozo disse...

Boa tarde.

Excelente artigo, porém no CentOS 5.3 só funcionou com a seguinte sintax:

Ao invés de:
# vboxmanage ...
ou
# vbox manage ...

O correto:
# VBoxManage ...

ou seja, "case sensitive".
Obrigado.

Carlos disse...

Parabéns, cara muito bom seu post era disso que eu estava procurando. Valew!!!