quinta-feira, 13 de agosto de 2009

VIrtualização: Faça você mesmo



Já há algum tempo que quero fazer um tutorial, ou como é o objetivo do blog: Uma receita, sobre virtualização pois essa é uma tecnologia que tive oportunidade de atuar com AIX e Red-Hat e que vem despertando muito interesse em mim.

Virtualização, apesar de já existir há muitos anos, vem se tornando a grande assunto em tecnologia do momento. Tem o ponto de vista corporativo, onde é possível fazer virtualização de vários servidores em uma máquina, implementar servidores com alta disponibilidade, etc. A PRODAM, que é responsável pela tecnologia de informação da Prefeitura de São Paulo reorganizou toda sua infra-estrutura através da virtualização de seus servidores. No vídeo acima Luís Fernando Vieira Quevedo, Gerente de infra-estrutura e produção, fala sobre como foi o processo de virtualização de 130 servidores em 3 lâminas Blade.

Quanto a virtualização de servidores, alta disponibilidade e Storage corporativo eu ainda não tive oportunidade de criar um tutorial a altura, mas estou aproveitando essas minhas férias forçadas pra brincar com essa tecnologia em casa.

O enfoque que quero dar nesse post é a questão da ferramenta de virtualização da VMWare que além de muito útil pode nos dar as bases de um conceito bastante consistente de como a visrtualização de ambientes funciona. Existem outras ferramentas como o Virtual PC da Microsoft e o Virtual Box. Vou explicar passo a passo a instalação do VMWare Server, que é gratuito. É muito interessante para fins educacionais, estudos, testes e a curiosidade de conhecer novos sistemas operacionais e ferramentas sem ter que particionar o HD, além de ser muito mais prático. É possível virtualizar vários sistemas operacionais na mesma máquina, claro, isso depende muito do equipamento que você tem em mãos para virtualização. No meu caso estou usando um Core 2 Duo Intel, motherboard Gigabyte GA-G31M-S2L e 4GB de memória RAM Kingston. Nada assustador.

O Conceito

Virtualização é a execução de diversos sistemas operacionais em um único equipamento físico. Não confunda Virtualização com Emulação. Emulação é a recriação de um ambiente de trabalho sem qualquer relação necessário com o ambiente-anfitrião e sem auxílio de hardware, enquanto a virtualização permite criar diversas máquinas virtuais, utilização recursos de rede e de hardware.

A receita do bolo
O primeiro passo é baixar o VMWare Server no próprio site da VMWare que é gratuito.
Antes de baixar é necessário clicar em “Register” e fazer o registro para você receber por e-mail o serial do VMWare. Depois é só baixar o arquivo de aproximadamente 150mb.

O link do registro é esse: http://register.vmware.com/content/download-107.html

O link do download é esse: http://download3.vmware.com/software/vmserver/VMware-server-installer-1.0.7-108231.exe

Depois de baixar, execute o arquivo .exe e inicie o processo de instalação seguindo o " Windows way of life", ou seja, é só ir dando next até finalizar a instalação.

Depois de finalizado, abra o “VMWare Server Console”. Clique em OK.

A próxima tela irá mostrar as máquinas virtuais que já estão instaladas em seu computador

No meu caso, tenho instalado o Ubuntu 8.04, o Windows Server 2003 Enterprise Edition, o Windows Server 2008 e o Windows Vista x64 Edition.

O Ubuntu pode ser baixado através da própria internet gratuitamente através do site http://www.ubuntu-br.org/. A lincença é free. Já as máquinas virtuais do Windows precisam da licença para instalação.

A instalação de máquinas virtuais é basicamente a mesma, independente do SO que será instalado. Para esse tutorial estarei instalando do Solaris10 x64, pois é um sistema operacional desenvolvido pela Sun, é free e nunca vi o funcionando desse SO.

Para baixar o Solaris, clique no link http://dlc.sun.com/osol/opensolaris/2008/05/os200805.iso
Obs.: Como disse, a forma de instalação de qualquer sistema operacional é a mesma, seja Windows, Linux, Solaris etc. Você pode fazer a instalação de um arquivo .iso ou através do drive de CD/DVD.

Nesse exemplo estarei usando o .iso.

