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

 

  1. Realizar a instalação do Ubuntu padrão

  2. Usuário inicial: usfadmin

  3. 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

 

6 Responses to LTSP no Ubuntu

  1. Jean PC disse:

    muito bom esse tuto. é uma grande ajuda para qum quer começar no LTSP. valeu

  2. Tiago disse:

    Excelente!

  3. F.A.R disse:

    Me ajudou na questão dos dispositivos locais… valeu!

  4. Ronaldo disse:

    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

  5. Myke disse:

    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

Deixe uma resposta

O seu endereço de email não será publicado Campos obrigatórios são marcados *

*

Você pode usar estas tags e atributos de HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>