domingo, 23 de março de 2008

VMWare e a briga com o relógio

Quem usa o VMWare sabe: manter o relógio da máquina virtual em sincronia com o mundo real pode ser difícil. Em determinados casos, uma tarefa verdadeiramente dolorosa. Mas nada que um pouco de jeito não resolva - como mostrado a seguir:

Vamos precisar de:

1) Uma máquina VMWare (dã)
2) Uma máquina virtual hospedada (dã n. 2)
3) Se o seu hospedeiro for Linux, os fontes do kernel - bem como o ambiente de desenvolvimento em C. Se o seu VMWare levanta e funciona bem o bastante para o relógio das máquinas te incomodar... você já tem isso. :)
4) Se a máquina hospedada for Linux, irá precisar também do ambiente de desenvolvimento em C e dos fontes do kernel. Na verdade isso deve se aplicar também aos BSD e Solaris - mas estes eu nunca testei.
5) Montar a imagem .iso que contém o programa a ser instalado na máquina virtual. No Linux elas ficam em "/usr/lib/vmware/isoimages". Não uso Windows como host para máquinas VMWare - então não sei dizer onde isso fica nele. Mãos à obra.


Como a coisa é feita:

Para Linux:
1) Instale e configure a máquina virtual - da mesma forma que faria com um sistema comum.
2) Crie, no painel de gerenciamento de dispositivos de hardware do VMWare, uma unidade de CD. Diga que irá utilizar uma imagem ISO, e leve o sistema pela mão até ela. As imagens ficam localizadas em "/usr/lib/vmware/isoimages", lembra? Escolha a imagem aproprieada ao Linux, e pronto.
3) Agora inicie o Linux novamente. Eu deixo esta unidade de CD permanentemente montada, para simplificar minha vida em caso de upgrade do servidor VMware. A linha para tal, em seu fstab, é simples:

"/dev/hdb /mnt/vmiso auto defaults,ro 0 0"

"/dev/hdb" aponta para o seu dispositivo de CD. Altere para se adequar ao seu sistema.
"/mnt/vmiso" aponta para o ponto de montagem escolhido por você. É arbitrário, e é ali que o CD virtual será montado.
"auto" indica que a montagem é automática. Ou seja: durante o boot.
"defautls,ro" indica que utilizamos as opções padrão, e que é apenas leitura (ro).
"0 0" indica que não será testado o sistema de arquivos em tempo algum. Nem em número de boots nem em caso de falta de luz. Testar para que? É apenas leitura. :)

4) Neste ponto de montagem veremos dois arquivos: VMware-Tools-XXXXXXX.i386.rpm e
VMware-Tools-XXXXXXX.tar.gz. São eles que instalam os módulos extras, para que sua máquina virtual possa usufruir de alguns benefícios básicos: relógio acertado, desligamento automático caso o hospedeiro seja desligado... amenidades no gênero. E, como todas as amenidades, muito desejadas. :)
5) Escolha seu arquivo (só instalamos um deles). Se sua Distro for baseada em rpm, sua vida acaba de ficar mais fácil: "rpm -U " vai instalar ele bonitinho para você. Se a sua Distro for baseada em Slackware ou Debian... é tgz a sua escolha. Descompacte em algum lugar, e siga as instruções de instalação. Desculpe, sou usuário de OpenSuse - então para mim o caminho foi mais simples. :)
6) As perguntas serão todas simples. Após o término (e se o seu ambiente de compilação estiver OK), os módulos do VMware estarão instalados. Atenção: no início do processo a rede é derrubada - então NÃO TENTE ESTA ATUALIZAÇÃO VIA SSH. Você irá perder a conexão de rede, e não irá sequer iniciar o processo direito. Esta atualização tem que ser feita via o shell do próprio VMware. É, aquela janela mesma - comilona de banda e tudo. Desculpe, mas não tem outro jeito.
7) Ao terminar a configuração, é preciso reiniciar o serviço de rede. Pode-se simplesmente fazer um "/etc/init.d/network restart" ou então dar um boot na máquina virtual. Mas antes é bom se acertar o relógio para sincronia com o hospedeiro:
8) Para esta sincronia, existem duas maneiras. Se o seu cliente VMware possui uma interface gráfica, abra o programa "vmware-tollbox", e marque a opção de sincronia de horário com o host. Se foi este seu caso, acabou! Se não, siga para o passo 9).
9) Se o seu cliente NÃO possui uma interface gráfica... você pode editar na mão grande o arquivo de configuração. DESLIGUE a máquina virtual antes. aso contrário o arquivo será reescrito. O Arquivo fica junto com os dados da máquina virtual (existe um para cada uma). Seu nome é .vmx. Abra ele em um editor de textos comum (vi, mc, kate, emacs... à vontade), e edite a linha que diz "tools.syncTime = "FALSE"". Altere ela para "TRUE". Pronto! Seu host agora tem o relógio sincronizado com o VMware hospedeiro.


Para Windows:
1) Instale e configure a máquina virtual - da mesma forma que faria com um sistema comum.
2) No menu do shell VMware (aquele, onde aparece uma lista de máquinas virtuais), dê um clique com o botão direito na máquina virtual Windows, e mande instalar as ferramentas.
3) Na própria máquina virtual irá aparecer uma tela padrão, de instalação de software. Termine a instalação por ali e reinicie a máquina virtual.
4) Abra a janela das ferramentas do VMware (é aquele ícone azul, perto do relógio). Marque a opção para sincronizar o relógio com o host. Pronto! :)


Nota importante:

Esta sincronia do VMware não previne contra o relógio adiantar. O que ela faz é evitar que ele atrase. De um modo geral é só disso que precisamos - pois as máquinas virtuais costumam atrasar, e não adiantar. Existem excessões - uma delas notória - mas isso é matéria para outro post.

Nenhum comentário:

Pesquise a Internet