LTSP Pantaneiro

De gutocarvalho.net

LTSP à moda Pantaneira

Ferramentas: LTSP 5 + LTSPFS + PULSEAUDIO + VNC


Autor: guto carvalho (guto@gutocarvalho.net)
Colaboradores: Fernando Avena, Giorgio Emanuel N. Lago


Campo Grande, Mato Grosso do Sul, Brasil


Ambiente: Ubuntu Feisty 7.04 Server


Procure tirar dúvidas deste tutorial no fórum apropriado: http://gutocarvalho.net/phpBB3

Baixe agora a distro GESAC com este tutorial aplicado: http://gutocarvalho.net/gesac/


Conteúdo

[editar] ltsp

A tecnologia LTSP (Linux Terminal Server Project) é utilizada para ambientes de rede com terminais ou estações sem disco, que podem dar boot através da interface de rede diretamente, ou com o auxílio de um disquete, cdrom ou pendrive, os quais devem contém uma imagem para iniciar sua interface de rede e rodar um cliente DHCP com suporte ao protocolo PXE. Basicamente um servidor LTSP precisa do DHCP Server, TFTP Server, NFS Server e o XDMCP. É uma infra-estrutura servidor/cliente, os terminais na verdade depois de iniciar pela rede vão carregar o ambiente gráfico do servidor.

[editar] ltspfs

Este sistema de arquivos remoto que permite o uso de dispositivos removíveis nos terminais LTSP. Basicamente é um daemon que roda no terminal e o módulo para utilizar FUSE (user space file system) sendo conectado ao servidor LTSP.

[editar] pulseaudio

Servidor de audio para redes. Possibilita que a gente possa utilizar os recursos de audio nos terminais leves (thin-clients) a partir de seus dispositivos locais.

Imagem:LTSPPulseAudio.png

imagem retirada deste link

[editar] vnc

Virtual Network Computing (ou somente VNC) é um protocolo desenhado para possibilitar interfaces gráficas remotas. Através deste protocolo um usuário pode conectar-se a um computador remotamente, e utilizar as suas funcionalidades visuais como se estivesse sentado em frente do computador.

Algumas das aplicações práticas incluem a 'assistência remota' ao utilizador. Uma das grandes vantagens é poder fazer a conexão de diferentes ambientes unix(linux e outros) e também funciona em sistemas proprietários.

fonte: http://pt.wikipedia.org/wiki/Virtual_Network_Computing


[editar] iniciando configuração: ajustando repositórios

editando arquivo com repositórios

root@defiant:/home/gutera#  vim /etc/apt/sources.list
# Ubuntu supported packages
# GPG key: 437D05B5

deb http://br.archive.ubuntu.com/ubuntu feisty main restricted universe multiverse
deb http://br.archive.ubuntu.com/ubuntu feisty-updates main restricted universe multiverse
deb http://security.ubuntu.com/ubuntu feisty-security main restricted universe multiverse


[editar] atualizando índices de pacotes

vamos agorar buscar na internet os índices dos pacotes e em seguida instalar o ltsp

root@defiant:/home/gutera# apt-get update
root@defiant:/home/gutera# apt-get install openssh-server ltsp-server-standalone


[editar] ajustando sshd

o openssh-server é muito importante para o ltsp-server pois sem ele os terminais não conseguem logar. Certifique-se que a diretiva X11Forwarding yes esta setada desta forma no arquivo /etc/ssh/sshd_config.

root@defiant:/home/gutera# cat /etc/ssh/sshd_config 
# Package generated configuration file
# See the sshd(8) manpage for details

# What ports, IPs and protocols we listen for
Port 22
# Use these options to restrict which interfaces/protocols sshd will bind to
#ListenAddress ::
#ListenAddress 0.0.0.0
Protocol 2
# HostKeys for protocol version 2
HostKey /etc/ssh/ssh_host_rsa_key
HostKey /etc/ssh/ssh_host_dsa_key
#Privilege Separation is turned on for security
UsePrivilegeSeparation yes

# Lifetime and size of ephemeral version 1 server key
KeyRegenerationInterval 3600
ServerKeyBits 768

# Logging
SyslogFacility AUTH
LogLevel INFO

# Authentication:
LoginGraceTime 120
PermitRootLogin yes
StrictModes yes

RSAAuthentication yes
PubkeyAuthentication yes
#AuthorizedKeysFile     %h/.ssh/authorized_keys

