Tradução: Marlon Dutra - 7 de março de 2004
Ok, foi um longo tempo. Muito tempo. Mas o LTSP 4 está finalmente disponível. O documento abaixo descreve alguns dos novos recursos, como instalar ele, como configurar e como pegar o código fonte.
Isso é uma daquelas coisas que nós poderíamos levar mais uns 2 anos, e continuar sentindo que não está do jeito que a gente gostaria. Mas, em algum ponto, nós percebemos que precisamos lançar a versão e ter o máximo de pessoas possível usando ela.
Muito obrigado,
Jim McQuillan - jam@Ltsp.org
Novos recursos
Instalação
Configuração
Aplicações locais
Código fonte
LTSP Build Environment (LBE)
Verifique a errata para as últimas informações.
A configuração RUNLEVEL não é mais usada no lts.conf. Ela foi substituída por configurações SCREEN_xx, conforme descrito abaixo na seção Scripts de tela.
Nós mudamos drasticamente a maneira que o LTSP é instalado. Isto é, nós separamos a "instalação" da árvore LTSP da "configuração" de serviços no servidor.
Isso vai tornar mais fácil de instalar o LTSP em qualquer versão de uma distribuição. A instalação atual é feita apenas por descompactar a árvore no lugar certo. Ou através de um tarball (.tar.gz), pacotes DEB ou RPM, ou qualquer outra coisa.
A "configuração" pode ser feita ou manualmente, ou por uma nova ferramenta chamada ltspcfg.
Esse novo utilitário tem a lógica construída em entender como habilitar serviços variados, tais como DHCP, TFTP, NFS e XDMCP no servidor. E se ele não puder entender como habilitar o serviço, ele vai dizer pra você, de modo que você pode fazer isso manualmente.
Se foram os dias de ver a mensagem "Sorry This distro is not supported by LTSP".
O getltspcfg não está terminado ainda, mas está muito perto.
Com as versões anteriores do LTSP, o tipo de sessão que ia aparecer na estação de trabalho era ditada pelo parâmetro RUNLEVEL no arquivo lts.conf. Um runlevel 5 iria levantar a interface gráfica, um runlevel 4 iria abrir uma sessão de telnet, e um runlevel 3 era para o modo de diagnósticos (prompt shell).
Agora o tipo de sessão pode ser selecionado para cada terminal (tty), isto é, você poderia ter 6 sessões de telnet do vt1 ao vt6. Ou você poderia ter umas duas sessões de telnet e uma sessão gráfica (X Window). Ou, com futuros plug-ins, você poderia ter coisas como sessões de Rdesktop locais (sim, no plural) ou sessões SSH ou desktops X locais. Tudo isso é controlado pelos novos parâmetros no arquivo lts.conf.
Aqui está um exemplo:
SCREEN_01 = telnet 192.168.254.254
SCREEN_02 = startx
Uma ótima coisa sobre os scripts de tela é que é fácil criar novos
scripts sem mexer em nada do código do LTSP. Basta jogar eles no
diretório /opt/ltsp/i386/etc/screen.d e já estão
disponíveis para o arquivo lts.conf.
Aqui está uma lista dos scripts de tela atualmente disponíveis:
Isso vai levantar o X Window na tela (equivalente ao "RUNLEVEL = 5" no LTSP-3)
Roda uma sessão telnet baseada em caracter para o servidor (equivalente ao "RUNLEVEL = 4" no LTSP-3)
Roda um shell no terminal. Isso é feito para o modo de diagnósticos apenas (equivalente ao "RUNLEVEL = 3" no LTSP-3)
Isso vai levantar uma sessão X Window com o rdesktop como a única aplicação. A idéia é que você rode o rdesktop em tela cheia, conectando diretamente a um servidor Windows, sem ter que logar no Windows primeiro.
Mais scripts de tela podem ser escritos para fazer quase qualquer
coisa na estação de trabalho. Dê uma olhada nos scripts existentes no
diretório /opt/ltsp/i386/etc/screen.d para exemplos de
como escrever um script.
getltspcfg é o programa que lê o arquivo lts.conf. Ele foi re-escrito usando bison e flex. Isso torna a leitura mais rápida, e nos dá grande flexibilidade na sintaxe. Nós temos agora uma palavra chave 'LIKE' que vai permitir às seções herdar configurações de outras seções.
Aqui está um exemplo onde você tem vários PCs HP Vectras e vários Dell Dimensions:
[Vectra]
X_MOUSE_DEVICE = /dev/ttyS0
X_MOUSE_PROTOCOL = Microsoft
[Dimension]
X_MOUSE_DEVICE = /dev/psaux
X_MOUSE_PROTOCOL = IMPS/2
[ws001] LIKE = Vectra
[ws002] LIKE = Vectra
[ws003] LIKE = Vectra
[ws004] LIKE = Dimension
[ws005]
LIKE = Dimension
PRINTER_0_DEVICE = /dev/ttyS1
PRINTER_0_TYPE = S
[ws006] LIKE = Dimension
Note que "ws005" herda as configurações de "Dimension", mas também inclui uma impressora local.
Esse é um serviço que roda na estação. Um processo no servidor pode consultar esse serviço e perguntar a ele por informações sobre a estação. Isso é útil para coisas como som. O script profile no servidor pode consultar a estação para ver se o som está habilitado e qual serviço de som está sendo usado.
As aplicações locais foram incrivelmente aperfeiçoadas. Nós usamos agora ssh para levantar as aplicações na estação. ssh é absolutamente mais seguro que rsh, mas a principal razão de termos escolhido ssh é que ele era mais fácil de usar. Veja Informações sobre aplicações locais abaixo para maiores informações.
O código fonte é disponível agora para todo o LTSP.
Um ambiente completo de compilação, que permite a construção fácil de aplicações locais.
O procedimento de instalação do LTSP foi incrivelmente simplificado. Se você alguma vez já instalou o Ximian Desktop 2, você vai se sentir em casa com o novo instalador do LTSP-4.
Passo 1:
Primeiro de tudo você precisa o super-usuário na máquina. Então, um simples comando wget vai buscar o instalador do LTSP e iniciar o processo de instalação.
su -
wget -q -O - http://www.ltsp.org/ltsp_installer | shPasso 2:
Uma vez que o instalador terminou, você vai precisar configurar vários serviços no seu servidor. Nós criamos um novo utilitário chamado ltspcfg, descrito abaixo, para ajudá-lo com o processo de configuração.
No futuro nos planejamos oferecer pacotes DEB e RPM.
Passo 3:
Não há ainda um kernel específico para o LTSP-4. Os kernels para LTSP-3 vão trabalhar muito bem com LTSP-4. Você pode usar a versão RPM do pacote do kernel, mas você vai precisar forçar a instalação, porque ela depende do pacote ltsp_core do LTSP-3. Uma maneira mais simples é provavelmente instalar o pacote TGZ ltsp_kernel.
Com LTSP-4 nós separamos a instalação da configuração. Nós agora provemos uma ferramenta de configuração chamada ltspcfg.
Você pode baixar ou um pacote RPM ou um pacote tarball contendo a ferramenta ltspcfg.
ltspcfg vai ajudar você a configurar os serviços necessários para rodar as estações LTSP.
Notas de instalação para o ltspcfg:
- Instalação do RPM:
rpm -ivh ltspcfg-0.3-0.i386.rpm- Instalação do tarball:
tar xvzf ltspcfg-0.3.tgz ./install.sh
Em alguns casos é um desperdício ter uma CPU poderosa e bastante memória numa estação de trabalho e estar usando ela apenas para o rodar o kernel do Linux e o servidor X. Então, com LTSP, você tem a opção de rodar algumas aplicações localmente.
Nós levantamos a aplicação usando SSH.
Para tornar o ssh muito seguro, nós teríamos que gravar as chaves privadas da estações num dispositivo de armazenamento local, como um disquete, flash disk ou HD. Nós ainda não fomos tão longe assim com isso. A chave privada é gravada no servidor e acessada via NFS. NÓS SABEMOS que isso é um problema de segurança. Nosso primeiro objetivo com ssh era tornar possível levantar aplicações na estação. Nós estamos trabalhamos em tornar isso o mais possível.
Um par de chaves pública / privada é compartilhado entre todas as estações, e elas precisam ser criadas com o comando ssh-keygen e gravadas no diretório
/opt/ltsp/i386/etc/ssh. A chave pública também precisa estar copiada no arquivo/etc/ssh/ssh_known_hosts. Na verdade, a mesma chave precisa existir nesse arquivo várias vezes, uma vez para cada estação, com o nome da estação precedendo cada registro. Uma vez que isso foi ajustado, se você quiser evitar que o usuário tenha que entrar com a senha cada vez que ele precisar abrir uma aplicação local, você vai precisar colocar as chaves públicas dos usuários nos seus próprios arquivos authorized_keys.Para gerar o par de chaves para as estações, rode os seguintes comandos:
ssh-keygen -q -t rsa1 -f /opt/ltsp/i386/etc/ssh/ssh_host_key -C '' -N '' ssh-keygen -q -t rsa -f /opt/ltsp/i386/etc/ssh/ssh_host_rsa_key -C '' -N '' ssh-keygen -q -t dsa -f /opt/ltsp/i386/etc/ssh/ssh_host_dsa_key -C '' -N ''Você vai precisar tirar os conteúdos do arquivo
/opt/ltsp/i386/etc/ssh/ssh_host_rsa_key.pube adicionar uma linha no arquivo/etc/ssh/ssh_known_hostspara cada estação. Assegure-se que você colocou o nome da estação na frente de cada registro.Abaixo está um exemplo de como o arquivo
/etc/ssh/ssh_known_hostsdeve se parecer:ws001 ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAIEAxFCM2eZU7P3HvEOMYhAFUiwE... ws002 ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAIEAxFCM2eZU7P3HvEOMYhAFUiwE... ws003 ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAIEAxFCM2eZU7P3HvEOMYhAFUiwE... ws004 ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAIEAxFCM2eZU7P3HvEOMYhAFUiwE... ws005 ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAIEAxFCM2eZU7P3HvEOMYhAFUiwE...Uma vez que o ssh está certo e o NIS está configurado no servidor, as seguintes configurações precisam ser adicionadas no arquivo lts.conf:
LOCAL_APPS = Y NIS_DOMAIN = ltspTendo essas configurações adicionadas e a estação reiniciada, o usuário pode levantar programas na estação. Claro, a aplicação e todas as suas bibliotecas (libs) precisam estar acessíveis para a estação via NFS.
Aqui está um exemplo de como rodar um programa no cliente:
ssh ws001 uptimeEu tive sucesso ao levantar o Mozilla Firebird 0.7 como uma aplicação local. Eu não criei o pacote oficial. Isso foi mais um teste, simplesmente para ver se eu podia fazer. E funciona!!! Ele requer a cópia de um monte de bibliotecas no diretório
/opt/ltsp/i386/usr/lib, e a cópia do diretório do Mozilla Firebird para/opt/ltsp/i386/usr/local/MozillaFirebird-0.7. Uma vez isso feito, levantar o Firebird na estação é feito mais ou menos assim:ssh ws001 env DISPLAY=:0.0 /usr/local/MozillaFirebird-0.7/MozillaFirebirdUma das principais razões para criar o LTSP-4 como o "Build envinronment" é que nós podemos construir aplicações locais. Nós planejamos oferecer um pacote oficial incluindo o Mozilla inteiro e todas as bibliotecas necessárias.
O LTSP-4 é construído inteiramente do código fonte. Isso não significa que você DEVE compilar ele. Nós temos pacotes binários disponíveis também. É só que você PODE compilar ele, e customizar tudo o que você quiser.
Para ter contato com o código fonte, dê uma olhada na informação abaixo de como acessar o código via CVS.
Provavelmente o maior recurso do LTSP-4 é o fato de ele ser inteiramente construído a partir do código fonte. Nas versões anteriores nós pegávamos binários de outras distribuições (principalmente RedHat 7).
Quando estávamos no processo de organizar o código fonte para todas os pedaços do LTSP, nós achamos que era quase impossível de fechar todas as versões de ferramentas de desenvolvimento em todas as plataformas onde as pessoas gostariam construir o LTSP. Por exemplo, para compilar a glibc 2.2, você precisa do gcc 3.2 ou mais novo pra fazer isso, e muitas distribuições de Linux existentes ainda não incluem ele. Então, nós viemos com algo que nós chamamos de LBE.
O LBE contém todos os compiladores, linkers e quaisquer outros utilitários que são usados para compilar o LTSP. Na realidade são exatamente as mesmas ferramentas e versões que nós usamos para construir os releases oficiais do LTSP.
Houve uma incrível quantidade de trabalho feito no LBE desde o LTSP-3. O processo inteiro de construção foi refeito e o método de obter os tarballs do fonte mudou.
Novo com o LTSP-4 é o esquema de cross-compilador. Nós achamos que nós precisávamos construir um cross-compilador, para forçar as ferramentas no LBE a usar as bibliotecas e os arquivos de include corretos. Nós ficamos muito irritados tentando entender por que o LBE compilava em algumas distros e em outras não. Então nós entendemos que cada distribuição tinha diferentes versões dos arquivos cabeçalho, e isso causava alguns problemas. Então nós temos um cross-compilador agora. Mesmo estando em um sistema x86 e gerando código x86, uma coisa brilhante é que isso nos deixa mais perto dum ambiente de construção onde nós podemos gerar código para clientes não x86. Mas, isso é uma coisa futura. Nós ainda não estamos prontos para manusear isso. Tendo um cross-compilador, isso também deve eliminar a necessidade de ter versões específicas de gcc e binutils no seu sistema.
Há uma árvore central bem pequena que é usada para iniciar o processo de construção. Os tarballs do fonte para os componentes individuais do LBE e LTSP não estão mais gravados dentro do pacote core. Eles são baixados automaticamente, usando o wget, no início do processo de construção.
Ainda mais, os componentes que são comuns entre o LBE e o LTSP compartilham o mesmo tarball, ao invés de incluir uma cópia do código duas vezes. Um exemplo seria o bash, o shell usado para ambos LBE e LTSP-4.
Uma ferramenta de construção muito poderosa foi escrita para o LBE e o LTSP. Essa ferramenta lê uma lista de pacotes para serem construídos, e então para cada pacote ela lê o arquivo
package.defpara instruções sobre como fazer a compilação.Construindo o LTSP-4 do código fonte
- Baixando do CVS
Escolha um diretório e vá para ele. Eu uso o diretório
/usr/local/projects, mas você pode usar qualquer diretório que você prefira.Pegue o pacote LBE via cvs usando o seguinte comando:
cvs -d :pserver:anonymous@cvs.ltsp.org:/usr/local/cvsroot checkout lbeIsso vai criar um subdiretório chamado lbe que contém o seguinte:
lbe build_all crosscomp-src initrd-src kernel-src lbe-src ltsp-src README TODO- Construindo
./build_allEsse processo vai construir os cross-compiladores, o LBE, o LTSP, o initrd e o kernel do LTSP.
Esteja preparado para aguardar um tempo. Num Pentium 4 2,5 GHz, isso leva mais ou menos umas 3 horas.