Logotipo Dicas-L, por Ricardo Burile

Busca

Visite também: UnderLinux ·  VivaOLinux ·  LinuxSecurity ·  NoticiasLinux ·  BR-Linux ·  SoftwareLivre.org ·  [mais]   
 

Você está aqui: Home  → Arquivo Dicas-L

 

PHP CONFERENCE

Assine a Lista Dicas-L

Receba diariamente por email as dicas
de informática publicadas neste site
Para se descadastrar, clique aqui.

Criando servidores virtuais com FreeBSD Jail

Colaboração: Valdomiro de O. Souza Jr.

Data de Publicação: 08 de Agosto de 2007

Segundo uma pesquisa realizada pela AMD, a maioria dos servidores opera com menos de 15% da capacidade. Acredito que este seja um dos motivos que levaram o assunto virtualização ao topo dos projetos da área de TI para 2007.

Até setembro passado eu tinha uma pendência antiga na minha agenda, utilizar o FreeBSD Jail em algumas aplicações da empresa, mas se eu soubesse que era tão fácil e prático a virtualização de servidores utilizando o FreeBSD Jail, eu já teria feito isso há muito tempo.

O FreeBSD Jail permite a virtualização de sistemas operacionais de uma forma muito fácil, o que possibilita a criação de diversos servidores virtuais e independentes, em um único servidor FreeBSD, também possibilitando que todos estes servidores virtuais compartilhem todos os recursos de hardware (processadores, memórias, discos e placas de redes).

Bom, chega de papo furado! Vamos meter a mão na massa, criando e configurando os ambientes virtuais.

1. Criando uma máquina virtual

A) Crie um arquivo "criando_ambiente_jail.sh" com as linhas abaixo

  D=/caminho/nome_do_jail   # Exemplo: /virtual/intranet
  cd /usr/src
  mkdir -p $D
  make world DESTDIR=$D
  cd etc
  make distribution DESTDIR=$D
  mount_devfs devfs $D/dev
  cd $D
  ln -sf dev/null kernel

B) Execute o arquivo "criando_ambiente_jail.sh"

  #> sh criando_ambiente_jail.sh

2. Configurando o servidor BASE

Servidor BASE é o sistema operacional principal onde serão instalados e inicializados os ambientes virtuais jail.

2.1. Editar o arquivo /etc/rc.conf

  sendmail_enable="NO"
  inetd_flags="-wW -a <IP do sistema BASE>"
  rpcbind_enable="NO"
  syslogd_flags="-ss"

2.2. Editar o arquivo /etc/ssh/sshd_config

Este passo deve ser executado em todas as máquinas virtuais que rodarem o daemon do SSH, preenchendo o campo <IP DO SISTEMA> com o IP da máquina virtual.

Habilite as linhas abaixo:

  Port 22
  Protocol 2
  ListenAddress <IP DO SISTEMA>

2.3. Criando, editando e copiando arquivos

2.3.1. Edite o arquivo /etc/sysctl.conf

  #> echo security.jail.set_hostname_allowed=0 >> /etc/sysctl.conf

Mais informações sobre este parâmetro podem ser encontradas utilizando o "man jail"

2.3.2. Criando e copiando arquivos

  #> cp -r /stand /caminho/nome_do_jail/
  #> touch /caminho/nome_do_jail/etc/fstab
  #> cp /etc/resolv.conf /caminho/nome_do_jail/etc/

3. Configurando os arquivos da nova máquina virtual

  #> vi /caminho/nome_do_jail/etc/rc.conf

Inserir a linha:

  network_interfaces=""

Opcionais

  rpcbind_enable="NO"
  sendmail_enable="NO"
  
  #> vi /caminho/nome_do_jail/etc/syslog.conf

Altere a linha:

de

  *.err;kern.warning;auth.notice;mail.crit                /dev/console

para

  *.err;kern.warning;auth.notice;mail.crit                /var/log/messages

Edite o rc.conf do sistema BASE e insira as linhas abaixo:

  #> vi /etc/rc.conf
  jail_enable="yes"
  jail_list="NomeDoJail01  NomeDoJail02 ... NomeDoJailNN"
  #
  # As linhas abaixo devem ser criadas para cada máquina virtual
  #
  jail_NomeDoJail01_rootdir="/caminho/nome_do_jail_01/"  # Jail's root directory
  jail_NomeDoJail01_hostname="nome_do_jail_01.exemplo.com"  # Jail's hostname
  jail_NomeDoJail01_ip="<IP do Servidor Virtual01>"  # Jail's IP number
  jail_NomeDoJail01_exec="/bin/sh /etc/rc" # command to execute in jail
  jail_NomeDoJail01_devfs_enable="YES" # mount devfs in the jail
  jail_NomeDoJail01_fdescfs_enable="YES" # mount fdescfs in the jail
  jail_NomeDoJail01_procfs_enable="YES" # mount procfs in jail
  jail_NomeDoJail01_fstab="" # fstab(5) for mount/umount
  jail_NomeDoJail01_flags="-l -U root" # flags for jail(8)