# Don't read the user's ~/.rhosts and ~/.shosts files
IgnoreRhosts yes
# For this to work you will also need host keys in /etc/ssh_known_hosts
RhostsRSAAuthentication no
# similar for protocol version 2
HostbasedAuthentication no
# Uncomment if you don't trust ~/.ssh/known_hosts for RhostsRSAAuthentication
#IgnoreUserKnownHosts yes

# To enable empty passwords, change to yes (NOT RECOMMENDED)
PermitEmptyPasswords no

# Change to yes to enable challenge-response passwords (beware issues with
# some PAM modules and threads)
ChallengeResponseAuthentication no

# Change to no to disable tunnelled clear text passwords
#PasswordAuthentication yes

# Kerberos options
#KerberosAuthentication no
#KerberosGetAFSToken no
#KerberosOrLocalPasswd yes
#KerberosTicketCleanup yes

# GSSAPI options
#GSSAPIAuthentication no
#GSSAPICleanupCredentials yes

X11Forwarding yes
X11DisplayOffset 10
PrintMotd no
PrintLastLog yes
TCPKeepAlive yes
#UseLogin no

#MaxStartups 10:30:60
#Banner /etc/issue.net

# Allow client to pass locale environment variables
AcceptEnv LANG LC_*

Subsystem sftp /usr/lib/openssh/sftp-server

UsePAM yes

se o arquivo estiver assim, tudo certo.


[editar] ajustando dhcp3server

depois de instalar os pacotes precisar ajustar o arquivo de configurações do servidor DHCP

root@defiant:/home/gutera# vim /etc/ltsp/dhcpd.conf
authoritative;

subnet 192.168.0.0 netmask 255.255.255.0 {
  range 192.168.0.20 192.168.0.250;
  option domain-name "telecentro";
  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;
  if substring( option vendor-class-identifier, 0, 9 ) = "PXEClient" {
    filename "/ltsp/i386/pxelinux.0";
  }
  else{
    filename "/ltsp/i386/nbi.img";
  }
  option root-path "/opt/ltsp/i386";
}

iniciando dhcp3server

root@defiant:/home/gutera# /etc/init.d/dhcp3-server start


[editar] criando ambiente chroot para terminais

O que é um chroot?

O ambiente chroot do ltsp é como se fosse um segundo sistema dentro do seu sistema, nele são instalados o ambiente mínimo, x-window-system, ltspfsd, pulseaudio, pacotes essenciais para o boot dos terminais, eles irão carregar esse ambiente mínimo, isso será feito a partir da imagem de boot oferecida pelo TFTPD-HPA, por isso precisa ser leve, enxuto, quando você dá um CTRL+ALT+F1 no terminal você cai no console, mas este é o console do sistema no ambiente chroot.

criando o chroot

root@defiant:/home/gutera# ltsp-build-client

você deve aguardar um mensagem dizendo que o ambiente LTSP foi instalado com sucesso, algo como abaixo:

...
.....
........
É preciso fazer o download de 23,8MB de arquivos.
Depois de desempacotamento, 69,4MB adicionais de espaço em disco serão usados.
Obtendo:1 http://127.0.0.1 feisty-security/main linux-image-2.6.20-16-386 2.6.20-16.31 [23,7MB]
Obtendo:2 http://127.0.0.1 feisty-security/main linux-image-386 2.6.20.16.28.1 [24,5kB]
Baixados 23,8MB em 1s (22,6MB/s)   
Pré-configurando pacotes ...
Selecionando pacote previamente não selecionado linux-image-2.6.20-16-386.
(Lendo banco de dados ... 13630 arquivos e diretórios atualmente instalados.)
Descompactando linux-image-2.6.20-16-386 (de .../linux-image-2.6.20-16-386_2.6.20-16.31_i386.deb) ...
Done.
Selecionando pacote previamente não selecionado linux-image-386.
Descompactando linux-image-386 (de .../linux-image-386_2.6.20.16.28.1_i386.deb) ...
Instalando linux-image-2.6.20-16-386 (2.6.20-16.31) ...
Running depmod.
update-initramfs: Generating /boot/initrd.img-2.6.20-16-386
Examining /etc/kernel/postinst.d.
run-parts: executing /etc/kernel/postinst.d/ltsp-update-kernels 

Instalando linux-image-386 (2.6.20.16.28.1) ...
Updating /var/lib/tftpboot directories for chroot: /opt/ltsp/i386
info: instalação do cliente LTSP completada com sucesso
root@defiant:/home/gutera# 

