domingo, 30 de agosto de 2015

Instalação e configuração do LTSP 5 no Ubuntu 11.04

O LTSP (Linux Terminal Server Project) é uma solução baseada na ideia do thin client, onde o cliente busca em um servidor o sistema operacional para inicializar o serviço. O propósito do LTSP é utilizar computadores com menos recursos de processamento como clientes, acessando um servidor e rodando neste servidor todo o processamento.

Funcionamento do LTSP e Instalação do Servidor

Como é o Funcionamento do LTSP

O primeiro requisito para que o LSTP funcione bem é ter uma rede de boa qualidade. Como tudo ocorre remotamente, ter equipamentos de qualidade é fundamental para o tráfego dos dados entre o servidor e os clientes.

O funcionamento do LTSP depende de duas variáveis: O servidor e o cliente.

O cliente é a parte mais simples, para seu funcionamento é necessário apenas que ele seja capaz de iniciar o boot pela placa de rede. O Servidor por sua vez precisa de alguns serviços rodando para que seja capaz de prover o LTSP.

O processo de inicialização do LTSP começa com o boot no cliente. Ao dar o boot a partir da placa de rede ele procura um servidor de IP. O servidor de IPs envia para o cliente o IP. De posse do IP começa a troca de informações entre o servidor e o cliente. O servidor envia para o cliente o kernel através do serviço FTP. Com o kernel, o X é habilitado, disponibilizando a interface gráfica.

O usuário loga no sistema e seu $HOME, o seu diretório pessoal é montado através do NFS. A transferência de dados entre o servidor e o cliente é feita através do ssh, criando uma túnel criptografado entre os dois.

A Instalação do Servidor

O LTSP tem pacotes para várias distribuições, nosso servidor será montado a partir de um Linux Ubuntu 11.04. A primeira coisa que faremos é criar a estrutura básica de serviços. Vamos instalar o dhcp3-server, o tftp-hpa, o nfs-kernel-server e o openssh-server.

A instalação dos pacotes:

# apt-get install dhcp3-server
# apt-get install tftp-hpa
# apt-get install nfs-kernel-server
# apt-get install openssh-server

A instalação do LSTP propriamente dito é feito a partir do pacote ltsp-server-standalone que disponibilizará uma série de comandos para sua instalação, sendo:
  • ltsp-build-client;
  • ltspfs;
  • ltsp-info;
  • ltsp-update-image;
  • ltsp-update-sshkeys;
  • ltsp-chroot;
  • ltspfsmounter;
  • ltsp-localapps;
  • ltsp-update-kernels.
Depois de instalar o ltsp-server-standalone vamos usar o comando:
# ltsp-build-client

Para criar o ambiente chroot em "/opt/ltsp" onde o LTSP rodará, o comando é:
# ltsp-build-client --arch="i386"

o parâmetro --arch="i386" criará a estrutura do LTSP compilada para a versão i386. É bom especificar a arquitetura do LTSP porque se o servidor for 64 bits ele instalará o "ltspamd64". Como a maioria dos computadores clientes são todos 32 bits, se o LTSP for para 64 bits haverá erro na execução.

Este comando irá criar o diretório "/opt/ltsp". Quando o cliente montar o Linux depois do boot, ele montará este Linux e não o o sistema operacional do servidor. Isto se chama chroot.

Esta parte é a mais demorada pois o ltsp-build-client busca do mirror do LTSP toda a estrutura montada. Depois tudo estará praticamente pronto, é só fazer as configurações finais dos serviços para que tudo fique pronto. 

Configurando o LTSP - Alterando os Arquivos de Configuração

O primeiro arquivo de configuração que vamos alterar é o "/etc/dhcpd.conf". Este arquivo é o responsável pela configuração do servidor de IPs. Quando o computador cliente der o boot pela placa de rede ele procurará um servidor de IPs.

A configuração deste arquivo é bem simples, vejamos seu conteúdo.
### inicio do bloco
subnet 192.168.0.0 netmask 255.255.255.0{
  range 192.168.0.150 192.168.0.200;
  option domain-name "sua.empresa";
  option domain-name-servers 192.168.0.1;
  option broadcast-address 192.168.0.255;
  option routers 192.168.0.1;
  option subnet-mask 255.255.255.0;
# linha 8
  option root-path "/opt/ltsp/i386";
  if substring( option vendor-class-identifier, 0, 9 ) = "PXEClient" {
    filename "/ltsp/i386/pxelinux.0";
  }
  else{
    filename "/ltsp/images/i386.img";
  }
}

### fim do bloco

Explicando:
  • A linha número 1 indica a faixa de ips e a máscara de rede que o dhcp trabalhará;
  • A linha número 2 disponibiliza a faixa de ips para serem usados na rede;
  • A linha número 3 cria o domínio para as máquinas (é opcional);
  • A linha número 4 indica o DNS usado pela rede;
  • A linha número 5 indica o broadcast da rede;
  • A linha número 6 indica o roteador da rede;
  • A linha número 7 indica a sub-máscara de rede;
  • A linha número 9 indica onde está o ltsp;
  • O bloco iniciado a partir da linha número 10 indica onde está o arquivo de inicialização do sistema:
    O "pxelinux.0" é usado para chamar o kernel e enviá-lo para o cliente. A linha "filename "/ltsp/i386/pxelinux.0"" não se refere ao diretório "/opt/ltsp/i386". Obs.: Como este arquivo é enviado por um servidor ftp para o cliente, quem gerencia é o tftp-hpa. O diretório onde está o pxelinux.0 é "/var/lib/tftpboot/ltsp/i386". Como o diretório "/var/lib/tftpboot/" é o diretório raiz do tftp-hpa, só é necessário inserir o caminho derivado, ou seja, "/ltsp/i386/pxelinux.0". A configuração do tftp-hpa será visto na sequência.