4. Acessando o ambiente virtual

4.1. Inicialização

  #> ifconfig <interface de rede> inet alias <IP do Servidor Virtual>/32

Não esqueça de incluir as configurações do <IP do Servidor Virtual> na <interface de rede> no /etc/rc.conf do sistemas BASE.

  #> mount -t procfs proc /caminho/nome_do_jail_XX/proc
  #> jail /caminho/nome_do_jail_XX nome_do_jail_01.exemplo.com <IP do Servidor Virtual> /bin/sh /etc/rc

4.2. Acessando o ambiente virtual

  #> jail /caminho/nome_do_jail_XX nome_do_jail_XX.exemplo.com <IP do Servidor Virtual> /bin/sh

Pronto, agora é só instalar os pacotes necessários para o seu servidor web, banco de dados, email, ldap, arquivos, ...

5. Dicas:

5.1. Removendo um JAIL:

  #> chflags -R noschg /caminho/jail
  #> rm -Rf /caminho/jail

5.2. Comandos de administração

  jls, jail e jkill

5.3. Inicializando e parando um ou mais Jails

Para todos os Jails

  # /etc/rc.d/jail stop
  # /etc/rc.d/jail start

Para um Jail

  # /etc/rc.d/jail stop <nome do jail>
  # /etc/rc.d/jail start <nome do jail>

6. Referências:

  1. man jail
  2. http://www.freebsddiary.org/jail-5.php
  3. http://www.onlamp.com/pub/a/bsd/2006/03/09/jails-virtualization.html
  4. http://memberwebs.com/nielsen/freebsd/jails/
  5. http://www.amd.com/br-pt/Processors/ProductInformation/030_118_8796_14287,00.html

Veja a relação completa dos artigos de Valdomiro de O. Souza Jr.

Stumble Upon Digg This Del.icio.us Twitter Recomendar este artigo a um amigo Entre em contato Formato PDF
Newsfeed RSS
Formato para impressão
StumbleUpon Digg Del.icio.us Twitter Recomendar Contato PDF RSS Imprimir

Referências Adicionais

Referências adicionais sobre os assuntos abordados neste site podem ser encontradas em nossa Bibliografia.

Avalie esta dica

  • Currently 3.02/5
  • 1
  • 2
  • 3
  • 4
  • 5

Avaliação: 3.0 /5 (625 votos)

Opinião dos Leitores

Seja o primeiro a comentar este artigo
*Nome:
Email:
Me notifique sobre novos comentários nessa página
Oculte meu email
*Texto:
 
  Para publicar seu comentário, digite o código contido na imagem acima
 


Powered by Scriptsmill Comments Script

English for Reading and Listening
Enriqueça o seu vocabulário recebendo diariamente mensagens divertidas em inglês, com áudio em MP3.
Saiba mais

Biblioteca

Desenvolvendo Websites com PHP
Por Juliano Niederauer

O Monge e o Executivo: uma História sobre a Essência da Liderança
Por James C. Hunter

Extreme Programming
Por Vinicius Manhaes Teles

UML: Guia do Usuário
Por Grady Booch, James Rumbaugh e Ivar Jacobson

O Vendedor de Sonhos
Por Augusto Cury

Segurança de Redes em Ambientes Cooperativos
Por Emilio Tissato Nakamura e Paulo Licio de Geus

O Conhecimento em Rede
Por Carlos Nepomuceno e Marcos Cavalcanti

Utilizando UML e Padrões
Por CRAIG LARMAN

Sistema de Banco de Dados
Por Abraham Silberschatz

Hardware PC: Guia de Aprendizagem Rápida
Por Carlos E. Morimoto

Manual Completo do Linux: Guia do Administrador
Por Evi Nemeth, Trent R. Hein, Garth Snyder

Redes de Computadores e a Internet
Por James F. Kurose e Keith W. Ross

O Segredo
Por Rhonda Byrne

Os Segredos da Mente Milionária
Por T. Harv Eker

Construindo Sites com CSS e (X)HTML
Por Mauricio Samy Silva

Use a Cabeça!: JSP & Servlets
Por Brian Bashan, Kathy Sierra, Bert Bates

Expressões Regulares: Uma Abordagem Divertida
Por Aurélio Marinho Jargas

Qualidade de Software
Por Andre Koscianski Michel dos Santos Soares

Descobrindo o Linux: Entenda o Sistema Operacional GNU/Linux
Por Joao Eriberto Mota Filho

Enterprise Javabeans 3.0
Por Bill Burke, Richard Monson