esse é o finalzinho da saída do script...

caso dê algum erro remova o diretório /opt/ltsp e rode novamente o comando até que obtenha sucesso.

root@defiant:/home/gutera# rm -rf /opt/ltsp
root@defiant:/home/gutera# ltsp-build-client

erros podem ocorrer caso o script não consiga fazer o download de algum pacote, ai ele para e não tem resume, é meio burrinho, ainda vou reescrever esse treco qualquer hora, em ruby ou python, sei lá :)



[editar] instalando ltspfs

instalando no servidor

root@defiant:/home/gutera# apt-get install ltspfs

verificando

root@defiant:/opt/ltsp# dpkg -l ltspfs|grep ^ii
ii  ltspfs         0.4.3-0ubuntu6 Fuse based remote filesystem for LTSP thin clients

instalando no ambiente chroot

root@defiant:/home/gutera# chroot /opt/ltsp/i386 apt-get install ltspfsd

verificando

root@defiant:/opt/ltsp# sudo chroot /opt/ltsp/i386 dpkg -l ltspfsd|grep ^ii
ii  ltspfsd        0.4.3-0ubuntu6 Fuse based remote filesystem daemon for LTSP thin clients


[editar] instalando o pulseaudio

no servidor ltsp

root@defiant:/home/gutera# apt-get install pulseaudio pulseaudio-esound-compat pulseaudio-utils paprefs  pavumeter \
                                           pavucontrol padevchooser paman  libao-pulse pulseaudio-module-hal \
                                           pulseaudio-module-x11 pulseaudio-module-gconf pulseaudio-module-hal \
                                           pulseaudio-module-lirc pulseaudio-module-zeroconf libpulse-mainloop-glib0 \
                                           libpulse-browse0  audacious-plugins-extra libgstreamer-plugins-pulse0.10-0

no ambiente chroot

root@cbms-ihp-rcb:/home/livre# chroot /opt/ltsp/i386/ apt-get install pulseaudio pulseaudio-esound-compat pulseaudio-module-x11

o sistema pode reclamar que nao achou o pacote pulseaudio-module-x11 vamos resolver o problema.

root@defiant:/home/gutera# cat /opt/ltsp/i386/etc/apt/sources.list

deb http://127.0.0.1/mirror/distros/ubuntu/feisty feisty main restricted
deb http://127.0.0.1/mirror/distros/ubuntu/feisty feisty-security main restricted

veja que os repositórios multiverse e universe não estão habilitados, vamos habilitar então.

root@defiant:/home/gutera# vim /opt/ltsp/i386/etc/apt/sources.list

deb http://127.0.0.1/mirror/distros/ubuntu/feisty feisty main restricted universe multiverse
deb http://127.0.0.1/mirror/distros/ubuntu/feisty feisty-security main restricted universe multiverse

atualizando índices

root@defiant:/home/gutera# chroot /opt/ltsp/i386/ apt-get update
Obtendo:1 http://127.0.0.1 feisty Release.gpg [191B]
Ign http://127.0.0.1 feisty/main Translation-pt_BR
Ign http://127.0.0.1 feisty/restricted Translation-pt_BR
Ign http://127.0.0.1 feisty/universe Translation-pt_BR
Ign http://127.0.0.1 feisty/multiverse Translation-pt_BR
Obtendo:2 http://127.0.0.1 feisty-security Release.gpg [191B]
Ign http://127.0.0.1 feisty-security/main Translation-pt_BR
Ign http://127.0.0.1 feisty-security/restricted Translation-pt_BR
Ign http://127.0.0.1 feisty-security/universe Translation-pt_BR
Ign http://127.0.0.1 feisty-security/multiverse Translation-pt_BR
Atingido http://127.0.0.1 feisty Release
Atingido http://127.0.0.1 feisty-security Release
Atingido http://127.0.0.1 feisty/main Packages       
Atingido http://127.0.0.1 feisty/restricted Packages 
Obtendo:3 http://127.0.0.1 feisty/universe Packages [3754kB]
Obtendo:4 http://127.0.0.1 feisty/multiverse Packages [148kB]
Atingido http://127.0.0.1 feisty-security/main Packages
Atingido http://127.0.0.1 feisty-security/restricted Packages
Obtendo:5 http://127.0.0.1 feisty-security/universe Packages [32,8kB]
Obtendo:6 http://127.0.0.1 feisty-security/multiverse Packages [6101B]
Baixados 3942kB em 2s (1832kB/s)                     
Lendo Lista de Pacotes... Pronto

