LTSP é o Linux Terminal Server Project, que permite a criação de terminais leves com máquinas antigas, com boot através de disquete, CD, HD ou diretamente através da placa de rede (placas modernas com PXE).
Instalando o Ubuntu
-
Realizar a instalação do Ubuntu padrão
-
Usuário inicial: usfadmin
-
IP: utilizado 192.168.100.2 (é preciso trocar o IP em todos os arquivos de configuração pela rede adequada…)
Baixar e instalar o Automatix
Automatix é um script que permite a instalação de vários aplicativos que complementam o Ubuntu (drivers, codecs, etc).
Instruções para Baixar o Automatix
wget http://www.getautomatix.com/apt/dists/dapper/main/binary-i386/automatix_6.5-3-6.06dapper1_i386.deb
sudo dpkg -i automatix_6.5-3-6.06dapper1_i386.deb
Após a instalação, rodar o Automatix:
sudo automatix
Alguns aplicativos que devem ser instalados (clique aqui para lista completa lista):
-
Acrobat Reader (Adobe Acrobat Reader and plugin for Firefox 1.5)
-
Archiving Tools (Additional archiving tools (rar, unrar, ace, and 7zip))
-
AUD-DVD codecs (NON-FREE Audio and DVD codecs) (Installation of this option is illegal in the United States of America)
-
Flashplayer (Adobe Flash Player for FF)
-
Google Earth (Satellite Earth imagery application from Google)
-
Media Players (Totem-xine, VLC and Beep Media Player (with docklet))
-
MPlayer & FF plugin (MPlayer and Firefox 1.5 plugin)
-
Multimedia Codecs (Commonly needed audio and video codecs)
-
Opera Browser (Opera Web Browser)
-
OpenOffice Clipart (clipart in OpenOffice)
-
RealPlayer (RealPlayer)
-
SUN JAVA 1.5 JRE (Sun’s version 1.5 JRE & The Firefox plugin)
Instalando o LTSP
Pacotes no Debian
Primeiro, vamos instalar a parte básica no próprio Ubuntu:
sudo apt-get update
sudo apt-get install ltsp-server ltsp-utils mc
O pacote ltsp-server instala todas as dependências para o LTSP, e o ltsp-utils instala ferramentas para a configuração. E o mc instala o meu querido editor mcedit.
CD do LTSP
Apesar de ser possível instalar diretamente da Internet, é interessante baixar a imagem do CD. As versões mais recentes estão disponíveis no FTP do LTSP. O arquivo tem em torno de 100Mb.
Considerando que seu utilize a última versão disponível (4.2u2, em 22/09/2006), o comando seria:
wget http://ltsp.mirrors.tds.net/pub/ltsp/isos/ltsp-4.2u2-0.iso
Agora é necessário montar a imagem do CD para tê-lo disponível para instalação. Opcionalmente, pode-se gravar o CD e utilizá-lo para instalação.
mkdir /media/ltsp
mount -o loop ltsp-4.2u2-0.iso /media
Configurando o LTSP
O utilitário “ltspadmin” nos auxilia na configuração do LTSP. Ele nos mostra o seguinte menu:
ltspadmin - v0.14 LTSP dir: /opt/ltsp
LTSP Administration Utility
Install/Update LTSP Packages
Configure the installer options
Configure LTSP
Quit the administration program
Primeiro, vamos configurar as opções de instalação (Configure the installer options ) – o que está entre colchetes ([) é o padrão:
Where to retrieve packages from?
[http://ltsp.mirrors.tds.net/pub/ltsp/ltsp-4.2/] file:///media/ltsp
In which directory would you like to place the LTSP client tree?
[/opt/ltsp] /opt/ltsp42
If you want to use an HTTP proxy, enter it here
Use ‘none’ if you don’t want a proxy
Example: http://proxy.yourdomain.com:3128
[none]
If you want to use an FTP proxy, enter it here
(Use ‘none’ if you don’t want a proxy)
[none]
Correct? (y/n/c) y
Segundo, vamos instalar os pacotes (Install/Update LTSP Packages ). Pressione a letra “A” e em seguida “Q”:
Component Size (kb) Status
[*] ltsp_core 78704 Not installed
[*] ltsp_debug_tools 4284 Not installed
[*] ltsp_kernel 13637 Not installed
[*] ltsp_libusb 808 Not installed
[*] ltsp_localdev 4 Not installed
[*] ltsp_pciutils 428 Not installed
[*] ltsp_perl 28072 Not installed
[*] ltsp_rdesktop 628 Not installed
[*] ltsp_scanners 9876 Not installed
[*] ltsp_vnc_module 452 Not installed
[*] ltsp_x_addtl_fonts 17368 Not installed
[*] ltsp_x_core 97716 Not installed
Use 'A' to select ALL components, 'I' to select individual components. When you
leave this screen by pressing 'Q', the components will be installed. 'H'-Help
Na próxima tela, é só confirmar:
Ready to install/update the selected LTSP packages? (y/n) y
Terceiro, vamos confirmar se todos os serviços estão rodando em Configure LTSP:
ltspcfg - Version 0.11
Checking Runlevel....: 2
Checking Ethernet Interfaces
Checking Dhcpd.....
Checking Tftpd.......
Checking Portmapper...
Checking nfs....
Checking xdmcp...........Found: none!
Checking /etc/hosts.
Checking /etc/hosts.allow.
Checking /etc/exports.
Checking lts.conf.
Press <enter> to continue.. Configure LTSP
Pressionando <enter> temos a tela seguinte:
ltspcfg v0.11 The Linux Terminal Server Project (http://www.LTSP.org)
S - Show the status of all services
C - Configure the services manually
Q - Quit
Make a selection:
Pressione “S” para ver a situação dos serviços:
ltspcfg v0.11 - The Linux Terminal Server Project (http://www.LTSP.org)
Interface IP Address Netmask Network Broadcast Used
eth0 192.168.100.2 255.255.255.0 192.168.100.0 192.168.100.255 <-----
Service Installed Enabled Running Notes
dhcpd Yes Yes no Version 3
tftpd Yes Yes Yes Has '-s' flag
portmapper Yes Yes Yes
nfs Yes Yes no
xdmcp no no no Using: none!
File Configured Notes
/etc/hosts no
/etc/hosts.allow no
/etc/exports no
/opt/ltsp42/i386/etc/lts.conf Yes
Configured runlevel: 2 (value of initdefault in /etc/inittab)
Current runlevel: 2 (output of the 'runlevel' command)
Installation dir...: /opt/ltsp42
Press <enter> to return to the main menu...
Agora vamos configurar os serviços “na mão” e depois voltamos aqui para checar como estão as coisas…
Configurando o NFS
NFS é o serviço de compartilhamento de arquivos UNIX.
Edite o arquivo /etc/exports
sudo mcedit /etc/exports
/opt/ltsp42/i386/ 192.168.100.0/255.255.255.0(ro,sync,no_root_squash)
/var/opt/ltsp/swapfiles 192.168.100.0/255.255.255.0(rw,sync,no_root_squash)
Deixando o NFS automático na inicialização e reiniciando agora:
sudo update-rc.d nfs-kernel-server defaults
sudo invoke-rc.d nfs-kernel-server restart
Configurando o TFTPD
O TFTPD já fica instalado bonitinho, mas o LTSP coloca o kernel em outro diretório. Ele roda através do inetd, e é configurado no /etc/inetd.conf, na linha abaixo:
tftp dgram udp wait root /usr/sbin/in.tftpd /usr/sbin/in.tftpd -s /var/lib/tftpboot
Troque para:
tftp dgram udp wait root /usr/sbin/in.tftpd /usr/sbin/in.tftpd -s /tftpboot
Note a mudança de /var/lib/tftpboot para /tftpboot no final da linha.
Depois, deixa-se o inetd automático na instalação e reinicia-se:
sudo update-rc.d inetd defaults
sudo invoke-rc.d inetd restart
Configurando o /etc/hosts
Todas as terminais precisam ser referenciados no /etc/hosts. Teoricamente até poderia não ser necessário, mas em conjunto com o DHCP este vínculo IP x NOME_DE_HOST permite configurações individuais das máquinas no LTSP, mais adiante informadas.
sudo mcedit /etc/hosts
127.0.0.1 localhost ltspadmin
192.168.100.2 ltspadmin
# The following lines are desirable for IPv6 capable hosts
::1 ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
ff02::3 ip6-allhosts
192.168.100.11 ws001
192.168.100.12 ws002
192.168.100.13 ws003
192.168.100.14 ws004
192.168.100.15 ws005
192.168.100.16 ws006
192.168.100.17 ws007
192.168.100.18 ws008
192.168.100.19 ws009
192.168.100.20 ws010
192.168.100.2 ltspadmin
Dez estações foram configuradas acima. É IMPORTANTÍSSIMO que o IP deste servidor referencie seu nome, pois senão haverá erros na tela de login gráfico.
Configurando o DHCP
Importante, muito importante, importantíssimo: a maioria dos tutoriais diz para se editar o arquivo /etc/dhcp3/dhcp.conf. Mas isto não funciona no Ubuntu se você utilizar o pacote ltsp-server, pois ele altera o script de inicialização do DHCP (**/etc/init.d/dhcp3-server**) sobrescrevendo as configurações pelo arquivo (/etc/ltsp/dhcpd.conf):
# Default config file
CONFIG_FILE=/etc/dhcp3/dhcpd.conf
# Allow ltsp to override
if [ -f /etc/ltsp/dhcpd.conf ]; then
CONFIG_FILE=/etc/ltsp/dhcpd.conf
break
fi
Ou você retira as 5 últimas linhas exibidas acima ou usa mesmo o arquivo /etc/ltsp/dhcpd.conf - aqui utilizaremos este arquivo.
sudo mcedit /etc/ltsp/dhcpd.conf
# Mantenha descomentadas as duas linhas abaixo se vocuffff for utilizar
# placas de rede ISA em algumas das estauffffuffffes:
option option-128 code 128 = string;
option option-129 code 129 = text;
# Preste atenção na REDE!!!
shared-network WORKSTATIONS {
subnet 192.168.100.0 netmask 255.255.255.0 {
default-lease-time 21600;
max-lease-time 21600;
# Configure as opções abaixo adicionando os endereços da sua rede:
# Mascara de sub-rede:
option subnet-mask 255.255.255.0;
# Broadcast:
option broadcast-address 192.168.100.255;
# Default gateway
option routers 192.168.100.1;
# Servidor DNS (endereco do DNS do provedor)
option domain-name-servers 200.217.64.146;
# Nome do domínio (opcional, apenas se tiver um)
#option domain-name "yourdomain.com";
# Esta opção faz com que o servidor dhcp aceite apenas os clientes do
# terminal server, no conflitando com um servidor dhcp ja existente.
deny unknown-clients;
# Caso prefira que o servidor DHCP dê IPs de rede local também para os
# demais micros da rede, que não estão cadastrados como terminais, comente
# a linha acima e descomente a linha abaixo, informando a faixa de endereços
# que será usada pelos clientes que não estejam cadastrados como terminais:
#range 192.168.100.21 192.168.10.100;
# IMPORTATE!! Substitua o "192.168.100.2" pelo endereço IP do servidor,
# se este endereço estiver errado o LTSP não funcionará! Repita o mesmo
# endereço na opção "next-server", ela é um
# workaround para um bug do dhcpd 3.03:
option root-path "192.168.100.2:/opt/ltsp42/i386";
next-server 192.168.100.2;
use-host-decl-names on;
option log-servers 192.168.100.253;
# Não funciona se colocar o /tftpboot...
# filename "/tftpboot/lts/vmlinuz-2.6.17.3-ltsp-1";
filename "/lts/vmlinuz-2.6.17.3-ltsp-1";
}
# ----------------------------------------------------------
# Aqui vão as configurações dos terminais, cada terminal deve
# ser configurado com um endereço IP diferente e com o endereço
# MAC de sua placa de rede.
# Para saber o endereço MAC de cada terminal, basta dar um boot
# Com o disquete do rom-o-matic, ele mostrará o endereço MAC
# logo no início do boot.
# Este endereço é único, exclusivo de cada placa de rede, é através
# dele que o servidor sabe qual terminal é qual.
# Adicione mais terminais caso necessário copiando e colando as linhas:
# terminal 1:
host ws001 {
hardware ethernet 00:00:00:00:00:00;
fixed-address 192.168.100.11;
}
# terminal 2:
host ws002 {
hardware ethernet 00:00:00:00:00:00;
fixed-address 192.168.100.12;
}
# terminal 3:
host ws003 {
hardware ethernet 00:00:00:00:00:00;
fixed-address 192.168.100.13;
}
# terminal 4:
host ws004 {
hardware ethernet 00:00:00:00:00:00;
fixed-address 192.168.100.14;
}
# terminal 5:
host ws005 {
hardware ethernet 00:00:00:00:00:00;
fixed-address 192.168.100.15;
}
# terminal 6:
host ws006 {
hardware ethernet 00:00:00:00:00:00;
fixed-address 192.168.100.16;
}
# terminal 7:
host ws007 {
hardware ethernet 00:00:00:00:00:00;
fixed-address 192.168.100.17;
}
# terminal 8:
host ws008 {
hardware ethernet 00:00:00:00:00:00;
fixed-address 192.168.100.18;
}
# terminal 9:
host ws009 {
hardware ethernet 00:00:00:00:00:00;
fixed-address 192.168.100.19;
}
# terminal 10:
host ws010 {
hardware ethernet 00:00:00:00:00:00;
fixed-address 192.168.100.20;
}
# Para usar uma placa de rede ISA no terminal, descomente as duas linhas
# abaixo e substitua o "NIC=3c509" pelo módulo da placa de rede usada.
# Não altere o "e4:45:74:68:00:00" este não é um endereço MAC, mas sim
# a string que ativa a linha com o módulo da placa!.
# option option-128 e4:45:74:68:00:00;
# option option-129 "NIC=3c509";
# Os terminais abaixo estão configurados para dar boot via via PXE
# (o protocolo de boot suportado por muitas placas de rede, onde basta
# configurar o micro para dar boot através da rede, no setup, ou
# pressionar F12 durante o boot). Substitua a serão referente estação
# pelo exemplo abaixo. Veja que o que muda é a opção "filename":
# terminal PXE:
# host ws010 {
# hardware ethernet 00:00:00:00:00:00;
# fixed-address 192.168.100.20;
# filename "/tftpboot/lts/vmlinuz-2.6.17.3-ltsp-1/pxelinux.0";
# }
}
Agora deixa-se o dhcpd3-server automático na instalação e reinicia-se:
sudo update-rc.d dhcpd3-server defaults
sudo invoke-rc.d dhcpd3-server restart
Configurando o GDM
GDM é o gerenciador de login gráfico do Gnome, padrão no Ubuntu. É necessário configurá-lo para aceitar logins remotos:
Edite o arquivo /etc/gdm/gdm.conf na linha 257 e troque Enable=false por Enable=true. Note que a edição é na seção [xdmcp]:
(...)
[xdmcp]
# Distributions: Ship with this off. It is never a safe thing to leave out on
# the net. Setting up /etc/hosts.allow and /etc/hosts.deny to only allow local
# access is another alternative but not the safest. Firewalling port 177 is
# the safest if you wish to have xdmcp on. Read the manual for more notes on
# the security of XDMCP.
Enable=true
(...)
É necessário reiniciar o servidor de login (isto vai derrubar o ambiente gráfico…)
invoke-rc.d gdm restart
Configurando o /opt/ltsp42/i386/etc/lts.conf
Este arquivo é responsável pela configuração das estações de trabalho (vídeo, teclado, mouse e periféricos). Ele não existe: no mesmo diretório se encontra o lts.conf.readme, que é uma documentação de seus parâmetros. Use como referência. Na seqüência, um exemplo geralzão:
mcedit /opt/ltsp42/i386/etc/lts.conf
[Default]
SERVER = 192.168.100.2
XDM_SERVER = 192.168.100.2
XSERVER = auto
# XSERVER = vesa
X_MODE_0 = 800x600
# MOUSE
X_MOUSE_PROTOCOL = "Microsoft"
X_MOUSE_DEVICE = "/dev/ttyS0"
# X_MOUSE_PROTOCOL = "PS/2"
# X_MOUSE_DEVICE = "/dev/psaux"
X_MOUSE_RESOLUTION = 400
X_MOUSE_BUTTONS = 3
SCREEN_01 = startx
RUNLEVEL = 5
# Dispositivos locais
START_SAMBA = Y
RCFILE_01 = rc.localdev
LOCAL_DEVICE_01 = /dev/fd0:floppy
LOCAL_DEVICE_02 = /dev/hdc:cdrom
Mais adiante veremos os ajustes para rodar os dispositivos localmente.
Configurações específicas por estação são feitas com o uma seção com o nome da estação:
[ws001]
XSERVER = vesa
X_MODE_0 = 800x600
X_MOUSE_PROTOCOL = "Microsoft"
X_MOUSE_DEVICE = "/dev/ttyS0"
SCREEN_01 = startx
RUNLEVEL = 5
Não é objeto aqui configurar todas as opções. O arquivo /opt/ltsp42/i386/etc/lts.conf.readme possui uma referência para configurações diversas, vídeo, som, impressora, etc.
Checando configuração
Vamos confirmar se todos os serviços estão rodando o ltspadmin
ltspadmin
Vamos para opção Configure LTSP:
ltspcfg - Version 0.11
Checking Runlevel....: 2
Checking Ethernet Interfaces
Checking Dhcpd.....
Checking Tftpd.......
Checking Portmapper...
Checking nfs....
Checking xdmcp...........Found: none!
Checking /etc/hosts.
Checking /etc/hosts.allow.
Checking /etc/exports.
Checking lts.conf.
Press <enter> to continue.. Configure LTSP
Pressionando <enter> temos a tela seguinte:
ltspcfg v0.11 The Linux Terminal Server Project (http://www.LTSP.org)
S - Show the status of all services
C - Configure the services manually
Q - Quit
Make a selection:
Pressione “S” para ver a situação dos serviços:
ltspcfg v0.11 The Linux Terminal Server Project (http://www.LTSP.org)
Interface IP Address Netmask Network Broadcast Used
eth0 192.168.100.1 255.255.255.0 192.168.100.0 192.168.100.255 <-----
Service Installed Enabled Running Notes
dhcpd Yes Yes Yes Version 3
tftpd Yes Yes Yes Has '-s' flag
portmapper Yes Yes Yes
nfs Yes Yes Yes
xdmcp no no no Using: none!
File Configured Notes
/etc/hosts no
/etc/hosts.allow no
/etc/exports no
/opt/ltsp42/i386/etc/lts.conf Yes
Configured runlevel: 2 (value of initdefault in /etc/inittab)
Current runlevel: 2 (output of the 'runlevel' command)
Installation dir...: /opt/ltsp42
Press <enter> to return to the main menu...
Apesar de alguns “no”, a configuração está OK.
Dispositivos Locais
Copie o arquivo rc.localdev para a inicialização do LSTP.
# cd /opt/ltsp/i386/etc/
# cp -a rc.localdev rc.d/
Agora configuramos o autofs para montar automaticamente os dispositivos.
# apt-get install autofs
Edite o /etc/auto.master
# mcedit /etc/auto.master
Que fica assim:
/misc /etc/auto.misc --timeout=5
Agora o "/etc/auto.misc”, onde precisam ser declarados os compartilhamentos de cada estação.
# mcedit /etc/auto.misc
ws001 -fstype=smbfs,workgroup=LTSP,guest ://192.168.100.11/drives
ws002 -fstype=smbfs,workgroup=LTSP,guest ://192.168.100.12/drives
ws003 -fstype=smbfs,workgroup=LTSP,guest ://192.168.100.13/drives
ws004 -fstype=smbfs,workgroup=LTSP,guest ://192.168.100.14/drives
ws005 -fstype=smbfs,workgroup=LTSP,guest ://192.168.100.15/drives
ws006 -fstype=smbfs,workgroup=LTSP,guest ://192.168.100.16/drives
ws007 -fstype=smbfs,workgroup=LTSP,guest ://192.168.100.17/drives
ws008 -fstype=smbfs,workgroup=LTSP,guest ://192.168.100.18/drives
ws009 -fstype=smbfs,workgroup=LTSP,guest ://192.168.100.19/drives
ws010 -fstype=smbfs,workgroup=LTSP,guest ://192.168.100.20/drives
Por último, reinicia-se o autofs:
invoke-rc.d autofs restart
Os compartilhamentos ficam disponíveis em /misc/ws001/floppy e assim por diante.
Criando Disquetes de Boot
O site ROM-O-MATIC gera imagens de boot para o LTSP para diversas placas de rede. Escolha o modelo da placa, faça o download, como no exemplo:
To create and download an Etherboot ROM image:
1. Choose NIC/ROM type:
2. Choose ROM output format:
3.(optional) To customize ROM configuration press: [Configure]
4. To generate and download a ROM image press: [Get ROM]
O arquivo baixado pode ser gravado num disquete com o comando:
cat eb-5.4.2-3c509.zdsk > /dev/fd0
Criando Usuários
Cada estação deve usar um usuário diferente. Senão forem usuário pré-definidos, então cria-se algo como terminal01, terminal02, etc. É possível fazer isto no Ubuntu no menu Sistema → Administração → Usuários e Grupos.
Referência
http://rgou.net/index.php/2007/10/02/ltsp-no-ubuntu/…
[...][...]…
muito bom esse tuto. é uma grande ajuda para qum quer começar no LTSP. valeu
Excelente!
Me ajudou na questão dos dispositivos locais… valeu!
LTSP no Ubuntu
ola estou com problema na configuracao do dhcop
vc poderia me mandar 1 email
ai passaria a configuracao sertinha do que esta acontecendo
aguardo
Olá fiz a configuração, ja esta tudo funcionando pulei até algumas etapas, esta carregando certinho, mas eu preciso usar o rdesktop pra logar em um TS 2008, ja alterei o /opt/ltsp/i386/etc/lts.conf mas ele continua caindo direto na tela do ubuntu… o que eu tenho que mudar pra carregar corretamente. ??
abraços