Ubuntu, a distribuição de Linux mais usada no mundo. Simples de usar, agradável à vista, facilita muito quem pretende deixar o windows e mudar-se para melhor.
No HAL, como já coloquei aqui, temos uma instalação de LTSP 4.2. Esta versão, muito estável, é complicadissima de configurar alguns detalhes, tais como as aplicações locais. O LTSP vai na versão 5.0, embora ainda só esteja a funcionar em pleno no Ubuntu 7.10. Assim, decidimos avançar com esta versão para os nossos utilizadores e deixar a instalação do OpenSuse 10.3 com LTSP 4.2.
Quais as vantagens da versão 5.0 (e de usar Ubuntu) ?
Para começar, a instalação. Os programadores do Ubuntu realmente fizeram um belo trabalho, e ao mesmo tempo que contribuiam para o desenvolvimento do LTSP 5, criaram uma série de scritps na distribuição para auxiliar a instalação.
Assim que se executar o script, o LTSP está pronto a usar.
Na versão 5.0, a instalação de aplicações efectua-se com o gestor de pacotes da própria distribuição, tendo assim aplicações locais, que correm directamente no cliente e não no servidor. Suporte para dispositivos amoviveis vem logo a funcionar, sem ser preciso fazer nada.
Tendo indicado algumas vantagens, vamos à instalação.
Passos na instalação
1 – Instalar Ubuntu (Ubuntu Server 7.10)
2 – Instalar LTSP
3 – Personalizar
No final iremos ter uma instalação de Ubuntu, com bonding activado, suporte de LDAP, LTSP 5.0 com todo o ambiente gráfico em Português, suporte para videos, flash, PDF, etc…
Instalação
Foi optada pela versão servidor porque a versão para desktop não arrancou no servidor. Foi escolhida a lingua portguesa durante a instalação, mas depois foi constadado que havia muitos elementos que não estavam em português. Assim que foi instalado o sistema e arrancou pela primeira vez, foi efectuado um upgrade a todo o sistema. Em primeiro lugar, foram actualizadas as sources do apt.
apt-get update
Assim que foram actualizadas, foi actualizado todo o sistema:
apt-get upgrade
Com o sistema completamente actualizado, foi instalado o ambiente gráfico. Uma das coisas boas do Ubuntu, e mesmo sem experiência quase nenhuma a mexer com este Linux, a facilidade em instalar um desktop é maravilhosa. Seja qual for o desktop, o apt trata de tudo:
apt-get install ubuntu-desktop (para Gnome)
apt-get install kubuntu-desktop (para Kde)
apt-get install xubuntu-desktop (para Xfce)
Estando o ambiente gráfico instalado, segue-se a rede.
Bonding
Configurar o bonding em Ubuntu também é relativamente simples. Para garantir que o módulo é carregado no arranque do sistema, vamos editar o ficheiro /etc/modules e acrescentar a seguinte linha:
bonding mode=802.3ad miimon=100
O parâmetro mode explicita ao módulo o que fazer. O parâmetro miimon especifica o intervalo de monitorização em milisegundos.
A seguir, instalamos o aplicativo ifenslave. Este aplicativo permite "escravizar" as interfaces de rede numa master lógica.
apt-get install ifenslave-2.6
A seguir, editamos o ficheiro /etc/network/interfaces . Este ficheiro contém as informações sobre as interfaces de rede e respectivas configurações. Provavelmente o ficheiro já lá contém alguma informação. Comentamos ou apagamos todas as linhas que dizem respeito às interfaces, excepto a lo, e acrescentamos:
auto bond0
iface bond0 inet static
address 10.0.0.10
netmask 255.255.255.0
gateway 10.0.0.254
broadcast 10.0.0.255
dns-nameservers 10.0.0.1
post-up ifenslave bond0 eth0 eth1
pre-down ifenslave -d bond0 eth0 eth1
As linhas post-up e pre-down certifica que as interfaces são "escravizadas" e posteriormente libertas quando a interface lógica bond0 é inicializada ou desligada.
Reiniciar a máquina para verificar se tudo corre bem.
Nota: Esta configuração de bonding foi retirada do Pascal’s TechBlog
Configurar o LDAP
Como desejamos que os nossos utilizadores possam entrar na máquina, e como os temos todos numa àrvore LDAP, vamos colocar suporte no Ubuntu. Além dos grupos de LDAP, iremos também fazer com que pertençam ao grupo do fuse (para suporte dos dispositivos amoviveis) e outros grupos necessários, mas que só existem no servidor (próprios da distribuição).
Como root (ou utilizamos o sudo) executamos:
apt-get install auth-client-config libpam-ldap libnss-ldap
Quando aparecerem as perguntas, respondemos:
Should debconf manage LDAP configuration: <SIM>
ldapi:///<hostname ou Ip do servidor de ldap>
Distinguished name: dc=domainname,dc=com
LDAP Version to use: 3
Make local root Database admin: <SIM>
Does LDAP database require login: <NÃO>
LDAP account for root: cn=Manager,dc=domainname,dc=com
LDAP root account password: A password do Manager
As respostas a estas perguntas todas deviam ser suficientes, mas não são. Para isso, vamos editar o ficheiro /etc/ldap.conf e alterar alguns detalhes (alterar as linhas indicadas se nao corresponderem – o que já estiver no ficheiro para além destas linhas deixar estar).
host <o ip do servidor de ldap ou o DNS> <servidor secundário>
base dc=domainname,dc=com
ldap_version 3
bind_policy soft
pam_password crypt
ssl start_tls
ssl on
tls_checkpeer no
tls_cacertdir /etc/ssl/certs
Nota: Estes são os valores para o caso especifico do HAL. Aqui temos um LDAP principal e um secundário, usamos SSL, as passwords são encriptadas usando o algoritmo crypt e temos certificados.
Como existe outro ldap.conf em /etc/ldap/ vamos replicar o que alterámos:
mv /etc/ldap/ldap.conf /etc/ldap/ldap.conf.back
cp /etc/ldap.conf /etc/ldap/
Agora, vamos usar o auth-client-config (em vez de editar os ficheiros à mão).
Criamos um novo perfil LDAP:
vi /etc/auth-client-config/profile.d/open_ldap e copiamos para lá as seguintes linhas:
[open_ldap]
nss_passwd=passwd: ldap files
nss_group=group: ldap files
nss_shadow=shadow: ldap files
pam_auth=auth required pam_env.so
auth sufficient pam_unix.so likeauth nullok
auth sufficient pam_ldap.so use_first_pass
auth required pam_deny.so
pam_account=account sufficient pam_unix.so
account sufficient pam_ldap.so
account required pam_deny.so
pam_password=password sufficient pam_unix.so nullok md5 shadow use_authtok
password sufficient pam_ldap.so use_first_pass
password required pam_deny.so
pam_session=session required pam_limits.so
session required pam_mkhomedir.so skel=/etc/skel/
session required pam_unix.so
session optional pam_ldap.so
Executamos o seguinte comando para activar o código em cima:
auth-client-config -a -p open_ldap
Agora, para colocar os utilizadores nos grupos quando eles efectuarem o login, colocamos a seguinte linha no topo dos ficheiros /etc/pam.d/gdm e /etc/pam.d/login:
auth optional pam_group.so
Temos que a colocar no topo, pois estes ficheiros não são lidos caso alguma condição sufficient/required é executada.
Agora, para adicionar os grupos que pretendemos, adicionamos as seguintes linhas ao ficheiro /etc/security/group.conf:
login;*;*;Al0000-2400;users,cdrom,floppy,plugdev,audio,dip,fuse
kdm;*;*;Al0000-2400;users,cdrom,floppy,plugdev,audio,dip,video,fuse
gdm;*;*;Al0000-2400;users,cdrom,floppy,plugdev,audio,dip,video,fuse
Neste caso, adicionamos também o grupo fuse para que os utilizadores possam ter acesso aos dispositivos amoviveis nos terminais LTSP.
Nota: Se usarem certificados para o LDAP, copiar para a directoria indicada em cima e executar o comando c_rehash pwd
/. Isto permite que seja efectuado um hash aos ficheiros lá colocados.
Para experimentar:
getent passwd
Deverá aparecer uma listagem com todos os utilizadores do LDAP. Se assim for, está tudo bem configurado.
Nota: Parte do tutorial de LDAP foi retiradao dos forums do Ubuntu. Outras configurações foram efectuadas por mim.
Instalação do LTSP
Instalar o LTSP no Ubuntu é a coisa mais simples do mundo. Além de existir muita documentação, foram criados uma série de scripts para ajudar a fazer essas operações.
Para instalar o LTSP, só temos que digitar o seguinte comando:
apt-get install ltsp-server-standalone openssh-server
Assim que terminar de instalar os pacotes, vamos criar o ambiente para o LTSP. O Ubuntu fornece um script para isso.
ltsp-build-client
Assim que o script terminar, já poderiamos arrancar com o primeiro Thin Client. Mas não o vamos fazer, porque se estiveram com atenção, o DHCP server não arrancou. Isso deve-se porque o LTSP do Ubuntu parte do principio que temos duas placas de rede e uma delas está configurada a gama 192.168.0.0/24. Como isto não acontece, ele dá erro. Mas nada de preocupações.
Editar o DHCP
O ficheiro dhcpd.conf encontra-se em /etc/ltsp/dhcpd.conf. Vamos editar este ficheiro e efectuar muitas alterações. o ficheiro lá colocado por defeito tem muito pouca coisa. Este é o meu dhcpd.conf:
#
# Default LTSP dhcpd.conf config file.
#
ddns-update-style none;
deny client-updates;
allow bootp;
default-lease-time 21600;
max-lease-time 21600;
option subnet-mask 255.255.255.0;
option broadcast-address 192.168.0.255;
option domain-name "domainname.pt";
option routers 192.168.0.2;
option domain-name-servers 172.17.2.1, 172.17.2.8;
#authoritative;
use-host-decl-names on;
option root-path "192.168.0.2:/opt/ltsp/i386";
option log-servers 192.168.0.2;
next-server 192.168.0.2;
subnet 192.168.0.0 netmask 255.255.255.0 {
if substring( option vendor-class-identifier, 0, 9 ) = "PXEClient" {
filename "/ltsp/i386/pxelinux.0";
} else {
filename "/ltsp/i386/nbi.img";
}
include "/etc/ltsp/dhcpd.clients";
}
Agora, com as novas configurações, já podemos arrancar com o serviço do DHCP.
/etc/init.d/dhcp3-server start
e vejam que arranca sem problemas. Agora, como alterámos os IP’s do dhcpd.conf, temos que dizer ao servidor de ssh que fizemos alterações. Para isso, basta executar o script ltsp-update-sshkeys (basta escrever isso numa consola, como root).
Nota: Aquando da configuração automática por parte do script de instalação do LTSP, o dhcp3-server não fica a arrancar automáticamente, tendo nós que o configurar, adicionando-o ao runlevel. Eu sei que existem outras formas, mas como não conheço muito bem o script para gerir os runlevels do Ubuntu (Debian), fiz desta forma:
update-rc.d -f dhcp3-server remove
Removing any system startup links for /etc/init.d/dhcp3-server ...
/etc/rc0.d/K20dhcp3-server
/etc/rc1.d/K20dhcp3-server
/etc/rc2.d/S20dhcp3-server
/etc/rc3.d/S20dhcp3-server
/etc/rc4.d/S20dhcp3-server
/etc/rc5.d/S20dhcp3-server
/etc/rc6.d/K20dhcp3-server
update-rc.d dhcp3-server defaults
Adding system startup for /etc/init.d/dhcp3-server ...
/etc/rc0.d/K20dhcp3-server -> ../init.d/dhcp3-server
/etc/rc1.d/K20dhcp3-server -> ../init.d/dhcp3-server
/etc/rc6.d/K20dhcp3-server -> ../init.d/dhcp3-server
/etc/rc2.d/S20dhcp3-server -> ../init.d/dhcp3-server
/etc/rc3.d/S20dhcp3-server -> ../init.d/dhcp3-server
/etc/rc4.d/S20dhcp3-server -> ../init.d/dhcp3-server
/etc/rc5.d/S20dhcp3-server -> ../init.d/dhcp3-server
Configurar o ambiente LTSP
Agora que já temos o LTSP a funcionar, vamos configurar o ambiente. Começamos com uma actualização ao ambiente e depois instalamos alguns pacotes para personalizar.
A directoria /opt/ltsp é um sistema Linux completo. Podemos instalar pacotes, usando o apt (aqui está a grande diferença do LTSP 4.2 para a versão 5), e manter o LTSP actualizado. Dada a fantástica flexibilidade do Linux, podemos trocar a nossa root para a directoria e trabalhar lá dentro normalmente. Vamos então fazer um chroot para o LTSP e actualizar o nosso ambiente.
Para que possamos ter rede no nosso ambiente LTSP, vamos copiar alguns ficheiros necessários.
cp /etc/resolv.conf /opt/ltsp/i386/etc
Vamos agora também copiar a listagem dos repositorios de pacotes para o apt.
cp /etc/apt/sources.list /opt/ltsp/i386/etc/apt
Agora que copiamos todos os ficheiros necessários, vamos então trocar para o nosso ambiente
chroot /opt/ltsp/i386
Sejam bem vindos ao nosso ambiente LTSP. Vamos começar por actualizar os repositorios do apt e actualizar o sistema.
apt-get update
apt-get upgrade
NOTA: Eu tive um problema com a actualização do kernel. O apt dá erro, dizendo que o ficheiro existe. O ficheiro é o nbi.img-2.6.22-14-386 (que se encontra em /boot). Para resolver o problema, têm que apagar esse ficheiro, tornar a executar o apt-get upgrade. Torna a dar o mesmo erro, mas instala os restantes pacotes. Tornamos a remover o mesmo ficheiro e executamos novamente o apt-get upgrade. Desta vez, já instala o novo kernel.
Já temos o ambiente de LTSP actualizado. Agora, vamos à personalização. No meu caso particular, desejo que os meus utilizadores tenham o sistema todo em português, flash player, adobe acrobat reader, ouvir musicas e ver videos.
Suporte de Português
Para se ter um suporte de português, basta instalar os seguintes ficheiros. O apt tratará de resolver as dependências, dando posteriormente algumas sugestões para instalação de outros pacotes.
apt-get install language-pack-pt language-support-pt
Estes foram os pacotes que instalei. Agora, se efectuarem uma pesquisa por portuguese, encontrarão muitos mais. É tudo uma questão de escolha (A flexibilidade do Linux sempre presente).
apt-cache search portuguese
Suporte ao video, audio e outros plugins necessários
Para que os utilizadores possam ver videos, ouvir musica e outras operações relacionadas com multimédia, temos que instalar suporte para todos os formatos mais comuns. Para isso, o apt do ubuntu apresenta a instalação de um pacote que instala tudo o que é necessário.
apt-get install ubuntu-restricted-extras
Desta forma, já temos suporte para a maioria dos ficheiros multimédia.
Adobe Reader e Flash Player
Como não consegui encontrar nenhum pacote para instalar estes dois componentes, tive que os instalar manualmente. A instalação é simples e facil, tal como no windows.
No caso do Adobe Acrobat Reader, fui ao site da Adobe e retirei a versão para Linux, Portuguesa e em .deb. Para instalar, nada mais facil que:
dpkg -i AdobeReader_ptb-8.1.1-1.i386.deb
Para instalar o suporte de flash, foi exactamente a mesma coisa. Fui ao site da Adobe e retirei o instalador para Linux. Descompactei e segui as instruções.
tar -zxvf install_flash_player_9_linux.tar.gz
cd install_flash_player_9_linux
./flashplayer-installer
Quando perguntar pela directoria, coloquem /usr/lib/firefox.
Desta forma, já temos o nosso ambiente LTSP configurado, em portugues e com suporte para várias coisas.
Saímos do ambiente LTSP e voltamos a nossa root anterior.
umount /proc
Ctrl + D ou exit
Agora que estamos na nossa root anterior, temos que executar três scripts para que as alterações efectuadas reflitam.
ltsp-update-sshkeys
ltsp-update-kernels
ltsp-update-image
Desta forma, está tudo prontinho. Podem ligar um terminal e experimentar.
NOTA: Eu reparei que, apesar de instalar as aplicações no chroot do LTSP, sair, executar os comandos colocados em cima, as aplicações não aparecem no desktop do utilizador. Para isso, é necessário também instalar no servidor, usando os mesmos comandos usados ao longo deste howto.
Nota: Li mais atentamente, e realmente, as aplicações a instalar, têm que ser feitas no servidor e não no chroot do LTSP.
Aqui ficam as souces que eu usei no apt (/etc/apt/sources.list):
1 |
<span style="font-weight:bold;">deb http://pt.archive.ubuntu.com/ubuntu/ gutsy main restricted</span> |
1 |
<span style="font-weight:bold;">deb http://pt.archive.ubuntu.com/ubuntu/ gutsy-updates main restricted</span> |
1 |
<span style="font-weight:bold;">deb http://pt.archive.ubuntu.com/ubuntu/ gutsy universe</span> |
1 |
<span style="font-weight:bold;">deb http://pt.archive.ubuntu.com/ubuntu/ gutsy-updates universe</span> |
deb http://pt.archive.ubuntu.com/ubuntu/ gutsy multiverse
1 |
<span style="font-weight:bold;">deb http://pt.archive.ubuntu.com/ubuntu/ gutsy-updates multiverse</span> |
1 |
<span style="font-weight:bold;">deb http://archive.canonical.com/ubuntu gutsy partner</span> |
1 |
|
1 |
<span style="font-weight:bold;">deb http://security.ubuntu.com/ubuntu gutsy-security main restricted</span> |
1 |
<span style="font-weight:bold;">deb http://security.ubuntu.com/ubuntu gutsy-security universe</span> |
Caro Bruno,
gostei do passo a passo.
você poderia colocar os repositórios que você usou.
vou fazer algumas mudanças em um telecentro.
obrigado,
erasmo
Ola Erasmo. Obrigado pelo comentário.
Já coloquei os repositorios na página. Dê uma olhadela.
Cumprimentos,
Bruno Santos
Muito bom, este tutorial, consegui fazer funcionar tudo certo, só que nas maquinas cliente, gostaria de trocar a resolução do video para 1024X768 e outras para 800X600, tem alguma dica?
Ola Adriano. Obrigado por ter gostado.
Em relacao à resolucao das maquinas clientes, basta editar o ficheiro lts.conf, que se encontra em (*/var/lib/tftpboot/ltsp/i386*) (se não existir, basta criar). Aí dentro estão colocadas as definições para os terminais. Existe um parametro que especifica a resolução dos monitores no X e dá para ser especifico para cada terminal. Veja a seguinte página (*http://doc.ubuntu.com/edubuntu/edubuntu/handbook/C/customizing-thin-client.html.*) se tiver duvidas, diga-me algo.
Boas caro Bruno Santos!
Este tutorial esta excelente no meu ponto de vista!
Mas eu tive um pequeno problema que foi o seguinte:
Depois de tudo configurado correctamente os “meus” clientes não arrancaram! Simplesmente não dão! A imagem que depois criei na disquete com os drives da placa de rede não abre!
Tem alguma sugestão??
Cumprimentos
Tiago
Ola Tiago. Se eu percebi, a placa de rede não arranca nativamente por PXE (o que é essencial).
Visite estas páginas, http://www.etherboot.org/wiki/index.php
e http://rom-o-matic.net/ onde poderá encontrar rooms para placas de rede já antigas e que não arrancam por PXE.
Nota: nas bios dos clientes, poderá haver uma opção para arrancar por PXE. Se as placas já forem antigas, então a disquete de arranque é o melhor.
Se eu percebi bem, se for outra coisa, por favor diga-me. Tente incluir algum tipo de erro, se possivel.
Cumprimentos e obrigado
Boas caro Bruno!
Depois de ter lido todo os sites que me indicou eu descobri que nao tenho activado o “XDMCP”
Sabe como me pode ajudar?
Tenho o ubunto 7.10
Desde já muito obrigado pela atenção!!
Cumprimentos Tiago
Ola Tiago. Olhe, aquilo que li, esta versao do LTSP no Ubuntu 7.10 já não utiliza o XDMCP. Preciso que me diga mais qualquer coisa, algum tipo de erro, mensagens que aparecem, o que realmente voce nao consegue fazer.
Cumprimentos
Boas caro Bruno
O erro que me dá é que não me aparece o “LOGON” na máquina cliente!
Esse é mesmo o meu maior problema.
Porque erros e isso não dá! Apenas nao aparece o login no cliente!
Cumprimentos Tiago
Tiago, entao, vamos fazer assim:
Edite o ficheiro */var/lib/tftpboot/ltsp/i386/pxelinux.cfg/default*
Nesste ficheiro vê uma linha:
*DEFAULT vmlinuz ro initrd=initrd.img quiet splash*
A essa linha, retire as palavras *quiet* e *splash* Guarde o ficheiro e faca reboot ao terminal. Vai ver (em vez do splash do ubuntu), texto, muito texto. tente identificar algum erro. provavelmente com a placa grafica, ou outra coisa qualquer.
Cumprimentos
Ola Bruno,
Ca estou eu novamente. Relativamente ao erro existente no reply anterior, ja esta ultrapassado. Tratava-se de um terminal Scenic. Já consegui entrar mas só com o utilizador que contem todos os privilégos. como posso colocar os outros utilizadores?
Cumprimentos Tiago
Grato pela atenção
P.S- Sabe de alguma soluçao para os Scenic?
Ola de novo Tiago. Por acaso, aqui no HAL usamos scoverys e futros, da fujitsu-siemens. Não temos nenhum scenic a fazer de terminais.
Em relacao aos utilizadores, não lhe sei como responder.
Na propria maquina, so tenho o utilizador criado durante a instalação, os outros estão por LDAP e nenhum teve problemas a entrar. Provavelmente alguma configuração de LDAP (se é que usa). Os utilizadores são criados no servidor?
Faça assim:
como root (ou sudo):
*sudo tail -f /var/log/messages*
e num terminal tente entrar.. veja se lhe dá algum erro.
Diga-me depois mais qualquer coisa.
Cumprimentos,
Bruno
PS: Se quiser, posso colocar aqui parte do meu *lts.conf* com algumas configurações (a default e as usadas para cada um dos modelos de terminais).
Olá! gostaria de saber qual é a forma de criaros login dos clientes, pois irei utilizar uma aplicacao que executa assim que o cliente se loga automaticamente na rede exemplo:
terminal 1 – usuario1 – aplicativo1
terminal2 – usuario2 – aplicativo 2
Valeu!
Ola Roger.
Relativamente aos utilizadores, basta criar no servidor que eles automaticamente ficam disponiveis para os terminais.
Relativamente ao autologin, também tenho isso feito e com a execução directa de uma aplicação, consoante o terminal. Tem que me deixar ver isso amanhã e eu irei colocar aqui. Tenho essa informação toda no meu local de trabalho. Abraço
Ola Roger.
Relativamente ao auto-login dos clientes, no ficheiro lts.conf, na secção para o terminal desejado, basta incluir as seguintes linhas:
[terminalYY]
LDM_USERNAME = utilizador
LDM_PASSWORD = password
Para executar directamente uma aplicao, basta tambem incluir a seguinte linha, na mesma secção para o terminal em questão:
LDM_SESSION = “caminho para a aplicacao”
Desta forma, consegue-se personalizar cada terminal.
Relativamente ao autologin, tive alguns problemas e nem sempre funcionou, mas isto devido a um erro no LDM (aplicacao estilo GDM e KDM, mas para o LTSP). Pode ser que ja esteja corrigida.
Abraco,
Bruno Santos
No meu local de trabalho tenho instalado LTSP 5 em Ubuntu 7.04 (Gutsy). Foi uma nova instalação efectuada (descrita aqui no meu blog), onde uma das razaões para esta nova instalação foi a utilização dos Loc