e agora vamos instalar os pacotes.

root@defiant:/home/gutera# chroot /opt/ltsp/i386/ apt-get install pulseaudio pulseaudio-esound-compat pulseaudio-module-x11

Lendo Lista de Pacotes... Pronto
Construindo Árvore de Dependências       
Reading state information... Pronto 
pulseaudio já é a versão mais nova.
pulseaudio set to manual installed.
pulseaudio-esound-compat já é a versão mais nova.
pulseaudio-esound-compat set to manual installed.
Os NOVOS pacotes a seguir serão instalados:
 pulseaudio-module-x11
0 pacotes atualizados, 1 pacotes novos instalados, 0 a serem removidos e 3 não atualizados.
É preciso fazer o download de 14,8kB de arquivos.
Depois de desempacotamento, 90,1kB adicionais de espaço em disco serão usados.
Obtendo:1 http://127.0.0.1 feisty-security/universe pulseaudio-module-x11 0.9.5-5ubuntu4.1 [14,8kB]
Baixados 14,8kB em 0s (148kB/s)                
Selecionando pacote previamente não selecionado pulseaudio-module-x11.
(Lendo banco de dados ... 16118 arquivos e diretórios atualmente instalados.)
Descompactando pulseaudio-module-x11 (de .../pulseaudio-module-x11_0.9.5-5ubuntu4.1_i386.deb) ...
Instalando pulseaudio-module-x11 (0.9.5-5ubuntu4.1) ...

ajustando configurações do ALSA

root@defiant:/home/gutera# vim /etc/asound.conf
pcm.pulse {
            type pulse
}

ctl.pulse {
            type pulse
}

pcm.!default {
            type pulse
}
ctl.!default {
            type pulse
}

ajuste o som do GNOME para usar ALSA, vá em Sistema/Preferências/Som e mude tudo para ALSA.

Imagem:Gnome-sound_preferences.png

imagem retirada deste link

ajuste as preferências do sistema de som pulseaudio, vá em Aplicações/Som e Vídeo/Pulse Audio Preferentes, ajuste conforme a figura.

Imagem:Pulseaudio_sound_preferences.png

imagem retirada deste link

ajustando daemon do pulseadio

primeiro vamos copiar o arquivo original e guardá-lo

root@defiant:/home/gutera# cp /opt/ltsp/i386/etc/pulse/daemon.conf /opt/ltsp/i386/etc/pulse/daemon.conf.old

agora vamos editar o arquivo

root@defiant:/home/gutera# vim /opt/ltsp/i386/etc/pulse/daemon.conf

remova todas as linhas e insira apenas o conteúdo abaixo

daemonize = 1
high-priority = 1
log-target = stderr
resample-method = trivial
no-cpu-limit = 1
system-instance = 1
disable-shm = 1

agora vamos editar as configurações padrão do pulseaudio

primeiro vamos salvar o arquivo original

root@defiant:/home/gutera# cp /opt/ltsp/i386/etc/pulse/default.pa /opt/ltsp/i386/etc/pulse/default.pa.old

agora vamos editar o arquivo

root@defiant:/home/gutera# vim /opt/ltsp/i386/etc/pulse/default.pa

apague todo o arquivo e insira o conteúdo abaixo

### Load audio drivers automatically on access
# mobo sound on hw:0 (default)
add-autoload-sink default_output module-alsa-sink device=hw:0 sink_name=default_output
add-autoload-source default_input module-alsa-source device=hw:0 source_name=default_input

# USB phone on hw:1
add-autoload-sink phone_output module-alsa-sink device=hw:1 rate=8000 channels=1 sink_name=phone_output
add-autoload-source phone_input module-alsa-source device=hw:1 rate=8000 channels=1 source_name=phone_input

### Network access
load-module module-esound-protocol-tcp auth-anonymous=1
load-module module-native-protocol-tcp auth-anonymous=1

### Automatically restore the volume of playback streams
load-module module-volume-restore

### Automatically move streams to the default sink if the sink they are
### connected to dies, similar for sources
load-module module-rescue-streams

### Make some devices default
set-default-sink default_output
set-default-source default_input

.nofail