Então, mãos na massa. Depois de aberto o VMWare Server clique em “File”, “New” e depois “Virtual machine” e depois Clique em “Avançar”.

Agora você deve escolher o sistema operacional que você está instalando, pois dependendo do SO a ser instalado, ele já configura um default de configurações como espaço em disco, memória RAM mínima para instalação. Selecionando o sistema operacional na opção “Version”, você pode escolher a versão do sistema operacional que você está instalando. Na nossa receita selecione o “Sun Solaris” e em Version escolha “Solaris 10” e clique em avançar.

Agora você irá definir onde salvar sua VM. Eu deixei como está, mas você pode salvar onde você achar melhor. Clique em “Avançar”.

Neste ponto iremos configurar a rede. Deixe clicada a primeira opção, pois logo que instalar o SO ele já estará na sua rede e com a internet em funcionamento. Clique em “Avançar”. A internet que utilizo é ADSL. Não sei como é o funcionamento com net via wireless mas se souber mande sua dica.

Agora vamos definir o quanto de espaço em disco que iremos reservar para essa máquina virtual. Deixaremos 8GB de espaço em disco mas o detalhe é desclicar a opção “Allocate all disk space now”, pois se ficar clicado ele já alocará para o SO os 8GB, mesmo que não seja utilizado. Desclicando-o ele reservará esse espaço para a VM,mas não alocará esses 8GB de imediato, o espaço será sendo utilizado a medida que você for ocupando os espaço em disco. Clique em “Concluir”.

Vamos entrar no processo de criação de disco. Como podem ver já aparece o Solaris 10 como uma das máquinas virtuais do inventário do VMWare. Foi criada a VM mas ainda o Solaris não está instalado. Em “Devices” são mostrados as configurações de nosso computador virtual como quantidade de memória, hard disk, cd ROM, rede, etc...

Agora é preciso configurar a máquina virtual clicando em “Edit virtual machine settings" onde vamos configurar a quantidade de memória, boot em drives, configurações de rede, como é feito em qualquer computador “convencional”. Clique na opção Cd-Rom.

Voilá! É chegada a hora de configuramos onde vamos dar o boot para dar início à instalação do sistema operacional. Se deixar como está, quando iniciar a máquina virtual, ele dará o boot no cd-rom, mas no nosso caso vamos utilizar o .iso do Solaris 10, portanto, mude a opção para “Use ISO image” e procure onde você deixou salvo o arquivo iso do Solaris.

Depois que selecionar o arquivo .iso dê OK e pronto! Já está tudo configurado, agora vamos instalar o Solaris 10.

Clique em “Start this virtual machine” e dará início a instalação do SO. A instalação do Solaris é bem simples, mas se estiver instalando outro sistema operacional, é só fazer como você está acostumado. Detalhe: No começo é estranho trabalhar com o SO em outra janela pois para dar um comando na máquina virtual você precisa clicar dentro dela. Dois comandos são fundamentais na utilização: Ctrl+Alt você sai da máquina virtual e Ctrl+Alt+Enter coloca a VM em full Screen. Para sair do modo full screen é só clicar Ctrl+Alt+Enter.

Essa versão do Solaris é uma das que roda através do cd, por isso, toda vez que reiniciamos a VMWare ele dá boot novamente. Nos demais SO’s, depois da instalação ele não dá mais boot nem no cd-rom e nem no arquivo .iso.

Divirtam-se !!!

domingo, 26 de julho de 2009

SSH sem uso de senha

Como último tópico desta série sobre SSH, vou mostrar como habilitar o ssh sem senha.

Primeiro precisamos gerar um par de chaves públicas/privadas para autenticar com chaves RSA2 ou DSA.

RSA:
ssh-keygen -t rsa
DSA:
ssh-keygen -t dsa

As chaves são gerados no $HOME do usuário que você esta utilizando para que a chave seja criada

~/.ssh/id_rsa.pub
ou
~/.ssh/id_dsa.pub

OBS.: As permissões do home do usuário e do .ssh precisa ser setada como 750 em ambos os servidores.

Depois precisamos instalar a chave pública/privada no servidor ao qual desejamos logar sem senha.