Algumas considerações sobre o dhcpd (servidor de ips):

Se o servidor tiver mais de uma placa de rede, uma para a conexão com a internet e outra para a conexão com os clientes, cada uma das placas deverá ter uma faixa de ips diferentes. Não é possível ter duas interfaces de rede na mesma faixa de ips no micro.

Neste caso, o dhcp irá "escutar a placa de rede que está conectada à rede dos clientes ltsp.

Se o servidor tiver apenas uma placa de rede, os clientes ltsp ficarão na mesma faixa de ips da rede. Isto pode trazer um pequeno inconveniente, qualquer micro que for conectado na rede poderá receber o serviço ltsp se a BIOS estiver configurada para começar a sequência de boot com a placa de rede.

Configurando o TFTP-HPA

O tftp-hpa é configurado através do arquivo "/etc/default/tftpd-hpa". Vejamos seu conteúdo.
### INÍCIO DO BLOCO
TFTP_USERNAME="tftp"
TFTP_DIRECTORY="/var/lib/tftpboot"
TFTP_ADDRESS="0.0.0.0:69"
TFTP_OPTIONS="--secure"
RUN_DAEMONS="yes"

### FIM DO BLOCO

Vejamos sua configuração:
  • A linha número 1 indica o nome do serviço para a rede;
  • A linha número 2 indica o diretório raiz do tftp-hpa;
  • A linha número 3 indica quais endereços da internet ele atenderá, alem da porta. Observe que o endereço é 0.0.0.0, ou seja, ele está configurado para receber conexões de qualquer lugar da internet, qualquer IP. Para maior segurança, pode-se especificar qual rede ele atenderá, a mesma rede configurada no "/etc/dhcp/dhcpd.conf", 192.168.0.0. Apesar de ser um serviço ftp, a porta porta utilizada não é a mesma do serviço ftp padrão, que usa a porta 21;
  • A linha número 4 força o cliente a ir diretamente para o diretório especificado, criando uma camada de segurança. O cliente não conseguirá alterar o diretório que foi especificado na linha 2, impedindo que ele tenha acesso a arquivos indevidos;
  • A linha número 5 indica que o tftp trabalhará como daemon.

Configuração do arquivo /etc/inetd.conf

O arquivo "inetd.conf" é o arquivo de configuração dos serviços de internet. Neste foi escrita esta linha:
2000    stream  tcp nowait  nobody /usr/sbin/tcpd /usr/sbin/nbdrootd /opt/ltsp/images/i386.img

Esta linha configura o diretório onde está a imagem chroot compactada do sistema. O LTSP mantem uma copia do sistema atualizada que será enviada para cada cliente. Toda vez que o sistema for modificado como na instalação de um novo programa a imagem deve ser refeita com o comando:
# ltsp-update-image -a i386

Onde o parâmetro "-a i386" informa se a versão do sistema a ser reconstruído será 32 ou 64 bits.

A imagem do sistema está em "/opt/ltsp/images/i386.img".


Mais Configurações e Considerações

Configurando o NFS

O NFS é o serviço que disponibilizará os diretórios utilizados pelo ltsp. Como o ltsp roda remotamente, utilizando o protocolo TCP, é necessário compartilhar os diretórios que serão acessados.

Observe as linhas abaixo:

/opt/ltsp/i386 192.168.0.0(rw,no_subtree_check)
/home 192.168.0.0(rw,no_subtree_check)

A primeira linha compartilha (exporta) o diretório raiz do ltsp, "/opt/ltsp/i386", para a rede 192.168.0.0 com a permissão de leitura e escrita (rw). O "no_subtree_check" configura o nfs para não verificar a estrutura de diretórios. Isto aumenta a velocidade do nfs.

A segunda linha compartilha (exporta) o diretório dos usuários, "/home", para a rede 192.168.0.0 com as mesmas permissões de acesso do diretório do ltsp.

Algumas observações sobre a configuração do NFS:

A configuração do IP ou IPs que serão liberados para o acesso aos diretórios compartilhados deve estar em conformidade com as informações contidas no servidor de IPs.

Neste exemplo toda a rede está liberada para o acesso pois os computadores clientes estão em uma rede separada. Numa situação onde os clientes ltsp estão na mesma rede de outros micros, talvez seja prudente criar uma máscara de rede especificamente para esta rede ou até mesmo liberar individualmente cada um dos micros que estarão no ltsp configurando o IP individualmente.

Colocando os Clientes LTSP Para Funcionarem

Depois da configuração e verificação de cada um dos serviços que compõem o ltsp é hora de colocar os clientes para funcionarem.

Tomando por base que o computador cliente tem a opção de inicializar a sequência de boot pela placa de rede é só alterar a BIOS para que o primeiro dispositivo de boot seja a placa e rede.

Depois de ligar o computador é só esperar. Observe o vídeo:


Eu utilizei neste artigo um cliente ltsp rodando no vmware configurado como bridge dando o boot pela interface de rede.

Considerações Finais

O ltsp é uma solução para o uso de computadores com menor capacidade de processamento. Com um servidor dando suporte aos clientes, um parque de computadores antigos podem utilizar programas que não conseguiriam ser processados nos seus respectivos processadores.

No próximo artigo veremos configurações mais detalhadas do ltsp.



Créditos:
http://www.vivaolinux.com.br/artigo/Instalacao-e-configuracao-do-LTSP-5-no-Ubuntu-11.04
Por: hermes nunes pereira junior em 11/09/2011 

Nenhum comentário:

Portfolio Individual - Curso Superior de ADS - VI Semestre

SISTEMA DE ENSINO PRESENCIAL CONECTADO CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS WANDERLEY NUNES CRISTO PRO...