Virtualização para servidores com VirtualBox

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.

[ Hits: 82.958 ]

Por: Eduardo Fonseca Velasques em 06/02/2009 | Blog: http://eduveks.blogspot.com


Rede



Agora a parte mais complicada, que tive que pesquisar bastante para fazer com que o CentOS Linux 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:

# /sbin/sysctl net.ipv4.ip_forward=1
# /sbin/iptables -t nat -A POSTROUTING --out-interface eth0 -j MASQUERADE
# /sbin/iptables -A FORWARD --in-interface tap0 -j ACCEPT


E também configurar os DNS primário e secundário, da máquina virtual, com os mesmos dados DNS do CentOS. Para ver os DNS do CentOS:

# cat /etc/resolv.conf

Agora deverá ter a internet funcionando no Windows.

Página anterior     Próxima página

Páginas do artigo
   1. Introdução
   2. Rede
   3. Acesso remoto
   4. Últimos ajustes
Outros artigos deste autor

Unreal Tournament 2004 - Servidor Linux

Nginx: Poderoso servidor WEB para Linux

Leitura recomendada

file-rc - gerenciando a inicialização de serviços

Ubuntu 64: Como criar um chroot para aplicações 32 bits

Resolvendo o problema de gerenciamento de energia - ACPI

Instalação e Configuração de Servidor SSH no Debian

Instalação do Asterisk - Distribuição Trixbox

  
Comentários
[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.

Esotu usando Fedora 10.

[2] Comentário enviado por eduveks em 06/02/2009 - 14:15h

Para executar o comando:

/usr/bin/VBoxTunctl -u xxxx

Tem que ser como root, por que vai criar uma interface de rede virtual.

E os comandos do rc.local é executado como root. No meu caso esta tudo pelo como root.

No teu caso, só este comando que deve ser preciso então:

/usr/bin/nohup /usr/bin/VBoxVRDP -startvm winserver > /dev/null &

Que isto apenas inicia a máquina virtual, para rodar em background. Onde "winserver" é o nome da máquina virtual em questão.

[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


[4] Comentário enviado por vagnersobrinho em 08/02/2009 - 02:11h

Mandou bem!

[5] Comentário enviado por sidnei.weber em 09/02/2009 - 00:08h

E como faço pra inicializar a máquina virtual pelo terminal?

Aqui no meu ponho certinho o nome como criei no Virtual Box, e sempre diz que o nome é invalido!?!?

Isso já aconteceu com algué?

Ótimo tutorial, parábens!

[6] Comentário enviado por eduveks em 09/02/2009 - 00:15h

Nunca tive estes problema de nome inválido...

Mas pode ser o usuário, você criou a máquina com o root e esta iniciando com o root?

Vc pode verificar com:

ls ~/.VirtualBox/Machines/

Tem que ter ai uma pasta com o nome da máquina virtual que vc quer usar. Dentro do "home" do usuário que inicia a máquina virtual.

[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.

Valeu...

[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.

[9] Comentário enviado por juliaojunior em 10/02/2009 - 19:35h

gostei do artigo, e vou testar.

[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.

[12] Comentário enviado por chaplinux em 24/02/2009 - 13:25h

Bom na NOVA VERSAO DO VBOX! não eh mais necessario essas gambiarras! rs...

Entre na Opção de "Configurações" ou "Setting" / "Rede" ou "Network" / "Adapdator 1"

escolha a opcao "Conectado a" ou "Attached to" , mude para "Interface do Hospedeiro" ou "Host Interface"

escolha mais a baixo em "Placa de Rede do Hospedeiro" ou "Host Interface" , a ethX que vc usa na rede local.

Só da OK. e usar a mesma faixa de rede na maquina virtual como na local. e esta pronto! tudo transparente!

Flw!

[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

/usr/bin/nohup /usr/bin/VBoxVRDP -startvm rwinsrv > /dev/null &


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts