domingo, 7 de setembro de 2008

Bramane

Faz tempo que venho procurando por uma ferramenta que me permita construir aplicações web de forma bem rápida. Sei que existem algumas boas ferramentas para isso, mas a grande maioria não foi feita por brasileiros e nem para brasileiros. Estou cansado disso. O correto seria eu começar a fazer parte da comunidade de uma dessas ferramentas e ajudá-la a melhorá-la como considero que seria ideal. Na teoria isso é muito bacana, mas na prática demora muito tempo. Envolve muita discussão. Muita paciência e, claro, uma boa dose de influência naquele projeto, o que só se consegue com bastante tempo. Sem comentar a questão de bons conhecimentos em inglês.

Desde pequeno ouço que "tempo é dinheiro". Vai ver por isso não tenho muito dinheiro, pois nunca tenho muito tempo. Ao contrário da grande maioria dos nerds tenho vida social. Gosto de sair, conhecer e conversar com pessoas. Tenho família para dar atenção e outras coisas.

Seja qual for a questão o fato é que decidi construir eu mesmo a tal ferramenta para construir aplicações para web. Vou chamá-la de Bramane, que para mim, tem o significado de aquele que é ou tenta ser puro.

Aos poucos vou postando artigos sobre isso. Até lá!

segunda-feira, 1 de setembro de 2008

VServer com IPs falsos

Caso você tenha apenas um IP válido, mas precise ter sites hospedados em cada um deles uma saída é:

  • Colocar todos os vservers numa mesma rede virtual, ex.: 192.168.1.x
  • Cada vserver com seu próprio IP
  • Encaminhar todas as solicitações da porta 80 para os devidos vserver.

Para isso configure o Host assim:

# /etc/network/interfaces on a Debian box,
# configure on other distros with your preferred way
auto dummy0
iface dummy0 inet static
address 192.168.1.250
netmask 255.255.255.0

E os Guests assim:

cd /etc/vservers/$VSERVER/interfaces/0
echo dummy0 > dev
echo 192.168.1.1 > ip
echo 1 > name
echo 24 > prefix

Onde $VSERVER é o nome do Guest

Volte no Host e configure o Iptables assim:

# iptables -t nat -A POSTROUTING -s 192.168.1.0/24 \
-d ! 192.168.1.0/24 -j SNAT --to-source $EXTIP

Onde $EXTIP é o IP válido.

Para cada guest que estiver rodando apache é preciso configurar o Iptables do Host assim:

# iptables -t nat -A PREROUTING -s ! 192.168.1.0/24 \
-m tcp -p tcp --dport $EXTPORT
-j DNAT --to-destination $VHOST:$INTPORT

Onde:

  • $EXTPORT é o número da porta externa do serviço
  • $VHOST é o virtualhost do Guest
  • $INTPORT é a porta interna do Guest que está esperando pelas requisições

Copiando vservers para outro computador

Para copiar um vserver de um computador para outro os passos são:

  • Sincronizar os computadores
# rsync -Hazx -v --numeric-ids /vserver/vserver_nome vserver_endereco:/vserver/vserver_name
# rsync -Hazx -v --numeric-ids /etc/vservers/vserver_name/ vserver_endereco:/etc/vservers/vserver_name

Onde:

  • vserver_nome: é o nome do vserver que se deseja copiar.
  • vserver_endereco: é o endereço do servidor para onde se deseja copiar o vserver.
  • Parar o vserver no computador onde ele se encontra atualmente
vserver vserver_nome stop

Onde:

  • vserver_nome: é o nome do vserver que se está copiando.
  • Sincronize os computadores novamente
# rsync -Hazx -v --numeric-ids /vserver/vserver_nome vserver_endereco:/vserver/vserver_name
# rsync -Hazx -v --numeric-ids /etc/vservers/vserver_name/ vserver_endereco:/etc/vservers/vserver_name

Onde:

  • vserver_nome: é o nome do vserver que se deseja copiar.
  • vserver_endereco: é o endereço do servidor para onde se deseja copiar o vserver.
  • Iniciar o vserver no computador para onde ele foi copiado.
vserver vserver_nome start

Onde:

  • vserver_nome: é o nome do vserver que se acabou de copiar.

Para verificar se o servidor está ativo rode:

# /etc/init.d/util-vserver status

Verificar quais servidores virtuais estão rodando

Use o comando:

# /etc/init.d/util-vserver status

Iniciar e parar todos os servidores de uma vez

Para iniciar use o comando:

# /etc/init.d/util-vserver start

Para parar use o comando:

# /etc/init.d/util-vserver stop

Iniciar e parar um servidor virtual

Para iniciar use o comando:

# vserver vserver_nome start

Para parar use o comando:

# vserver vserver_nome stop

Onde:

  • vserver_nome: é o nome que se deu ao servidor virtual.

Definir o servidor para iniciar quando o computador for reiniciado

Saia do servidor virtual (exit) e então rode o comando:

# echo "default" >> /etc/vservers/vserver_nome/apps/init/mark

Onde:

  • vserver_nome: é o nome que se deu ao servidor virtual.