LTSP no Ubuntu
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







Quinta-feira, 14 de Fevereiro de 2008 ás 07:18
http://rgou.net/sitio/index.php/2007/10/02/ltsp-no-ubuntu/…
[…][…]…
Quarta-feira, 20 de Fevereiro de 2008 ás 13:56
muito bom esse tuto. é uma grande ajuda para qum quer começar no LTSP. valeu
Terça-feira, 11 de Março de 2008 ás 17:05
Excelente!
Sábado, 2 de Agosto de 2008 ás 12:56
Me ajudou na questão dos dispositivos locais… valeu!
Domingo, 14 de Setembro de 2008 ás 21:31
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