ThinClientHowTo
Conteúdo |
O que é um Thin Client?
Para o usuário, um thin client (cliente fino|magro) se comporta como um computador desktop comum. Para o administrador, um thin client não tem armazenamento próprio, é de fácil manutenção e pode dar ao usuário uma experiência moderna de computação mesmo que esteja usando um hardware antigo.
Como thin clients funcionam?
Thin clients são computadores que carregam e executam a maioria dos seus programas de um servidor central, mas são apresentados na tela do cliente. Em termos técnicos, o thin client pode tanto obter um kernel de armazenamento local ou carregar um kernel através da rede. (Usando estas instruções, você irá obter o kernel linux do servidor usando uma placa de rede bootável. Desta maneira, o thin client não precisa mais armazenar nada além da ROM de boot interna a sua placa de rede bootável.)
Sequência de Boot
A placa de rede PXE faz uma requisição DHCP a rede local. O DHCP responde dando informações para a placa de onde carregar o kernel linux. O kernel é carregado através da rede pelo protocolo TFTP.
Uma vez que o kernel é carregado via TFTP, ele é executado; a máquina boota o linux. Um initramfs carregado com o kernel é montado como o sistema de arquivos raiz (root). Este carrega e auto detecta os drivers necessários para placa de rede, mouse, som, teclado e etc. Uma vez que o driver de placa de rede é carregado, uma segunda requisição DHCP diz ao cliente o seu endereço IP, mascara de rede, gateway, servidor DNS e ponto de montagem da base NFS (Network File System).
O kernel do linux executa o initramfs ubuntu, que monta o compartilhamento NFS base do servidor para o thin client somente para leitura (read-only). O thin client agora tem um kernel linux bootado e um sistema de arquivos raiz, tal qual qualquer sistema Linux. A partir de agora, quando falamos do sistema de arquivos base (root) no cliente, nós estamos atualmente falando sobre o sistema de arquivos base montado somente para leitura do servidor. O sistema de arquivos base montado pelo thin client não é o mesmo sistema de arquivos base que o servidor utiliza, mas é um especialmente preparado para thin clients e é compartilhado por todos os thin clients conectados ao servidor (localizado em /opt/ltsp/<arquitetura> no servidor). O initramfs chama o programa init, as configurações do servidor X são auto-detectadas e o gerenciador de login ubuntu ltsp, chamado ldm, é iniciado.
Como funciona o X no LTSP?
Depois de logado, o ldm inicia um túnel ssh e executa uma sessão X no servidor que é mostrado através do túnel no servidor X do thin client. Usando ssh aqui tem a maior vantagem já que você não precisa ter um servidor X configurado no cliente e sem transporte de pacotes tcp sem segurança, é inicializado como era feito antigamente no ltsp.
Requerimentos
Você irá precisar de:
- Um sistema Ubuntu (5.10 ou mais atual) para ser o servidor
- Pelo menos um sistema bootável via PXE para ser o cliente
- Um tanto de espaço em disco
- Uma conexão rápida de rede, ou um servidor espelhado de pacotes Ubuntu ou muita paciência
- Um servidor DHCP que é capaz de suportar clientes PXE ou um segmento de rede separado onde você pode executar um servidor DHCP dedicado
- Familiaridade com comandos de texto
- Um espírito aventureiro
Um desejo ardente de enviar o seu feedback para ubuntu-devel
Avisos
Por favor, não use este Howto se você instalou Edubuntu do DC, já que o instalador já faz praticamente todo o trabalho descrito aqui, se você usa Edubuntu, siga as notas de instalação do Edubuntu Install Notes no wikipage em https://wiki.edubuntu.org/EdubuntuInstallNotes.
Este não é o último release estável de LTSP (4.1), mas o novo padrão aparecendo para LTSP (upstream codename MueCow). Desde que é uma implementação muito nova nem todas as opções do LTSP 4.1 são suportadas (veja [EdubuntuLtsConfParams] para detalhes), entretanto você pode usar muitas soluções (como suporte local de dispositivos - usb - ou som, etc.) providas no http://wiki.ltsp.org. Para algumas características que são planejadas/em desenvolvimento para a integração padrão, veja:
- Não utilize as ferramentas ltspadm e ltspcfg com esta implementação de LTSP, isto irá garantir a ruína da sua configuração ltsp!!!
Começando
NOTA: Se você planeja usar o servidor como máquina gateway/nat/firewall, é fortemente sugerido a configurar todas as interfaces de rede antes de proceder com os seguintes passos.
- Configurar o servidor DHCP
- Se você já tem um servidor DHCP que pode suportar clientes PXE:
Configure-o para passar o nome de arquivo de boot: /ltsp/pxelinux.0 e p caminho da base: /opt/ltsp/i386
- Para DHCPD ISC, use as seguintes opções:
filename "/ltsp/pxelinux.0"; option root-path "/opt/ltsp/i386";
Instale ltsp-server no servidor:
sudo apt-get install ltsp-server
- Se você quer executar um servidor DHCP dedicado no servidor de thin clients:
Instale ltsp-server-standalone no servidor:
sudo apt-get install ltsp-server-standalone
Se necessário, customize /etc/ltsp/dhcpd.conf (por padrão é configurado para um servidor no ip 192.168.0.1 servindo clientes PXE)
Se você está executando um firewall no servidor, você poderá precisar de abrir o firewall para os protocolos TFTP e NFS (e DHCP se você está executando o servidor standalone). Também, tenha certeza que o portmap não está limitado a interface de loopback no /etc/default/portmap (descomente a linha com "-i 127.0.0.1") se ela existir, pode ser um resto da versão antiga do Ubuntu. Você pode também editar `/etc/hosts.allow' e limitar o acesso em portmap, rpc.mountd, rpc.statd e in.tftpd para a rede local:
portmap: 192.168.0.0/24 rpc.mountd: 192.168.0.0/24 rpc.statd: 192.168.0.0/24 in.tftpd: 192.168.0.0/24
- Reiniciar o subsistema nfs:
sudo invoke-rc.d nfs-kernel-server restart sudo invoke-rc.d nfs-common restart sudo invoke-rc.d portmap restart
- Se você já tem um servidor DHCP que pode suportar clientes PXE:
- Construir o ambiente de execução do thin client:
sudo ltsp-build-client
Este script é fortemente codificado para uso de um servidor espelho de Ubuntu, então você pode desejar editá-lo se você tem um espelho de pacotes próximo ou um CD (sudo ltsp-build-client --mirror file:///cdrom), lembre-se de copiar o sources.list do servidor no chroot)
- Se você mudou suas configurações de dependências do aptitude para não selecionar pacotes recomendados automaticamente, nem todos os pacotesserão "downloadeados" e instalados por este script. Então nenhum login com ldm será possível, por exemplo por causa de algumas partes do servidor X faltantes
sudo apt-get install openssh-server sudo ltsp-update-sshkeys
Cheque /opt/ltsp/i386/etc/ssh/ssh_known_hosts e certifique-se que sua chave do host é associada com seu endereço IP. Dependendo da sua configuração /etc/hosts, isto poderá (ainda) não ser sempre automaticamente correto. Se parece com isto:
servername ssh-rsa AAAAB3NzaC1yc2EAAAABI...
- então adicione o endereço IP assim:
servername,192.168.0.1 ssh-rsa AAAAB3NzaC1yc2EAAAABI...
E preencha um bug no Malone. ISTO NÃO DEVE ACONTECER.
sudo invoke-rc.d dhcp3-server start
Opcionalmente, criar /opt/ltsp/i386/etc/lts.conf. Se você não criá-lo, padrões razoáveis e valores auto-detectados serão usados. Nota: Nem todas as opções são suportadas (veja [EdubuntuLtsConfParams]).
- Use o boot PXE boot do cliente e veja o que acontece. Se tudo der certo, você deve ver uma caixa de diálogo gráfica.
Se seu cliente não tiver PXE na placa de rede, você pode gerar um CD ou disquete de boot customizado no ROM-o-matic.net. Queime a ISO ou imagem de floppy e boot isto.
- Logue, com qualquer usuário autorizado para logar remotamente via ssh e veja o que acontece. Se tudo der certo, você poderá ter uma sessão desktop de trabalho no servidor.
Envie e-mail para ubuntu-devel com suas descobertas
Dicas
Se você tem um DHCP que você não quer instalar LTSP, você pode somente redirecionar o thin client para carregar em um servidor diferente.
Em seu servidor DHCP, o arquivo dhcpd.conf:
next-server 192.168.0.3;
- onde 192.168.0.3 é o endereço do servidor LTSP
Bugs
Bug 19407: OpenSSH parece não liberar portas usadas pelo X forwarding de maneira temporária, prevenindo você de deslogar e logar de volta imediatamente depois quando o suporte IPv6 está habilitado. Disabilite-o adicionando "AddressFamily inet" ao /etc/ssh/sshd_config e reinicializando o daemon do openssh.
Extras
ThinClientHowTo (last edited 2011-09-19 23:21:02 by localhost)