agora o som está configurado, reinicie o servidor, se seguiu este tutorial certinho o som deve estar funcionando, apenas som em animações flash devem estar sem som, vamos ajustar.

root@defiant:/home/gutera# wget http://www.paulbetts.org/projects/libflashsupport_1.0~2219-1_i386.deb
root@defiant:/home/gutera# dpkg -i libflashsupport_1.0~2219-1_i386.deb

reinicie seu navegador e teste a animação, seu som deve estar funcionando ;)

[editar] ajustando lts.conf

vamos editar o arquivo /opt/ltsp/i386/etc/lts.conf

root@defiant:/home/gutera# vim /opt/ltsp/i386/etc/lts.conf

apague o conteúdo do arquivo e insira o conteúdo abaixo

# This is the default lts.conf file for ltsp 5.
# For more information about valid options please see:
# /usr/share/doc/ltsp-client/examples/lts-parameters.txt.gz
# in the client environment

[default]
    SOUND=True
    SOUND_DAEMON=pulse
    LOCALDEV=True
    NBD_SWAP=True
    SYSLOG=server
    XKBLAYOUT=br
    XKBMODEL=abnt2

pronto LTS.CONF ajustado.

Mais informações sobre o arquivo em /opt/ltsp/i386/usr/share/doc/ltsp-client/examples/lts-parameters.txt.gz


[editar] configurando impressoras em thin-clients

para isto precisamos editar o arquivo lts.conf

crie uma sessão como abaixo

[00:11:25:93:CF:00]

PRINTER_0_DEVICE=/dev/lp0
PRINTER_0_TYPE=P
PRINTER_0_PORT=9100

A primeira diretiva refere-se ao local da impressora:

/dev/lp0 (paralela)
/dev/usblp0 (usb) 

A segunda diretiva refere-se ao tipo da impressora.

P para Paralela
S for Serial
U para USB.

A terceira diretiva refere-se a porta TCP/IP usada.

Por padrão : 9100

Para instalar basta colocar a impressora como jetdirect. Colocar o ip da maquina e a porta 9100.

Ou ainda,

socket://[ip_da_maq_da_impressora_ligada]:9100


Colaborou: Rafael Loduca <rafaeloduca at bol dot com dot br


O LTSP5 no Ubuntu 8.10 Hardy Heron tem um BUG na impressão nas estações. Está faltando na instalação o script jetpipe, que envia as impressões para o device especificado.

