Usando o Virtual Box como Servidor de Máquinas Virtuais João Medeiros ([email protected]) 15 de agosto de 2009 1 Introdução Esse artigo é baseado na seção 7.4 do Help do VirtualBox, em alguns trechos é praticamente uma tradução do que está contido lá. A interface gráfica do virtual oferece uma administração bastante amigável das máquinas virtuais. Contudo, em algumas situações é interessante que possamos acessar as máquinas virtuais remotamente. Por exemplo, se estamos planejando rodar um servidor com o propósito de hospedar máquinas virtuais e permitir que os usuários acessem-as remotamente. Para isso podemos utilizar o suporte VRDP oferecido pelo VirtualBox, mas nesse caso o servidor deveria ter um ”X” instalado, uma vez que o VirtualBox depende das bibliotecas Qt e SDL. O VirtualBox vem, ainda, com outra interface que não produz saı́da visual no servidor, mas apenas envia dados com o protocolo VRDP, chamamos essa interface de VBoxHeadless. Neste artigo, vamos descrever como utilizar um servidor de máquinas virtuais com o VBoxHeadless. 2 VBoxHeadless, o servidor VRDP apenas Para iniciar uma máquina virtual com o VBoxHeadless, temos duas opções • Você pode usar $ VBoxManage startvm <nome> -type vrdp. A opções extra -type informa ao VirtualBox para usar o VBoxHeadless como ”front-end” da máquina virtual. • A maneira recomendada, contudo, é usar diretamente o VBoxHeadless $ VBoxHeadless -startvm <uuid|nome> Observe que usando VBoxHeadless para iniciar uma máquina virtual, o acesso remoto via VRDP estará habilitado, independente das configurações da máquina virtual. Se você não quiser habilitar o acesso VRDP (por exemplo, você que acesso apenas via ssh), pode desativá-lo com o comando $ VBoxHeadless -startvm <uuid|nome> -vrdp=off Para utilizar a opção definida nas configurações da máquina virtual, utilize: $ VBoxHeadless -startvm <uuid|nome> -vrdp=config 3 Criação de uma máquina virtual no servidor As instruções a seguir dão uma idéia geral de com criar máquinas virtuais em um servidor. Iremos criar uma máquina virtual, estabelecer uma conexão via protocolo VRDP e instalar um sistema operacional na máquina virtual (assumimos que iremos instalar o Ubuntu Server) Iremos necessitar do seguinte: 1 Uma máquina com o Virtual Box instalado; no nosso caso a máquina real de cada estudante. 2 Uma imagem iso no servidor contendo a instalação do sistema operacional. 3 Um cliente RDP, podemos usar o rdesktop para efetuar a conexão. A seguir seguem os passos necessários para a criação e execução da máquina virtual. 1 1 Na máquina real, crie uma nova máquina virtual: $ VBoxManage createvm -name "Ubuntu Server" -register A saı́da do comando dever algo como joao@jupiter:~$ VBoxManage createvm -name "Ubuntu Server" -register VirtualBox Command Line Management Interface Version 2.1.4 (C) 2005-2009 Sun Microsystems, Inc. All rights reserved. Virtual machine ’Ubuntu Server’ is created and registered. UUID: efbd9439-4815-4321-ae96-606bff881255 Settings file: ’/disco2/MaquinasVirtuais/virtualbox/maquinas/Ubuntu Server/Ubuntu Server Observe que foi criada uma UUID para a máquina, no caso ”efbd9439-4815-4321-ae96-606bff881255”. 2 Assegure-se que as configurações da máquina estão definidas apropiadamente. Por exemplo, para configurar uma máquina com 256MB de memória, boot pelo DVD e tipo da placa de rede 1 como ”Interface do Hospedeiro” digite o comando abaixo. joao@jupiter:~$ VBoxManage modifyvm "Ubuntu Server" -memory "256BM" \ -acpi on -boot1 dvd -nic1 hostif 3 Crie um disco rı́gido para a máquina virtual (nesse caso um disco com 8GB) e registre-o com o VirtualBox. joao@jupiter:~$ VBoxManage createhd -filename "UbuntuServer.vdi" -size 8000 -register A saı́da deve ser algo como VirtualBox Command Line Management Interface Version 2.1.4 (C) 2005-2009 Sun Microsystems, Inc. All rights reserved. Disk image created. UUID: 6e99e072-9354-428e-b01e-6268817f4258 4 Configure o novo disco como o primeiro disco da máquina virtual criada. joao@jupiter:~$ VBoxManage modifyvm "Ubuntu Server" -hda "UbuntuServer.vdi" 5 Registre a imagem iso do disco de instalação joao@jupiter:~$ VBoxManage openmedium \ dvd /home/joao/downloads/ubuntu-8.04.1-server-i386.iso 6 Conecte a imagem iso à máquina virtual joao@jupiter:~$ VBoxManage modifyvm "Ubuntu Server" \ -dvd /home/joao/downloads/ubuntu-8.04.1-server-i386.iso 7 Inicie a máquina virtual com o comando joao@jupiter:~$ VBoxHeadless -startvm "Ubuntu Server" A saı́da deve ser algo como 2 VirtualBox Headless Interface 2.1.4 (C) 2008-2009 Sun Microsystems, Inc. All rights reserved. Listening on port 3389 8 Na máquina cliente, inicie o visualizador RDP. Considerando uma máquina Linux, tente o seguinte comando joao@jupiter:~$ rdesktop -a 16 -N localhost A opção -a 16 indica a resolução de cores em 16bits, a opção -N informa que a tecla NumLock deve estar sincronizada. Você deve ver agora uma tela com o sistema iniciado 4 Exercı́cios 1 Crie uma uma máquina virtual para a instalação do Ubuntu Server, adicionando as seguintes caracterı́sticas: 256 MB de RAM Disco rı́gido de 8GB Duas placas de redes: 1 como interface do hospedeiro e outra configurada para rede interna 2 Associe a imagem iso do Ubuntu Server com o CDRom da máquina criada. 3 Crie um script para executar a máquina virtual acima com o VBoxHeadless, inclua parâmetros que permitar iniciar e parar a máquina (start e stop) 4 Execute a máquina através do script criado no item anterior e acesse-a através do cliente rdesktop para efetuar a instalação do Ubuntu Server. 3