| Mandriva Terminal Server |
|
|
|
| Por Ethra'Za | |||||||||||||||
| 23 de abril de 2006 | |||||||||||||||
|
Este tutorial foi escrito por Allan Brazute Alves (AKA Ethra'Za) e disponibilizado no site MandrivaBrasil.org.
O Terminal Server (serviço de terminal), doravante TS, a grosso modo é uma maneira de transformar seus PCs mais idosos em algo parecido com terminais burros. Um terminal burro nada mais é do que uma console texto (tty) do Linux em um monitor e teclado na mesma rede física do servidor Linux. Da mesma maneira o PC cliente do TS deverá estar na mesma rede física do servidor Linux, só que para mostrar em seu monitor uma seção gráfica do Linux.
- O Mandriva Terminal Server é igual ao LTSP (Linux Terminal Server Project) ?
Em sua funcionalidade sim, pois ambos têm o propósito de servir a thin-clients gráficos. Porém eles tem uma diferença vital, que pode fazer você optar por um ou por outro na hora de escolher o que servirá melhor em sua rede. O LTSP é um linux inteiro à parte do Linux que está rodando em seu servidor. O LTSP fica em um diretório no seu servidor e todos os seus arquivos de configuração e de sistema; tudo está dentro deste diretório e não influencia em nada nem é influenciado em nada pelos arquivos do Linux que está rodando em seu servidor. O LTSP também tem um arquivo principal de configuração onde você poderá configurar os detalhes de hardware e configuração de cada estação. O Mandriva Terminal Server é na verdade um conjunto de configurações no Linux que está rodando no seu servidor para compartilhá-lo com os clientes. Logo todos os arquivos de configurações dos clientes são baseados nos arquivos do Linux rodando em seu servidor e apesar de não serem exatamente os mesmos, como veremos mais para frente, estão todos juntos e mudanças nos arquivos do Linux rodando no servidor podem influenciar os arquivos dos clientes. De fato o Mandriva nos clientes é o mesmo do servidor, logo quando você atualizar o OpenOffice do seu servidor, por exemplo, essa mudança é imediata para os clientes, ao contrário do que acontece com o LTSP que é uma estrutura separado do Linux do servidor. E qual é melhor afinal? Isso depende só de você. No caso do LTSP, se algo acontece ao Linux do LTSP e ele para de funcionar adequadamente, por exemplo, isso nada influencia no Linux do servidor e vice-versa. No Mandriva TS, se algo acontece ao linux do servidor, estará acontecendo ao Linux dos clientes também, pois na verdade são o mesmo linux. Até onde eu entendo, o Mandriva TS é bem mais fácil para se manter atualizado e se administrar por ser o Linux que está rodando no servidor. Já li na Internet sobre um cara que fez um cluster de máquinas utilizando o mesmo princípio do Mandriva TS, onde o servidor seria o node primário do cluster e serviria o Linux e as configurações aos nodes secundários. Isso torna a manutenção bem prática; você muda algo no servidor e isso se reflete nos clientes em tempo de execução.
- Qual a configuração mínima para o TS?
A configuração mínima para um pc cliente do TS seria algo em torno de um 486 com 16MB de memória RAM; menos que isso até funciona mas você já começaria a sentir uma certa lentidão na atualização da tela. A placa de vídeo tem que ser PCI ou AGP, com no mínimo 1MB de memória para funcionar satisfatoriamente a 800x600 com 16 bits de cor, sendo que é necessário no mínimo 2MB de memória para conseguir-se uma resolução de 1024x768 com 16 bits de cor. A placa de rede tem que ser PCI também e, principalmente, tem que ser de 100 Mb/s, assim como a rede. Placas ISAs não vão funcionar, talvez com raras exceções. Mas como o Mandriva Linux vem com seus pacotes compilados para arquitetura i586, não daria para usar o Mandriva TS com 486, apenas com AMD 586 e Intel Pentium ou superiores. No lado do servidor é meio difícil dizer porque depende de quantos clientes ele vai ter e o que eles vão rodar. Eu tenho atualmente duas configurações de Mandriva TS rodando e darei elas de exemplo. Cenário 1: Cenário 2:
Depois de ter configurado as mídias de internet do URPMI ou Smart e atualizado seu sistema, vá no instalador de pacotes do Mandriva (fig.1) e instale o pacote do drakTermServ (terminal-server) e todas as suas dependências. Ele instalará com ele alguns outros pacotes de serviços como o servidor DHCP, ClusterNFS, TFTP, entre outros. Neste mesmo ponto eu aconselho a instalar o kernel da mesma versão do que estará rodando neste servidor, porém o com o nome kernel-i586-up-1GB-2.6.XX.XXmdk, onde XX.XX é a versão atual. Este kernel vai funcionar em qualquer PC, já o kernel padrão, com o nome mais curto, pode simplesmente travar em alguns PCs mais antigos por falta de algum driver de IDE.
![]() fig. 1 figura 1
Os pacotes principais são terminal-server e terminal-server-localdevices. Depois de tudo instalado, você vai encontrar o ícone do drakTermServ no Menu ou você pode abrir um terminal e, como root, executar o comando drakTermServ, com o T e S maiúsculos mesmo. Então será apresentada a tela de Configuração do Mandriva Terminal Server (fig.2). (Obs. Na barra está escrito Mandrakelinux Terminal Server porque eu tirei os screenshots de um Mandriva 2005, que estava mais fácil na hora de escrever este tutorial. Mas além disso, nada mudou para o Mandriva 2006)
![]() fig. 2 figura 2
É, eu sei, é meio vazia mesmo, mas é só clicar no Assistente de Primeira Viagem que você estará quase pronto para ter seus terminais funcionando em sua rede. Quando clicar no Assistente, veremos essa seqüência:
![]() fig. 3 figura 3
![]() fig. 4 figura 4
![]() fig. 5 figura 5
Você pode mudar o IP de Roteadores (Proxy) e do Servidor de nomes (DNS) se você tem outro(s) servidor(es) na rede executando essas tarefas. Fique à vontade para restringir a faixa de IP dinâmico para o que você preferir, sendo que o IP do Início tem que ser menor do que o IP do Fim e seus clientes terão que ser configurados dentro dessa faixa de IPs. Então clique em Escrever a configuração para que o arquivo do DHCPD seja salvo e clique em Próximo.
![]() fig. 6 figura 6
figura 7 6. Mais uma janela de informação de serviços iniciados. Clique em Próximo. 7. Mais uma janela de informação de sincronização dos usuários do servidor (explico isso depois). Clique em Próximo.
![]() fig. 8 figura 8 Por exemplo, se o primeiro disquete que você irá gerar será para um cliente que tem uma RealTek 8139 de placa de rede, escolha o drive 8139too e clique em Disco de Inicialização. Ele então pedirá para você inserir o disquete vazio e clicar Ok (se você optar por Disquete de Boot ou ISO de CD de Boot, existe um projeto muito bom para substituir este passo, que eu comentarei mais pra frente). Terminado de gerar os arquivos ou disquetes, clique em Próximo. 9. Ele precisa agora reiniciar o servidor X para que os clientes tenham acesso ao servidor. Clique em Ok para reiniciar já ou Cancelar se você preferir reiniciar o X depois. Pronto! Depois de reiniciado o X, você já pode iniciar um cliente na rede que ele irá funcionar sem HD e lhe exibir uma tela de login do seu servidor.
Servidor Ativar o Servidor: Refaz as configurações nos arquivos (= ao passo 5 do assistente) Inicia o Servidor: Ativa os serviços referentes ao TS (= ao passo 6 do assistente)
Imagens
figura 9
Disco de Inicialização: Gera o disquete de boot com driver da placa de rede selecionado (.zimg) para os PCs clientes do TS. Imagens de Inicialização na Rede
figura 10
Construir todo o kernel ->: Gera os arquivos nbi para todos os drivers de rede do kernel selecionado.
Clientes/Usuários Adicionar/Remover Usuários
figura 11
Adiciona Usuário ->: Adiciona usuário e senha do sistema selecionado na direita, para o arquivo de usuário e senha do TS na direita. O !!! na frente de usuários à direita, significa que foram modificados no Linux mas não no TS. Para atualizar, remova o usuário do TS e adicione novamente. Explicarei onde essa informação fica gravada e como é usada mais pra frente. Adicionar/Remover Cliente
figura 12
Client Name: Nome do cliente. Tem de ser único e não pode ter espaço ou caracteres não imprimíveis.
A Configuração do Mandriva Terminal Server dá a opção de thin ou fat client, mas na prática essa opção não esta funcionando. A diferença entre o thin e o fat seria que o thin executa no cliente apenas um mini-linux suficiente para rodar um X apontando para uma seção do X do servidor e mostrar na tela o seção gráfica do servidor e tudo que for executado nessa seção; na verdade é o servidor que está trabalhando e o cliente apenas visualizando a seção. No fat, o cliente ainda executa o mesmo mini-linux, mas quando o X é iniciado o cliente arca com a responsabilidade de executá-lo e tudo que rodar dentro dele, ou seja, não é uma visualização de uma seção do servidor e sim um X rodando no cliente e todo programa que for executado será lido no HD do servidor, mas executado no cliente usando sua memória, seu processador e , obviamente, seu X em execução. Atualmente a única diferença que essa opção traz para os clientes é que, quando selecionado fat, os arquivos passwd e shadow utilizados são os do próprio servidor Linux e, quando thin é selecionado, o cliente usa seu próprio passwd e shadow estocado no /etc do servidor, como por exemplo, passwd$$IP=192.168.0.2$$ e shadow$$IP=192.168.0.2$$. Explicarei melhor essa denominação de arquivos mais pra frente. Pronto, com isso você já é capaz de ter seu servidor e seus clientes funcionando e a maioria das pessoas só precisa saber disso mesmo pois talvez nunca sintam necessidade de ir além dessas configurações oferecidas pelo drakTermServ.
Caso você prefira, também pode gerar os discos de boot através do site rom-o-matic.net. O bom deste site é que ele te dá a opção de gerar outros tipos de arquivos com o driver da placa de rede e também mantém uma lista com os nomes das placas e seus respectivos drivers caso você não saiba qual driver utilizar para uma certa placa. Ele também dá a magnífica opção de customizar o ROM que será gerado para você com uma infinidade de opções. Você também encontra no site do Projeto Etherboot, um banco de dados com os chips que o projeto suporta. Esse disco de boot gerado pelo Mandriva TS ou o rom-o-matic é bom mas você precisa gerar um disco especifico para cada máquina pois ele só tem o driver da placa de rede que você selecionou. Pela praticidade, eu prefiro usar um outro projeto chamado 'All-drivers Etherboot floppy', que é uma imagem para um disquete com todos os drivers embutidos, que auto-detecta a placa de rede do computador e inicia o boot com o driver correspondente. No menu que esse disquete exibe no boot também é possível configurar o disquete para não detectar mais a placa e entrar direto no boot chamando um driver específico e/ou instalar este sistema para um HD na máquina, como descrito no site do autor Alexander Heinz.
No LTSP, como já havia mencionado, as configurações dos clientes ficam todas num arquivo próprio de configuração do LTSP. No Mandriva TS os arquivos de configuração dos clientes ficam junto com os arquivos de configuração do Linux rodando no servidor, mas com um nome diferenciado. Esses arquivos têm permissão de serem gravados pelo cliente se você tiver escolhido Permitir configuração local. A Configuração do Mandriva TS cria e configura 6 arquivos para o cliente. Este é um exemplo do arquivo exports configurado para o Cliente02 do exemplo na fig.12 acima, compartilhando os arquivos no servidor através do serviço ClusterNFS: / 192.168.0.0/255.255.255.0(ro,no_root_squash) Na primeira linha, vemos o / (o disco inteiro) do servidor sendo compartilhado para 192.168.0.0 (o final .0 significa a rede inteira, ou seja 192.168.0.*) com permissões ro (somente leitura) e no_root_squash (o usuário root no cliente será tratado como root mesmo quando acessar arquivos do servidor). Na segunda linha, o /home do servidor é compartilhado para todos os cliente também, mas com permissões rw (leitura e escrita) e root_squash (o usuário root no cliente será tratado como usuário nobody quando acessar arquivos nesse compartilhamento do servidor). A partir da terceira linha até a nona são compartilhamentos específicos para o Cliente02, como é possível notar no próprio nome do arquivo e no IP que terá acesso a estes compartilhamentos. Para saber mais sobre o arquivo de configuração exports do servidor ClusterNFS, digite man exports no prompt de um terminal para abrir o manual. Aqui espero que tenha ficado clara a diferença entre o LTSP e o Mandriva TS. Quando um cliente do Mandriva TS executar o Firefox, ele estará executando o Firefox instalado no Linux do servidor pois ele estará buscando essa informação na partição / do servidor. Para o linux rodando nos clientes, o / deles é realmente o / do servidor e, por exemplo, o arquivo /etc/X11/xorg.conf deles é substituído em tempo de execução pelo arquivo com o IP do cliente no nome. Estes arquivos com nomes como por exemplo xorg.conf$$IP=192.168.0.2$$, estão no exports para que o cliente tenha acesso de gravação neles. Outros arquivos, como por exemplo o inittab$$IP=192.168.0.2$$ que fica no /etc, existem mas não estão no exports porque o cliente não precisa alterá-los, apenas lê-los. Existem ainda outros arquivos com o nome diferenciado de outra maneira, como por exemplo o fstab$$CLIENT$$ e o xorg.conf$$CLIENT$$. Se você olhar no diretório /etc/X11 do seu servidor vai ver todos esses arquivos, o xorg.conf, o xorg.conf$$CLIENT$$ e o xorg.conf$$IP=192.168.0.2$$. O xorg.conf é o arquivo de configuração do X do Linux do próprio servidor, o xorg.conf$$CLIENT$$ é o arquivo base que será usado para criar os arquivos dos clientes como o xorg.conf$$IP=192.168.0.2$$ que é a configuração do cliente com IP 192.168.0.2, no nosso caso o Cliente02. Se você procurar no seu servidor, vai encontrar vários outros arquivos com esses nomes e nada impede que você crie outros que não são padrão do Mandriva TS. Quem define e controla essa funcionalidade de nomes diferenciados nos arquivos é o ClusterNFS, que trabalha da seguinte forma: Quando o linux de um cliente acessa o compartilhamento do servidor requisitando um arquivo, por exemplo o xorg.conf, o ClusterNFS primeiro olha se existe um arquivo específico para este cliente para mostrá-lo como se fosse o xorg.conf. Se não existir, ele mostra o xorg.conf do servidor mesmo, como descrito abaixo. Quando um cliente requisita um arquivo "/caminho/nome_do_arquivo", o servidor ClusterNFS checa pelos seguintes arquivos, retornando o primeiro encontrado:
Se um arquivo é encontrado mas a autorização é negada, ele NÃO é considerado encontrado e a próxima entrada na lista será tentada. Isso serve para arquivos e diretórios pois lembre-se que um diretório para o linux não passa de um arquivo também. Um exemplo é o /etc/rc.d/rc5.d$$CLIENT$$. Com isso espero que você tenha percebido que qualquer arquivo que você criar com uma dessas definições será lido pelo cliente como se fosse o arquivo original. Um bom exemplo seria criar o arquivo /etc/cups/printers.conf$$IP=192.168.0.2$$ e o link /etc/rc.d/rc5.d$$CLIENT$$/cupsd$$IP=192.168.0.2$$ apontando para ../init.d/cupd. Assim o servidor cups será executado pelo Cliente02 e sua impressora, devidamente configurada no arquivo printes.conf, será disponibilizada na rede. obs. Não lembro se outros arquivos precisam ser configurados ou precisam ter acesso de escrita para o servidor cupsd funcionar. Se você quiser que o cliente tenha acesso de leitura à um arquivo, adicione a entrada para este arquivo no arquivo de configuração exports com a permissão rw. Seguindo o exemplo dos outros que já estarão configurados. Para saber mais, digite man cupsd em um terminal para visualizar o manual.
Agora que você já tem o serviço de terminal do Mandriva Linux configurado e funcionando e o disquete ou pxe pronto, vou descrever os passos para fazer as configurações finas de um cliente. Ligue o PC cliente, e espere o boot enroscar dizendo que não há um IP livre para ele, claro que isso só acontecerá se você ainda não configurou o cliente no drakTermServ. Neste momento você verá na tela, entre algumas outras informações o endereço MAC da placa de rede deste PC. Neste mesmo momento essa informação também aparecerá no arquivo de log do serviço DHCPD do servidor Linux, geralmente /var/log/messages. Isso torna fácil a configuração remota de novos clientes, bastando que alguém ligue-os na rede. Configurado o cliente no servidor, basta reiniciar o cliente para ele carregar o Mandriva Linux através da rede. Caso o X funcione, mas você só queira mudar a resolução, basta pressionar Ctrl+Alt+F1 no cliente para ir ao modo texto. Estando no modo texto no cliente, entre com o usuário root. No prompt execute o comando drakxconf e no menu escolha Display; isso carregará o configurador do X. O configurador do X em modo texto é igual ao do modo gráfico. Basta você escolher o driver da placa de vídeo, a resolução, o monitor e salvar o arquivo. No caso de clientes de terminal não tente testar a configuração porque isso fará o configurador fechar sem gravar as opções. Então, ao invés disso, selecione sair, salve as configurações e então execute service dm restart e veja se suas opções funcionaram bem. Vale lembrar aqui que não sei porque o KDE e o KDM, não funcionam em 8 bits de cor no esquema de terminal. Se você alterou o inittab do cliente, não se esqueça de voltar a opção para 5. Assim ele entrará direto no modo gráfico no próximo boot. Caso o mouse não funcione no gráfico, pode ser que ele esteja ligado na COM2 e não na COM1, como vem configurado. Neste caso, se o mouse do cliente for serial, edite o arquivo xorg.conf do cliente, procure a linha Option "Device" "/dev/ttyS0" e mude para Option "Device" "/dev/ttyS1", que indica a COM2 para o mouse. (No Linux ttyS0 = COM1 e ttyS1 = COM2) obs. Na minha experiência, algumas placas de vídeo Trident, as mais antigas, funcionam melhor com o driver VESA do que com o driver Trident. Mesmo outros chips, se forem muito antigos, provavelmente o VESA irá funcionar melhor. obs2. Não se esqueça de que, quando estiver mexendo no cliente, o que aparecer na console (ctrl+alt+f1) é o linux do cliente rodando. Então o /dev deste linux mostrará os periféricos do hardware do PC cliente. Já no gráfico (ctrl+alt+f7), ele estará mostrando uma instancia do servidor Linux, neste caso, o /dev mostrará os periféricos do hardware do servidor. Não vá se confundir e misturar as coisas hein. :-) obs3. Quando estiver na console do cliente editando arquivos, por exemplo, para editar o arquivo xorg.conf, basta editar /etc/X11/xorg.conf. Quando estiver na console do servidor (que pode ser o gráfico no cliente), para editar o xorg.conf do Cliente02, por exemplo, você tem que editar /etc/X11/xorg.conf\$\$IP\=192.168.0.2\$\$. Não vá se confundir e editar os arquivos do servidor Linux hein. :-)
O Mandriva TS usa, como você deve ter notado vários serviços e os principais são: DHCPD: Para os clientes ganharem um ip pré-determinado e entrar na rede. Os arquivos de configuração dele são:
ClusterNFS: Para o sistema de arquivo do servidor com os clientes. O arquivo de configuração é: tftp: É executado pelo xinetd. É acessado pelo boot do cliente para transmitir o arquivo de boot do Linux. Aquele selecionado na tela da fig.12. obs. Se o cliente não encontrar o arquivo de boot ou não conseguir montar a partição /, mensagens mais detalhadas do problema serão gravadas no arquivo /var/log/messages do servidor. E um grande número de problemas acontece porque as portas do servidor podem estar fechadas para a rede interna no firewall, preste a devida atenção às configurações do shorewall (/etc/shorewall/).
Mandriva Terminal Server: http://qa.mandriva.com/twiki/bin/view/Main/TerminalServer DHCPD: http://www.isc.org/ ClusterNFS: http://clusternfs.sourceforge.net/ Etherboot: http://www.etherboot.org/ Rom-o-matic: http://www.rom-o-matic.net/ All-drivers Etherboot floppy: http://etherboot.anadex.de/ Easy URPMI: http://easyurpmi.zarb.org/ LTSP: http://www.ltsp.org/ DrakTools: http://twiki.mdklinuxfaq.org/index.php/SysAdmin/DrakTools Mestre do universo: http://www.google.com.br/linux
|
|||||||||||||||
| Última Atualização ( 30 de janeiro de 2008 ) | |||||||||||||||
| < Anterior | Próximo > |
|---|



















