Arquivo da tag: máquina virtual

Gerenciando VMs no VirtualBox por Linha de Comando

Introdução

O VirtualBox é uma ferramenta de fácil utilização para criação de máquinas virtuais. O ambiente gráfico é bastante intuitivo, com poucos cliques o usuário é capaz de colocar uma máquina virtual para executar. Entretanto, algumas vezes é mais cômodo utilizar a linha de comando para gerenciar as máquinas virtuais, principalmente se você deseja criar scripts para automatizar suas tarefas.

Iniciar uma máquina virtual pelo terminal

Ao contrário de outras ferramentas que possuem um comando para cada ação, o VirtualBox tem um comando apenas que engloba todas as ações, o VBoxManage. Não adianta tentar memorizar todas as opções, apenas as principais são importantes. Uma maneira fácil de listar as máquinas virtuais disponíveis é com a opção list.

VBoxManage list vms
"AdmLinux2014" {e5d22843-42b3-40f1-b7cb-1013b31feb99}
"GParted" {23213647-b9bf-41cd-a696-d023527de672}
"pfSense" {c078a303-8283-43b9-8f82-19d7524681d6}

Com a comando VBoxManage list vms, conseguimos ver quais as máquinas virtuais disponíveis. Se e somente se a máquina virtual estiver com os Adicionais para Convidados (Guest Additions), você conseguirá tirar proveito total do VBoxManage. Para inicializar uma VM específica, sem subir a interface gráfica, o ideal é usar o comando VBoxHeadless. Ele é muito útil quando você está hospedando um servidor na VM e não precisa da interface gráfica. O comando completo seria:


VBoxHeadless --startvm AdmLinux2014 --vrde off

Com isso, a VM inicializa, mas sem nenhuma tela para interação. Como controlá-la?

Enviando comandos para uma VM

Claro que você pode configurar o SSH e o redirecionamento de portas para logar na VM e executar comandos. Mas novamente, não é uma boa opção para scripts. É possível enviar um comando através do próprio VirtualBox. Por exemplo, o comando abaixo executa ifconfig em uma máquina virtual chamada AdmLinux2014:


VBoxManage --nologo guestcontrol AdmLinux2014 execute --image \\ "/sbin/ifconfig" --username usuario --password senha --wait-stdout

É um comando muito útil para, caso você esteja atribuindo IP através de uma bridge em uma interface do hospedeiro, descobrir qual o endereço a máquina recebeu.

Conclusão

Com essas duas dicas, é fácil criar um script que inicialize um certo conjunto de VMs e execute comandos de configuração em cada uma. Agora é só usar a imaginação 😉

Anúncios
Etiquetado ,