Aqui está o link para este bug no LauchPad (Bug #224259 in ltsp):

LTSP local printer in hardy is broken (missing jetpipe script in ltsp-client-core) https://bugs.launchpad.net/ubuntu/+source/ltsp/+bug/224259

Por tanto, a solução é copiar este script: http://launchpadlibrarian.net/14035814/jetpipe para o diretório /opt/ltsp/i386/usr/sbin/ e rodar um:

sudo ltsp-update-image

[editar] configurando monitoramento de thin-clients com VNC

aqui vamo instalar o VNC no ambiente chroot com o objetivo de monitorar as sessões nos thin-clients caso seja necessário.

instalando xvnc nos thin-clients

root@defiant:/home/gutera# sudo chroot /opt/ltsp/i386 apt-get update
root@defiant:/home/gutera# sudo chroot /opt/ltsp/i386 apt-get upgrade
root@defiant:/home/gutera# sudo chroot /opt/ltsp/i386 apt-get install x11vnc

Edite o arquivo /opt/ltsp/i386/etc/rc.local

root@defiant:/home/gutera# vim /opt/ltsp/i386/etc/rc.local

Adicone a linha baixo antes do comando "exit 0" e depois salve o arquivo.

x11vnc -display :6 -forever -loop &

Certifique-se que o arquivo rc.local será executado na inicialização:

root@defiant:/home/gutera# cd /opt/ltsp/i386/etc/rc2.d
root@defiant:/home/gutera# mv K99rc.local S99rc.local

após configurar, reinicie o thin-client, depois que ele estiver carregado.

para acompanhar uma sessão use o comando abaixo

root@defiant:/home/gutera# vncviewer 192.168.0.222:0

supondo que o ip do thin-client é 192.168.0.222


[editar] sabayon

em contrução... não instale esse pacote no feisty... existe um bug no sabayon que interfere no logon do usuários.


[editar] pessulus

em construção... pode instalar tranquilo...


[editar] ltsp-manager

em contrução... esse você pode instalar...

[editar] dicas

[editar] Corrigindo caracteres estranhos em midias montadas

Se você estiver tendo problemas com caracteres estranhos em dispositivos removiveis como pendrivers, disquetes é devido ao fato da codificação UTF8 e iso8859-1 que o ltspfs monta de maneria errada ... vc deve procurar este arquivo : /opt/ltsp/i386/usr/sbin/ltspfs_mount E na seguinte linha edita-lo:

antes:
mount -t ${TYPE} -o ${OPTIONS} ${DEV} ${MOUNTPOINT}
depois:
mount -t ${TYPE} -o ${OPTIONS},utf8 ${DEV} ${MOUNTPOINT}

[editar] ajustando identidade visual

os terminais usam o LDM ao invés do GDM, o LDM é um script em python, o tema LDM não é muito customizável, mas dá para mexer.

root@defiant:/home/gutera# cd /opt/ltsp/i386/usr/share/ldm/themes/ubuntu
root@defiant:/opt/ltsp/i386/usr/share/ldm/themes/ubuntu# ls -l
total 80
-rw-r--r-- 1 root root 54015 2007-04-10 20:39 background.png
-rw-r--r-- 1 root root   783 2007-04-10 20:39 colors
-rw-r--r-- 1 root root   582 2007-04-10 20:39 icon-language.png
-rw-r--r-- 1 root root   900 2007-04-10 20:39 icon-session.png
-rw-r--r-- 1 root root   292 2007-04-10 20:39 reboot.png
-rw-r--r-- 1 root root   387 2007-04-10 20:39 shutdown.png

voce pode substituir o background.png por outra imagem e customizar as cores no arquivo colors, veja o exemplo abaixo:

root@defiant:/opt/ltsp/i386/usr/share/ldm/themes/ubuntu# cat colors 
######################## ldm colortheme file ############################
#
# (c) 2005 Canoical Ltd.
#          Oliver Grawert <ogra@ubuntu.com>       
#
#########################################################################
#       Theme: Edubuntu
#########################################################################
#
# Values known by ldm:
#
# frame_color = the color of the small frame around the username/password
#               entry
# foreground = the color of text and bottom bar
# clockforeground = the color of the clock string
# loginwin_color = the background of the centered login window
#
#########################################################################

frame_color = "#000000"
foreground = "#f7ebd6"
background = "#ffffde"
clockforeground = "#000000"
loginwin_color = "#f7ebd6"

caso queira padronizar o papel de parede nos terminais ele fica /usr/share/backgrounds/warty-final-ubuntu.png

basta mover e criar um link simbolico.

root@defiant:/home/gutera# cd /usr/share/backgrounds

root@defiant:/usr/share/backgrounds# mv warty-final-ubuntu.png warty-final-ubuntu.png.old

root@defiant:/usr/share/backgrounds# ln -s meu_papel_de_parede.png warty-final-ubuntu.png

pronto seu papel de parede está padronizado.

[editar] traduzindo o LDM

acesse o diretorio /opt/ltsp/i386/usr/lib/ltsp/greeter

edite os arquivos gtk e greeter.glade e traduza as mensagens

[editar] dispositivos locais não funcionam após um reset ou reboot sem deslogar

Bom se você em uma sessão de usuário aberta reiniciar o terminal ou o mesmo travar, após o reboot e login vc perceberá um bug pra lá de estranho, seus dispositivos locais param de funcionar! Isso acontece pq devido a não finalização correta da sessão seus dispositivos continuam montados/presos, para corrigir isso e fazer com que ao fazer login o terminal volte a montar dispositivos após uma finalização incorreta é muito fácil, abra o arquivo ldm:

root@defiant:/home/gutera# vim /opt/ltsp/i386/usr/sbin/ldm

Procure pelo seguinte trecho no código:

session_manager = session_manager+' && ltspfsmounter all cleanup'

E modifique apenas os dois && por || ficando assim:

session_manager = session_manager+' || ltspfsmounter all cleanup'

Salve o arquivo, pronto seus dispositivos locais voltarão a funcionar mesmo que vc desligue o terminal de forma incorreta.

[editar] aumentando o tamanho da memória swap (NBD) usada pelos terminais

Normalmente o ltsp vem configurado para oferecer apenas 32 MB por padrão para os terminais, caso vc tenha teminais com pouca memória é necessário aumentar este valor, para isso crie o seguinte arquivo:

root@defiant:/home/gutera# vim /etc/ltsp/nbdswapd.conf

Dentro do arquiv adicione SIZE= o tanto de memória que vc quer disponibilizar, exemplo:

SIZE=128


[editar] desativando alteração do papel de parede

Com este comando podemos impedir que os usuários dos terminais possam mudar o papel de parede dos mesmos, pois tiramos a permissão de execução do programa que altera o wallpaper.

root@defiant:/home/gutera# chmod 700 /usr/bin/gnome-background-properties


[editar] habilitando login automático com ldm-customizado nos terminais

Primeiramente devemos fazer backup do gerenciador de login LDM para posteriormente usarmos uma versão modificada :

# cp /opt/ltsp/i386/usr/sbin/ldm /opt/ltsp/i386/usr/sbin/ldm.bkp

Agora vamos limpar o arquivo ldm, para adicionarmos o modificado:

# echo "" > /opt/ltsp/i386/usr/sbin/ldm

Abra o arquivo ldm agora vazio:

# vim /opt/ltsp/i386/usr/sbin/ldm

E copiei o script modificado contido em:

http://alburg.net/ldm

Agora vamos editar o arquivo /opt/ltsp/i386/etc/lts.conf para habilitar o login automático do terminal:

# vim /opt/ltsp/i386/etc/lts.conf

Abaixo das opções padrões você deve adicionar o MAC do terminal seguido das opções LDM_USERNAME= e LDM_PASSWORD= veja como fica:

[default]

SOUND=True
SOUND_DAEMON=pulse
LOCALDEV=True
NBD_SWAP=True
SYSLOG=server
XKBLAYOUT=br
XKBMODEL=abnt2
 
# Login automatico terminal 01

[00:50:8D:78:AC:DD]
LDM_USERNAME=terminal01
LDM_PASSWORD=123456

No exemplo acima estou dizendo que o terminal com MAC 00:50:8D:78:AC:DD usará o login terminal01 e a senha 123456 para fazer login automático.

[editar] desligando comunicação criptografa com ldm customizado

É possível com o uso deste ldm modificado também desligarmos o uso de comunicação encriptada entre os terminais e o servidor maximizando portanto o desempenho para isso apenas adicione a opção LDM_DIRETX=True em seu /opt/ltsp/i386/etc/lts.conf, vejamos:

[default]

SOUND=True
SOUND_DAEMON=pulse
LOCALDEV=True
NBD_SWAP=True
SYSLOG=server
XKBLAYOUT=br
XKBMODEL=abnt2
LDM_DIRETX=True

[editar] script de limpeza de contas

caso você crie contas padrão por exemplo:

criamos os usuários tc1 até o tc10, mas quer limpar estas contas diariamente.

tc = telecentro

vamos criar um script para facilitar isto

root@defiant:/usr/share/backgrounds# vim /sbin/limpacontas
coloque este conteúdo no script
#!/bin/bash
echo -e "\niniciando procedimentos de limpeza..."
echo "limpando contas tc"
for i in `seq 1 21`;do
        echo conta tc$i limpa...
        rm /home/tc$i -rf
        mkdir /home/tc$i
        cp -a /etc/skel/* /home/tc$i
        cp -a /etc/skel/.bash* /home/tc$i
        chown -R tc$i. /home/tc$i
done
echo "limpeza de contas finalizado..."

pronto agora vamos setar as permissões

root@defiant:/usr/share/backgrounds# chmod 700 /sbin/limpacontas

veja que ele se baseia no /etc/skel para reconstruir o home.

como o /etc/skell nao tem arquivos vamos criar um arquivo qualquer só para o script não retornar um erro.

root@defiant:/usr/share/backgrounds# echo "olá mundo" > /etc/skel/leime

pronto é só rodar colocar o limpacontas dentro do /etc/rc.local e ele será executado sempre na inicialização.

root@defiant:/usr/share/backgrounds# vim /etc/rc.local
#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.

# limpando contas dos usuários do telecentro

/sbin/limpacontas

exit 0

é isso :)

[editar] alterando scripts do ltsp-build-client

essa dica é bacana caso você queria usar um outro repositório para baixar os pacotes que vão construir o ambiente chroot.

no meu caso eu tenho um mirror local do ubuntu em minha máquina então eu aponto para ele, rápido e rasteiro ;)

mas você pode querer alterar para o br.ubuntu.com ou outro mirror rápido, depende de cada um.

para acessar o diretório com estes scripts faça o seguinte:

root@defiant:/home/gutera# cd /usr/share/ltsp/plugins/ltsp-build-client/Ubuntu/
root@defiant:/usr/share/ltsp/plugins/ltsp-build-client/Ubuntu# ls

000-basic-configuration           010-manage-mirror     030-default-lts-conf
000-daemon-handling               010-security-mirror   030-early-packages
000-init-whitelist                010-serial-console    030-kiosk
001-apt-keys                      010-var-lib-nfs       030-late-packages
001-set-accept-unsigned-packages  015-sources-list      030-loopback 
001-set-components                020-apt-get-update    035-default-modules
010-cleanup-consoles              020-kernel-img-conf   035-update-kernels
010-debconf-seeds                 020-kernel-selection  040-update-sshkeys
010-debootstrap                   025-locales           090-clean-package-cache
010-etc-mtab                      030-artwork

existem 2 arquivos que precisamos alterar, no meu caso eu tenho os repositórios do Ubuntu no meu HD, fiz um mirror local.

os arquivo que necessitam alteração são:

o arquivo 000-basic-configuration

root@defiant:/usr/share/ltsp/plugins/ltsp-build-client/Ubuntu# cat 000-basic-configuration
case "$MODE" in
    configure)

        ARCH=$(dpkg --print-architecture)

        APT_GET_OPTS="-y"

        DIST=feisty

        #MIRROR=http://archive.ubuntu.com/ubuntu
        MIRROR=http://127.0.0.1/mirror/distros/ubuntu/feisty
 
       COMPONENTS="main restricted"
 
        EARLY_PACKAGES="xserver-xorg 
                        libgl1-mesa-glx 
                        libgl1-mesa-dri 
                        libglu1-mesa 
                        xfonts-base 
                        xbase-clients 
                        xutils xkb-data 
                        xterm ltsp-client 
                        discover1  
                        laptop-detect 
                        xresprobe 
                        pulseaudio 
                        pulseaudio-esound-compat 
                        inputattach 
                        usplash 
                        ldm 
                        ltspfsd 
                        human-cursors-theme 
                        usplash-theme-ubuntu"
 
        RCS_WHITELIST="mountkernfs.sh 
                       mountdevsubfs.sh 
                       hostname.sh 
                       loopback 
                       udev 
                       module-init-tools 
                       procps.sh 
                       etc-setserial 
                       ltsp-client-setup 
                       setserial 
                       console-screen.sh 
                       console-setup"
 
        RC2_WHITELIST="klogd sysklogd ltsp-client nbd-client usplash rmnologin"

        OVERRIDE_EXPORTS="true"

        export DEBIAN_PRIORITY=critical

        ;;

    after-install|finalization)

        # Our code to hanlding after-install and finalization is

        # exactly the same of Debian so we include it here.

        . $PLUGINS_BASE/$SCRIPT/Debian/000-basic-configuration

        ;;
esac

e o arquivo 010-security-mirror

root@defiant:/usr/share/ltsp/plugins/ltsp-build-client/Ubuntu# cat 010-security-mirror
case "$MODE" in
    before-install)

        if [ "$SECURITY_MIRROR" = "none" ]; then

            SECURITY_MIRROR=""

        else

            #SECURITY_MIRROR=${SECURITY_MIRROR:-"http://security.ubuntu.com/"}
             SECURITY_MIRROR=${SECURITY_MIRROR:-"http://127.0.0.1/mirror/distros/ubuntu/feisty"}

            if [ -z "$(echo $SECURITY_MIRROR | awk '{print $2}')" ]; then

            echo "`eval_gettext "NOTE: adding default dist and components to security mirror:"`"

            #SECURITY_MIRROR="$SECURITY_MIRROR/ubuntu $DIST $COMPONENTS"
            SECURITY_MIRROR="$SECURITY_MIRROR feisty-security $COMPONENTS"

            echo "$SECURITY_MIRROR"

            fi
        fi
        ;;
esac

veja que são alterações mínimas, de acordo com o repositório e o endereçamento dele.

lembrando que repositorios seguem a seguinte regra

deb raiz-do-mirror dist componentes

deb http://129.168.0.1/mirror/distros/ubuntu/feisty feisty main restricted universe multiverse

é assim que funciona.

qualquer dúvida me manda um e-mail.

[editar] links interessantes utilizados para escrever o tutorial

LTSP

LocalDevices

PulseAudio

VNC

Ferramentas pessoais