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/
[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 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 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 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
- http://www.ltsp.org
- http://pt.wikipedia.org/wiki/Ltsp
- http://developer.novell.com/wiki/index.php/Edgy/HOWTO:_Install_MueKow_on_Ubuntu
- https://help.ubuntu.com/community/ThinClientHowto
LocalDevices
PulseAudio
- http://developer.novell.com/wiki/index.php/Feisty/HOWTO:_PulseAudio
- http://blog.paulbetts.org/index.php/2007/04/15/pulseaudio-in-ubuntu-feisty-play-sound-over-the-network/
- http://pulseaudio.revolutionlinux.com/PulseAudio
- http://pulseaudio.org/wiki/PerfectSetup
VNC