ssh-copy-id -i ~/.ssh/id_rsa.pub user@remote_server
ou
ssh-copy-id -i ~/.ssh/id_dsa.pub user@remote_server

Podemos fazer o mesmo processo acima utilizando o comando scp.

scp ~/.ssh/id_rsa.pub user@remote_server:~/.ssh/authorized_keys
ou
scp ~/.ssh/id_dsa.pub user@remote_server:~/.ssh/authorized_keys

OBS.:
O comando acima irá instalar a chave pública local ~/.ssh/id_rsa.pub no arquivo ~/.ssh/authorized_keys do servidor remoto. Este arquivo possui o mesmo formato do arquivo ~/.ssh/know_hosts com uma chave pública por linha.
Para alterar o passphrase caso você tenho escolhido um utilizamos o comando abaixo:

ssh-keygen -p -t rsa -f ~/.ssh/id_rsa.pub
ou
ssh-keygen -p -t rsa -P old_passphrase -N new_passphrase -f ~/.ssh/id_rsa.pub

Após isso é necessário exportar a chave pública para o servidor remoto novamente.

quarta-feira, 15 de julho de 2009

SSH: X11 Forwarding

Solução aplicavel em: HP-UX, SUSE, AIX, Solaris, Red Hat, Debian

Com esta opção no SSH podemos redicionar conexão ao X Window no servidor para o servidor X local.

Ao realizar a conexão no servidor X Remoto a conexão é direcionada por default ao DISPLAY :10

Para isto realizamos a seguinte configuração nos arquivos abaixo:

Descomentar a linha no arquivo /etc/ssh/sshd_config (arquivo de configuração do servidor).

AllowX11Forwarding yes

E depois alterar o arquivo /etc/ssh/ssh_config (arquivo de configuração do cliente).

Host *

ForwardAgent yes
ForwardX11 yes

Para realizar testes logando basta seguir os passos abaixo em um cliente Linux/UNIX.

ssh servidor_remoto -X -l user

OBS.:

Se estiver utilizando o Putty como cliente é necessário fazer as seguintes configurações:

a. Instalar um servidor X local (como exemplo utilizo o Xming)

b. Marcar a opção “Enable X11 forwarding” no Putty

sábado, 11 de julho de 2009

SSH Tunnel Proxy

Aplicavel para: HP-UX, SUSE, AIX, Solaris, Red Hat, Debian

Continuando com ess série de receitas sobre o SSH, vamos ver hoje Tunnel.

O conceito é praticamento o mesmo do X11 Forward, com esta opcão do SSH direcionamos uma porta do servidor remoto para qualquer porta local.

Exemplo, para direcionar a porta 25 do servidor para a porta 3000 local mantendo a conexão por 60 segundos:

ssh -l user servidor -L3000:servidor:25 -f sleep 60

Agora basta verificar se a porta 3000 encontra-se aberta localmente.

telnet localhost 3000

OBS.:

Se estiver utilizando o Putty como cliente é necessário fazer as seguintes configurações:

a. Na opção “Source port” coloque a porta que será aberta localmente
b. Na opcão “Destination” coloque ipservidor:porta
c. Deixe as opção “Local” e “Auto” selecionadas e clique em “Add”

segunda-feira, 6 de julho de 2009

SSH timeout for connection idle

* Procedimento igual nos sistemas HP-UX, SUSE, AIX, Solaris, Red Hat e Debian

Recentimente em testes e estudos aqui em casa percebi que em alguns servidores que eu estava logando quando uma conexão ssh ficava aberta por mais de 5 minutos sem que eu tomasse nenhuma ação, a mesma se encerrava automaticamente por inatividade.

Para solucionar este problema, encontrei duas opções:

1. Configuração realizada no servidor SSH

Habilitar a seguinte configuração do arquivo /etc/ssh/sshd_config

KeepAlive yes
ClientAliveInterval 240

Isto faz com que o servidor ssh envie um “null packet” para o cliente a cada 4 minutos fazendo a conexão se manter ativa.

2. Configuração realizada no cliente SSH

No Putty por exemplo, basta setar um valor de 120 na opção “Sending of null packets to keep session active“.
Fazendo com que o Putty envie um “null packet” para o servidor a cada 2 minutos mantendo a conexão ativa novamente.