Para virtualização em desktop o VirtualBox já vem reinando a algum tempo. E para servidores, muitos não apostam por que simplesmente não sabem que é possível, mas dá! Veja e confirme. Combinação perfeita, CentOS + VirtualBox + Windows 2003 Server.
Agora a parte mais complicada, que tive que pesquisar bastante para fazer com que o CentOSLinux comunicasse com o Windows Server. O que me ajudou mais a desvendar isto foi este script:
Mas como nem tudo é perfeito, este script não serve no CentOS, são necessárias algumas alterações.
Então em primeiro lugar, configurar o IP da máquina virtual, ir no Windows 2003 Server e configurar o TCP/IP assim:
IP address: 192.168.20.201
Subnet mask: 255.255.255.0
Default gateway: 192.168.20.1
Feito isto, ir no CentOS e criar uma interface de rede virtual:
# /usr/bin/VBoxTunctl -u root
Depois disto, pode verificar com o "/sbin/ifconfig -a" se aparece o tap0. Pronto, aí está a nossa interface de rede virtual.
É preciso configurar no VirtualBox para usar a nova interface de rede virtual, a tap0. Ir nos "Settings" da máquina virtual, em "Network", no "Attached to", mudar para "Host Interface" e selecionar a tap0. Para ir nos "Settings" tem que desligar a máquina virtual.
Settings da Máquina Virtual > Network > Attached to > Host Interface
Agora é preciso configurar a interface de rede virtual:
# /sbin/ip link set tap0 up
# /sbin/ip addr add 192.168.20.1/32 dev tap0
# /sbin/route add -host 192.168.20.201 dev tap0
Deverá conseguir "pingar" a máquina virtual:
# ping -c 1 192.168.20.201
Se for preciso rodar ASPX no servidor, aí está a solução, só configurar no nginx para fazer proxy reverso do IIS no IP 192.168.20.201 e já vai funcionar perfeitamente.
A máquina virtual até aqui não tem acesso a internet. Para resolver isto é preciso fazer isto:
[1] Comentário enviado por EDU4RDO_ em 06/02/2009 - 10:55h
No meu caso já estou com a maquina virtual funcionando perfitamente, ate startto ela pela linha de comando também mas eu estou com um problema quando coloca o comando no rc.local pois dessa forma a maquina virtual não esta levntando junto com o sistema. Ate tirei a maquina virtual do meu usuário e levei ela pro root.
Gostaria de saber se alguem sabe quais são as linha que eu devo adicionar no rc.local pra que levante automaticamente e se a maquina pode estar no usuário comum ou só funciona no root?
Vi também que você mostrou quais parametros foi adicionado no seu rc.local mas creio que no meu seja um pouco diferente pois so necessito da maquina virtual não preciso das linhas do iptable nem das de configuração da rede.
[3] Comentário enviado por demoncyber em 06/02/2009 - 21:37h
Olá,
Não gosataria de ser um cara chato mais, a maior inovaçao da ultima versao do virtualbox que por sinal eh esta que vc provavelmente instalou é poder fazer isso dando 3 clics's =O, sim o virtuabox 2 agora está fazendo o bridge como vmware \o/
Mas fica ai também o passo a passo X), sempŕe é bom ter as vezes estas interfaces graficas nao fazem tudo
[7] Comentário enviado por batista em 09/02/2009 - 12:46h
Muito bom artigo. Parabéns!!!
Gostaria de acrescentar que testei a nova versão do VirtiualBox do site da Sun, na distro Mandriva 2008.0 conforme este tutorial no link http://www.howtoforge.com/installing-virtualbox-2.0-on-mandriva-2009.0
Segui os passos do tutorial e o VirtualBox esta rodando numa boa.
Caso alguem queira testar darei as dicas:
Instale os pacotes do kernel-source e kernel-devel para versão especifica do seu kernel, no caso para saber e so digitar o comando no terminal: uname -a
Apos baixar estes pacotes e também instalado via urpmi o pacote do VirtualBox, va no terminal como root e digite:
/etc/init.d/vboxdrv setup
Este comando acima compilara o modulo do VirtualBox no sistema, apos isto e so instalar suas vms normalmente inclusive com acesso a bridge nativamente, ou seja, sem comandos avançados.
[8] Comentário enviado por eduveks em 09/02/2009 - 13:12h
Isto de ter o bridge automático tem a certeza?
Que eu tanto nos meus desktops com Ubuntu 8.10 e Fedora 9, e no servidor com o CentOS 5, usando a última versão do VirtualBox a 2.1.2. Em todos o acesso a internet foi automático, agora a configuração de route e interface de rede virtual não é automático. Ou seja para do sistema base ter acesso a máquina virtual e vice-versa, isto não é automático até onde sei.
Acho que estão confundindo o acesso internet e em ter um serviço na máquina virtual e acessar a este serviço apartir do sistema nativo e da rede.
O tutorial é neste sentido, de configurar serviços de servidor dentro da máquina virtual.
[10] Comentário enviado por andrefreire em 17/02/2009 - 08:07h
O que foi dito é que não é mais necessário se configurar esse arranjo com túneis como vc fez pois o novo Virtualbox acessa o host diretamente basta que vc selecione interface do hospedeiro e pronto.
[11] Comentário enviado por eduveks em 17/02/2009 - 08:27h
Só que assim tem que estar com DHCP do VirtualBox, o que é mau para fazer depois os NATs! Como precisava de IP estático para os NATs não vi maneira melhor.
E como eu já disse eu estou usando a última versão do VirtualBox! E para fazer os NATs não encontrei outra maneira sem criar a interface de rede virtual. Se há uma forma mais simples de fazer isto por favor coloque passo-a-passo para que eu possa realizar o teste de que tudo funciona.
[13] Comentário enviado por lgf em 03/08/2011 - 11:23h
Funcionou muito bem mas não estou conseguindo desligar a maquina virtual depois de conectar via rdp , conectando normalmente pelo gui é possivel desligar usando vboxmanage controlvm NOME_DA_MAQUINA acpipowerbutton mas iniciando pelo VBoxDRV esse comando não funciona , tem alguma forma de subir a maquina no boot e desligar no halt ?
[14] Comentário enviado por eduveks em 03/08/2011 - 19:31h
eu fiz este script para forçar reiniciar a virtual machine! primeiro mata mesmo a virutal machine ("kill -9") e a seguir inicia.
já uso a uns anos e até agora n tive nenhum problema (a última linha é para reiniciar a virtual machine, no teu caso remover/comenatar a última linha):
#!/bin/sh
psID=
for linePS in `ps x | grep virtualbox/VBox`; do
psData=`echo $linePS | grep "^[0-9]*$"`
case $linePS in
"/usr/lib/virtualbox/VBox"*) kill -9 $psID ;;
esac
if [ "$psData" != "" ]; then
psID=$psData
fi
done