Passo-a-passo para configurar um servidor LTSP com o Debian GNU/Linux
Introdução
A intenção aqui é permitir uma instalação simples de um servidor de terminais e uma estação, de forma prática, simples e rápida, prevista em no máximo 40 minutos. A instalação foi dividida em 2 partes: servidor e cliente.
Condições e pré-requisitos
Condições e pré-requisitos de instalação (particulares e arbitrários) desta instalação:
- Distro: Debian GNU/Linux 3.1 - sarge;
- Versão do servidor de terminais (LTSP): 4.1;
- Número IP do Servidor: 192.168.1.10;
- Número IP do Terminal: 192.168.1.100;
- Faixa de IPs dinâmicos: 192.168.1.100-254;
- Servidor DNS: 200.163.79.1;
- Interface DHCP: eth0;
- Número MAC da placa de rede da estação: 00:E0:7D:D9:67:34;
- Servidores: dhcp (versão 3), tftp (pacote atftpd), nfs (pacote nfs-kernel-server);
- Gerenciador de diálogo: gdm - gnome display manager
- Método de boot do cliente: disquete
- Placa de rede do cliente: Realtek 8139
- Mouse do terminal: PS/2
Instalação e configuração do servidor
Antes de instalarmos o LTSP, preparamos os serviços básicos que este utiliza.
Servidor DHCP:
Um servidor DHCP precisa ser instalado e configurado para identificar os clientes, garantir que estes inicializem um kernel do linux e apartir daí comecem a executar as operações necessárias a se integrar ao conjunto LTSP.
O servidor DHCP utilizado estava na versão 3.0.1, que precisa que a versão do kernel seja maior ou igual 2.2.x:
# apt-get install dhcp3-server
Após a instalação é necessário rever as configurações deste serviço no arquivo /etc/dhcp3/dhcpd.conf(exemplo). Neste exemplo, mostramos configuração para placas PCI, caso tenha interesse por outros tipos de placas de rede, veja onde este material foi baseado.
# cd /etc/dhcp3
# mv dhcpd.conf dhcpd.conf.orig
# vi /etc/dhcp3/dhcpd.conf
Coloque este novo conteúdo no arquivo /etc/dhcp3/dhcpd.conf:
# NOVO CONTEÚDO DO ARQUIVO /etc/dhcp3/dhcpd.conf
subnet 192.168.1.0 netmask 255.255.255.0 {
range 192.168.1.100 192.168.1.254;
default-lease-time 86400;
max-lease-time 90000;
option subnet-mask 255.255.255.0;
option broadcast-address 192.168.1.255;
option routers 192.168.1.1;
option domain-name-servers 200.163.79.1;
group {
option root-path "192.168.1.10:/opt/ltsp/i386";
use-host-decl-names on;
} #fim do group
} #fim do subnet
As configurações das máquinas clientes (hosts) habilitam funcionalidades importantes como a configuração de opções na placa de rede. No momento em que o cliente buscar o IP no DHCP este o informa qual o caminho do kernel que precisará ser carregado para a memória pela opção 'filename'.
Perceba que em nosso caso utilizamos uma placa de rede pci. Para maiores informações sobre configurar o DHCP veja a seção Script de Configuração do LTSP 4.1.
Após terminar a configuração basta reiniciar o serviço do DHCP:
# /etc/init.d/dhcp3-server restart
Para testar se a configuração está ok, verifique os arquivos de log:
# tail /var/log/syslog
Servidor TFTP:
O TFTP é um serviço de FTP (File Transfer Protocol) simples desprovido de autenticação usado pelo EtherBoot nos clientes para que este possa baixar o kernel específico para seu uso (não necessariamente o kernel do servidor, não recomendamos). Assim basta configurar o tftpd que é um servidor de TFTP. Para isso precisamos instalar:
# apt-get install tftp atftpd
Nas caixas de diálogo depois deste comando, preencha da seguinte forma:
- Address range for multicast transfer: 192.168.1.100-254
- TTL for multicast packets: 1
- Base directory: /tftboot
Verifique depois se a configuração do servidor tftpd, possui os parâmetros USE_INETD=false e diretório raiz /tftboot,
parecido como está abaixo:
# more /etc/default/atftpd
USE_INETD=false
OPTIONS="--daemon --port 69 --retry-timeout 5 --mcast-port 1758 --mcast-addr 192.168.1.100-254
--mcast-ttl 1 --maxthread 100 --verbose=5 /tftpboot"
Note que o parâmetro OPTIONS fica em uma única linha.
Reinicie o serividor atftpd:
# /etc/init.d/atftpd restart
Para testar, execute:
# tftp localhost
tftp>
Simplesmente vai aparecer um prompt tftp>
Servidor NFS:
Após o cliente do LTSP conseguir o kernel e colocar o mesmo em execução, este cliente tentará montar o diretório onde o LTSP está instalado no servidor (normalmente /opt/ltsp/i386) como sua raiz do sistema de arquivos na sua memória RAM, através do protocolo NFS.
Para isso basta instalar os pacotes:
# apt-get install nfs-kernel-server
Configure o arquivo /etc/exports:
# vi /etc/exports
/opt/ltsp/i386 192.168.1.0/255.255.0.0(ro,no_root_squash,sync)
Sempre após qualquer alteração no arquivo /etc/exports, reinicialize o serviço:
# /etc/init.d/nfs-kernel-server restart
Gerenciador de Tela/Sessões
Para utilizar a instância gráfica é sempre útil configurar um gerenciador de entrada como o WDM, KDM ou GDM. Aqui vamos explicar como configurar o
GDM (Gnome Display Manager) para funcionar através do
XDMCP (X Display Manager Control Protocol):
Antes de mais nada instale o
gdm:
# apt-get install gdm
Agora é necessário configurar o arquivo
/etc/gdm/gdm.conf adequadamente para o funcionamento do LTSP. Esta configuração abrange detalhes como quantidade de conexões que o processo do
gdm deve aceitar e a quantidade de telas por máquina, ou seja, é preciso você adequar à sua realidade as informações deste arquivo.
# vi /etc/gdm/gdm.conf
# Sessão SECURITY do gdm.conf
[security]
...
# Configuração para o GDM aceitar conexões remotas
# Se 'true' isso irá utilizar a opção '-nolisten tcp' a cada linha de
# comando do X, é bom manter por padrão para utilização indevida do GDM
# como servidor de XDMCP, afinal pode ser um risco de segurança permitir
# acesso ao X remotamente.
# No caso do LTSP isto é necessário para permitir as tais conexões remotas
# ao GDM e assim servir a interface gráfica! Logo atribua o valor 'false'
DisallowTCP=false
...
# Sessão XDMCP do gdm.conf
[xdmcp]
# Ativando o XDMCP, apesar de não ser muito seguro ativá-lo em uma rede.
# É imporante configurar o /etc/hosts.allow e /etc/hosts.deny para apenas
# as máquinas conhecidas terem acesso ao XDMCP. De toda forma é mais seguro
# controlar o acesso à porta 177 (porta padrão do XDMCP) através de um
# firewall, para evitar problemas com maus usuários.
# Leia o manual do GDM para maiores informações de segurança do XDMCP.
Enable=true
# Configurando a quantidade máxima de sessões XDMCP por vez. Isto pode ser
# entendido como a quantidade máxima de máquina que serão clientes do XDMCP.
MaxSessions=30
Feche todos os aplicativos gráficos e arquivos, e reiniciar o serviço gdm, através deste comando :
# /etc/init.d/gdm stop
Isto irá fechar sua interface gráfica. Inicialize-a novamente:
# /etc/init.d/gdm start
Instalação do LTSP v4.1
Configure o repositório onde serão baixados os pacotes LTSP:
# vi /etc/apt/sources.list
...
deb ftp://ftp.skolelinux.no/skolelinux sarge local
...
Depois atualize a lista de pacotes:
# apt-get update
Para instalar os pacotes LTSP:
# apt-get install ltsp*
Pronto! Seu servidor já está instalado, falta apenas configurar o cliente.
Instalação do cliente
Configuração de rede
Na configuração de rede é necessário que cada terminal tenha um nome e número IP únicos, para cada um, adicione uma entrada no arquivo /etc/hosts:
192.168.1.100 pc01
Outra informação importante é o endereço de hardware da placa de rede do cliente, que pode ser obtido através do comando ifconfig:
# ifconfig | grep -i hw
eth0 Link encap:Ethernet HWaddr 00:E0:7D:D9:67:34
A configuração do cliente será fornecida pelo servidor dhcp, por isso, insira no servidor um bloco 'host pc01' no arquivo /etc/dhcp3/dhcpd.conf para o cliente, dentro do bloco 'group':
# vi /etc/dhcp3/dhcpd.conf
...
group {
option root-path "192.168.1.14:/opt/ltsp/i386";
use-host-decl-names on;
host pc01 {
hardware ethernet 00:E0:7D:D9:67:34;
fixed-address 192.168.1.100;
filename "/lts/vmlinuz-2.4.26-ltsp-2";
}
} #fim do group
...
O filename é o parâmetro que especifica qual kernel será baixado via protocolo tftp para o cliente. O arquivo vmlinuz-2.4.24-ltsp-2 é um kernel customizado que vem junto com o pacote do ltsp 4.1.
Configuração da interface gráfica
No servidor, também é necessário configurar como o X Window será carregado no terminal, para isto, altere o arquivo /opt/ltsp/i386/etc/lts.conf:
# vi /opt/ltsp/i386/etc/lts.conf
[Default]
SERVER = 192.168.1.10
X_MOUSE_PROTOCOL = "PS/2"
X_MOUSE_DEVICE = "/dev/psaux"
X_MOUSE_RESOLUTION = 400
X_MOUSE_BUTTONS = 3
USE_XFS = N
SCREEN_01 = startx
[ws001]
XSERVER = auto
X_MOUSE_PROTOCOL = "Microsoft"
X_MOUSE_DEVICE = "/dev/ttyS1"
X_MOUSE_RESOLUTION = 50
X_MOUSE_BUTTONS = 3
X_MOUSE_BAUD = 1200
[ws002]
XSERVER = XF86_Mach64
[ws003]
SCREEN_01 = shell
XF86CONFIG_FILE = XF86Config.ws003
[pc01]
SCREEN_01 = startx
XF86CONFIG_FILE = vesa
Note no arquivo, que existe uma seção [default] que possui as configurações padrões. Também foi criada uma seção [pc01] que é exatamente o nome do terminal e nela utilizamos o driver vesa - que geralmente dá certo na maioria dos casos, bem como utilizando o comando startx para inicializar a interface gráfica automaticamente. Note nas outras seções-exemplo (ws001, ws002, ws003) outras formas de configurações para terminais, a descrição de cada um dos parâmetros você pode encontrar nas documentações oficiais [2].
Instalação da BOOT-ROM
Anote as informações obtidas da sua placa de rede:
# lspci | grep -i eth
00:0d.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL-8139/8139C/8139C+ (rev 10)
# lspci -n | grep 0200
00:0d.0 Class 0200: 10ec:8139 (rev 10)
Acesse
http://www.rom-o-matic.org e de acordo com os dados coletados do cliente acima, baixe a BOOT-ROM específica da sua placa de rede.
Uma vez baixado, grave a boot-rom no disquete, por exemplo:
# cat eb-5.2.6-rtl8139.zdsk > /dev/fd0
Outras formas de inicialização do cliente: EPROM (necessita gravar EPROM da placa de rede); PXE (necessita de placa de rede com suporte a esta tecnologia, não necessita nenhuma gravação).
Pronto! Reinicialize o cliente com o disquete e verifique se deu tudo certo.
Referências:
- [1] Versão 4.1 do LTSP:
- [2] Documentação Oficial em inglês para o LTSP v4.1
- [3] Projeto de Tradução da Documentação do LTSP v4.1
Licença
Este material foi baseado no material GRAVI-IM-UFBA -
http://twiki.im.ufba.br/bin/view/GAVRI/ConfiguracaoLTSPv41. Segundo os termos da Creative Commons License: Atribuição-UsoNãoComercial-PermanênciaDaLicença -
http://creativecommons.org/licenses/by-nc/2.0/br/. Modificações e melhorias por Marcelo Akira -
http://www.sistemasabertos.com.br/~akira.