Diskless: mudanças entre as edições
Linha 489: | Linha 489: | ||
'''sudo /usr/lib/yp/ypinit -m''' | '''sudo /usr/lib/yp/ypinit -m''' | ||
Vai aparecer o nome do servidor '''bobmarley''' e as seguintes linhas, verifique o nome do servidor está correto e tecle '''CTRL+D''' e veja se o resultado é o mesmo que segue abaixo, seguido de '''UPDATING''' | |||
bobmarley@bobmarley:/export/tftpboot/boot$ sudo /usr/lib/yp/ypinit -m | |||
At this point, we have to construct a list of the hosts which will run NIS | |||
servers. bobmarley is in the list of NIS server hosts. Please continue to add | |||
the names for the other hosts, one per line. When you are done with the | |||
list, type a <control D>. | |||
next host to add: bobmarley | |||
next host to add: | |||
The current list of NIS servers looks like this: | |||
bobmarley | |||
Is this correct? [y/n: y] y | |||
We need a few minutes to build the databases... | |||
Building /var/yp/rock/ypservers... | |||
Running /var/yp/Makefile... | |||
make[1]: Entrando no diretório `/var/yp/rock' | |||
Updating passwd.byname... | |||
Updating passwd.byuid... | |||
Updating group.byname... | |||
Updating group.bygid... | |||
Updating hosts.byname... | |||
Updating hosts.byaddr... | |||
Updating rpc.byname... | |||
Updating rpc.bynumber... | |||
Updating services.byname... | |||
Updating services.byservicename... | |||
Updating netid.byname... | |||
Updating protocols.bynumber... | |||
Updating protocols.byname... | |||
Updating netgroup... | |||
Updating netgroup.byhost... | |||
Updating netgroup.byuser... | |||
Updating shadow.byname... | |||
make[1]: Saindo do diretório `/var/yp/rock' | |||
bobmarley has been set up as a NIS master server. | |||
Now you can run ypinit -s bobmarley on all slave server. | |||
=========== LIXO | |||
Digite o nome do servidor que escolhemos na instalação do NIS: '''servidor''' e para sai.<br> | |||
Em seguida deve aparecer varias linhas contendo a palavra Updating... , fora isso ouve algum erro. | Em seguida deve aparecer varias linhas contendo a palavra Updating... , fora isso ouve algum erro. | ||
At this point, we have to construct a list of the hosts which will run NIS | At this point, we have to construct a list of the hosts which will run NIS | ||
servers. diskless-laptop is in the list of NIS server hosts. Please continue to add | servers. diskless-laptop is in the list of NIS server hosts. Please continue to add |
Edição das 16h41min de 18 de setembro de 2009
O que é Diskless?
É um conjunto de serviços, instalados em um servidor, que fornecem todos os arquivos necessários para a montagem de um sistema operacional transparente - cliente -, via rede, como se fosse local.
Seu conceito de uso está baseado na idéia de rede centralizada formada por Fat Clients ou Terminais Inteligentes, na qual cada computador-cliente é dependente de um servidor. Diferentemente do modelo Thin Client (Terminais Inteligentes), este modelo utiliza o processamento e os recursos que o computador-cliente oferece. Na prática isso significa que quanto mais recursos de hardware o computador-cliente oferece mais desempenho a estação poderá ter.
Histórico
O intento de criar, dentro de um modelo centralizado, um software ou um conjunto de ferramentas que atendessem, administrativamente, computadores-clientes com mais recursos de hardware foi uma preocupação de muitos programadores durante bastante tempo na história da evolução do computadores pessoais.
Partindo dessa necessidade e desta problemática, a empresa Async Open Source criou a solução Diskless Desktop, uma arquitetura de rede que, como o próprio nome diz, trabalha sem disco rígido e possibilita compartilhamento de arquivos, impressoras, serviço de e-mail, intranet e bases de dados, ficando os dados de seus usuários em servidores protegidos. Esta documentação é fruto da releitura da pequena documentação inicial produzida pela Async Open Source e pela contribuição dos instrutores do Pontão Nós Digitais.
Vantagens e Desvantagens
Vantagens |
---|
|
|
|
|
|
Desvantagens |
|
|
Como funciona?
Tudo começa pela interface/placa de rede ethernet, pois é o ponto de partida para a configuração do computador-cliente. A partir do boot pela placa de rede, a Diskless começa a funcionar. A placa de rede carregará o driver e as informações da rede local passada pelo serviço DHCP e TFTP. Nesse momento já teremos a placa de rede com um ip e o tftp será o responsável pela transferência dos arquivos iniciais do sistema.
Outro serviço importante é o NFS. Ele será o responsável para que o computador-cliente tenha acesso aos arquivos do servidor. Após montado, o sistema está mapeado para executar os próximos serviços e carregar os restante dos arquivos necessários da Diskless.
NIS tem o papel de validação do usuário e senha do computador cliente.
+------------------------------ + +---------------+ | SERVIDOR | | | | | ETHERNET | | | 01 DHCP | <------------------------> | CLIENTE | | 02 TFPT-BOOT | | | | 03 NFS | | | | 04 DISKLESS | +---------------+ | 05 NIS | | 06 OUTROS SERVIÇOS | | 07 OUTROS SERVIÇOS | | 08 OUTROS SERVIÇOS | | 09 OUTROS SERVIÇOS | | 10 OUTROS SERVIÇOS | | 11 OUTROS SERVIÇOS | +------------------------------ +
Tutorial de Instalação
Este tutorial é dividido em duas partes principais: Servidor e Cliente. Em cada uma das partes será tratado o modelo de construção de cada um destes elementos. Aqui está elencado passo-a-passo todo processo de montagem de uma rede baseada no modelo de Terminais Inteligentes - Fat Client.
Antes de começar - Ambiente de comandos
Quando executado o comando sudo chroot /export/diskless/. estaremos simulando um cliente Diskless para algumas operações que só funcionam se o sistema existiver montado. Qualquer comando que for executado depois desse, sudo chroot /export/diskless/. está sendo executado dentro da Diskless, no cliente Diskless, por isso sempre verifique em qual ambiente você está antes de executar qualquer comando.
linha de comando do servidor:
bobmarley@bobmarley:/export$ sudo chroot diskless [sudo] password for bobmarley: <digite a senha>
linha de comando da Diskless: Aqui já estamos simulando o sistema Diskless
root@bobmarley:/#
== Servidor: instalando os serviços principais ==
O servidor dos Terminais Inteligentes será o provedor de acesso de sistema de todos os demais computadores-clientes da rede. Sua configuração e instalação é mais demorada e deve ser feita com zelo e critério, pois este será a base dos demais serviços do qual desfrutarão os computadores-clientes.
Instalando GNU/Linux Ubuntu 8.04
Instale o sistema operacional GNU/Linux Ubuntu 8.04 na máquina que será o servidor de sua rede. Se quiser, siga o modelo de instalação do artigo Instalando Linux Ubuntu 8.04.
- Importante -
Durante a instalação, particione o disco com um ponto de montagem chamado /export. Este ponto de montagem será o local onde ficarão armazenados todos os arquivos de configuração da Diskless.
Suponhamos um HD de 120GB como exemplo, ajuste de acordo com suas necessidades:
49GB / (raiz, /boot /usr /var /tmp outros) 35GB /home (arquivos dos usuários) 35GB /export (arquivos do sistema diskless) 1GB -swap (sistema de memória temporária)
É importante alertar que a tendência do tamanho dos arquivos e das imagens de cada computador-cliente é sempre aumentar, pois temos os updates, softwares, /var e outros que ocuparam mais espaço no futuro, tudo depende da quantidade clientes na rede.
Feito o particionamento, faça a instalação padrão do sistema escolhendo um usuário e senha que terá permissão de root para os próximos passos.
Após iniciar o sistema volte a este ponto e prossiga com as orientações do tutorial.
Abordando - Problemas com /var
No /var não é preciso criar diretório/arquivos, pois tem dois scripts que irão realizar isso.
/var é um diretório do sistema que inclui diversos arquivos do tipo, histórico do sistema, erros, estado atual de cada serviço e outros, gerando um log.
Como a Diskless é uma “imagem” de um sistema operacional, tudo mostra que todos os clientes teriam o mesmo /VAR, com isso, clientes diferentes precisam fazer tarefas diferentes no mesmo arquivo ao mesmo tempo.
Por isso o /var de cada cliente deverá ser montado separado. Não haverá alteração para o cliente, mas no servidor esses arquivos serão guardados em /export/state/nome_cliente/var.
Estrutura de diretórios
Para iniciar a contrução da Diskless, faz-se necessário a criação de alguns diretórios próprios. Crie os diretórios.
Comando para criar a Estrutura de Diretórios do Diskless.
cd /export
sudo mkdir -p hardy state tftpboot/boot tftpboot/pxe
Até o final da documentação, você terá criado esse estrutura de diretórios baixo, NÂO É NECESSÁRIO CRIAR NADA AGORA
/ (raiz) /export/hardy (diskless image) /export/state (Diretorio temporario /var dos clientes) /export/diskless -> hardy (link diskless) /export/tftpboot/boot (sistema de boot) /export/tftpboot/boot/vmlinuz -> ../../diskless/vmlinuz (link para arquivo do sistema) /export/tftpboot/boot/initrd.img -> ../../diskless/initrd.img (link para arquivo do sistema) /export/tftpboot/boot/generic.script (FTPT Boot) /export/tftpboot/pxe (Imagem boot-rom)
Placa rede Cliente
Essa é uma parte bastante importante na Diskless. Partimos do princípio que o cliente não tem sistema algum para iniciar. Para todo cliente deve existir uma placa de rede Ethernet 10/100 ou 10/100/1000 mbit, quanto mais rápida melhor. Temos que descobrir a marca e modelo da placa de rede do cliente para fazer a configuração personalizada no DHCP para cada cliente.
Nessa configuração utilizaremos a imagem GPXE para a placa de rede ethernet se comunicar com o servidor a partir do serviço DHCP. Abordaremos mais na configuração do DHCP. (http://etherboot.org/wiki/start#etherbootgpxe_wiki)
Remover tabela de montagem e fazer um link para outro arquivo
sudo rm /etc/mtab
sudo ln -s /proc/mounts /etc/mtab
Criar link de diretorio hardy para ambiente diskless. Hardy é o nome da versão do Ubuntu que vamos usar e para facilitar a identificação de versão e organização criamos o dirtorio com próprio nome.
cd /export
sudo ln -s hardy diskless
cd /export/diskless
Criar o arquivo sudo nano /export/tftpboot/boot/generic.script com o seguinte conteudo:
#!gpxe kernel tftp://192.168.0.1//export/tftpboot/boot/vmlinuz vga=normal quiet splash initrd tftp://192.168.0.1//export/tftpboot/boot/initrd.img boot
Configurando arquivos de interface de rede
Partimos do princípio que todos os clientes terão acesso a internet, por isso o servidor deve ter duas placas de rede, uma onde chega a internet (rede WAN) e outra que atenderá os clientes da diskless (rede LAN).
Para esse exemplo usaremos a range de IP 192.168.0.0 para a rede LAN, pode ser alterado de acordo com a sua necessidade. O IP da rede WAN normalmente é fornecido pelo provedor quando não existe um IP fixo, utilizaremos um exemplo para diferenciar uma rede da outra.
Encerre a interface de rede:
sudo /etc/init.d/networking stop
Edite o arquivo, sudo nano /etc/network/interfaces
auto lo iface lo inet loopback
# REDE LAN auto eth0 iface eth0 inet static address 192.168.0.1 # ip do servidor netmask 255.255.255.0 # mascara de rede broadcast 192.168.0.255 network 192.168.0.0 # classe da rede geral
# REDE WAN auto eth1 iface eth1 inet dhcp # para ip dinamico. pode variar dependendo da sua conexão.
Ligar interface de rede:
sudo /etc/init.d/networking start
Compartilhando Internet
Lembramos que eth0 é placa de rede LAN, e interface de rede eth1 e para internet/WAN, o nat deve ser feito sempre para a interface de internet/WAN, faça as modificações necessárias se precisar.
Edite o arquivo sudo nano /etc/rc.local e adicione as seguintes linhas:
# LIMPA REGRAS iptables -F iptables -X iptables -Z
# NAT iptables -F -t nat iptables -Z -t nat iptables -X -t nat
# CARREGA MODULOS modprobe iptable_nat modprobe ip_conntrack_ftp modprobe ip_conntrack modprobe ip_nat_ftp
iptables -t nat -A POSTROUTING -o ethX -j MASQUERADE # a ethX deve apontar sua interface Wan/Internet
exit 0
Rodar o script para o compartilhamento de internet ter efeito.
sudo /etc/rc.local
Edite o arquivo sudo nano /etc/sysctl.conf e descomente as linhas que por padrão vem comentada:
# Uncomment the next line to enable packet forwarding for IPv4 net.ipv4.ip_forward=1 # Uncomment the next line to enable packet forwarding for IPv6 net.ipv6.ip_forward=1
Carregar configurações:
sudo sysctl -p
Pode aparecer uma mensagem dizendo que IPv6 não esta "conhecido" "habilitado"...não se preocupar. Rede IPv6 não esta usando.
Atualizando lista de programas
Agora que temos internet, temos que atualizar a lista de pacotes do Ubuntu para fazer instalar o servidores, segue os passos:
sudo apt-get update
aguarde até finalizar a atualização.
Instalando serviços iniciais DHCP e TFTP
1.3.1 - Placa rede Cliente
ROM-o-matic.net dynamically generates gPXE and Etherboot network booting images.
O endereço http://rom-o-matic.net é o site onde encontraremos o PXE para download e configurar o serviço DHCP, abra o endereço no navegador.
Passos:
#lspci -vnn | grep Ethernet
03:00.0 Ethernet controller [0200]: Broadcom Corporation BCM4401-B0 100Base-TX [14e4:170c] (rev 02)
para exemplo, vamos usar o b44:14e4170c -- [14e4,170c]
lembre-se que o código dever ser trocado o : por , ficando assim 14e4,170c
14e4,170c é o modelo do drive para pegar no: http://rom-o-matic.net/ Se você não encontrar pela marca, veja depois pela sigla [14e4,170c] é um trabalho e tanto. Se não encontrar das duas formas, você pode o olhar o codigo fonte HTML dessa página com o Web Developer e depois procurar pelo código, 14e4,170c é uma alternativa que resolve rápido. https://addons.mozilla.org/pt-BR/firefox/addon/60 - use a opção Visualizar código-fonte gerado.
gPXE Releases; Current top of Development Tree; gPXE git (current-top-of-git-tree) Image Generator:
Escolha a marca e versão da placa de rede
1 - Choose NIC/ROM type:
Escolha o formato PXE
2 - Choose ROM output format:
Download
3 - “GET ROOM”
Salve na sua Area de trabalho (Desktop) e depois copie com permissão de root para dentro do diretório /export/tftpboot/pxe/. Para o exemplo, o nome desse arquivo será rom-matic.pxe
Exemplo:
cd <enter>
sudo cp Desktop/gpxe-git-b44.pxe /export/tftpboot/pxe/
Se o seu Ubuntu está em português o diretorio Desktop muda de nome:
sudo cp Área\ de\ Trabalho/gpxe-git-b44.pxe /export/tftpboot/pxe/
DHCP
Antes de qualquer coisa precisamos instalar o pacote DHCP:
sudo apt-get install dhcp3-server
Mova o arquivo original para deixar ele como esta.
sudo mv /etc/dhcp3/dhcpd.conf /etc/dhcp3/dhcpd.conf.original
Obtenha o número MAC - endereço físico - dos computadores clientes.
Dica: para obter o endereço físico do computador-cliente você poderá usar o comando ifconfig. Proceda da seguinte maneira: no computador cliente, insira um live cd e faça-o rodar. Abra um terminal de comandos ou use o sistema diretamente no modo texto. No terminal, digite ifconfig e veja a linha: eth0 Link encap:Ethernet Endereço de HW 00:00:ec:5d:c3:33 O número em negrito é o endereço físico da placa de rede do cliente.
Edite o arquivo sudo nano /etc/dhcp3/dhcpd.conf e adicione as linhas indicadas nos comentários.
authoritative; use-host-decl-names on;
# gPXE stuff - Padrao PXE option space gpxe; option gpxe-encap-opts code 175 = encapsulate gpxe; option gpxe.bus-id code 177 = string;
# Sub-rede subnet 192.168.0.0 netmask 255.255.255.0 { # IP servidor, caminho raiz para os arquivos necessários option root-path "192.168.0.1:/export/diskless"; # Gateway option routers 192.168.0.1; # DNS option domain-name-servers 192.168.0.1; # Dominio option domain-name "raggea.com.br";
# nome da maquina, utilizaremos em outros arquivos host jimicliff { # endereço fisico da placa de rede do cliente hardware ethernet 00:15:f2:c8:22:54; # IP que esse cliente irá receber fixed-address 192.168.0.10; if not exists gpxe.bus-id { # Drive da placa de rede do cliente, passo 1.3.1 filename "/export/tftpboot/pxe/gpxe-git-b44.pxe"; } else { # Script de inicialização com parametros do tftpboot filename "/export/tftpboot/boot/generic.script"; } } host natirutis { # endereço fisico da placa de rede do cliente hardware ethernet 00:15:f2:c8:23:54; # IP que esse cliente irá receber fixed-address 192.168.0.11; if not exists gpxe.bus-id { # Drive da placa de rede do cliente, passo 1.3.1 filename "/export/tftpboot/pxe/gpxe-git-forcedeth-10de0057.pxe"; } else { # Script de inicialização com parametros do tftpboot filename "/export/tftpboot/boot/generic.script"; } } }
Religar o dhcp3-server:
sudo /etc/init.d/dhcp3-server restart
esse é um log do cerviço que está funcionando corretamente,
comando tail -f /var/log/syslog
Sep 1 16:09:45 bobmarley dhcpd: Internet Systems Consortium DHCP Server V3.0.6
Sep 1 16:09:45 bobmarley dhcpd: Copyright 2004-2007 Internet Systems Consortium.
Sep 1 16:09:45 bobmarley dhcpd: All rights reserved.
Sep 1 16:09:45 bobmarley dhcpd: For info, please visit http://www.isc.org/sw/dhcp/
Sep 1 16:09:45 bobmarley dhcpd: WARNING: Host declarations are global. They are not limited to the scope you declared them in.
Sep 1 16:09:46 bobmarley dhcpd: WARNING: Host declarations are global. They are not limited to the scope you declared them in.
Sep 1 16:09:46 bobmarley dhcpd: Wrote 0 deleted host decls to leases file.
Sep 1 16:09:46 bobmarley dhcpd: Wrote 0 new dynamic host decls to leases file.
Sep 1 16:09:46 bobmarley dhcpd: Wrote 0 leases to leases file.
Sep 1 16:09:46 bobmarley dhcpd:
Sep 1 16:09:46 bobmarley dhcpd: No subnet declaration for eth0 (200.200.200.2) REDE WAN
Sep 1 16:09:46 bobmarley dhcpd: ** Ignoring requests on eth0. If this is not what
Sep 1 16:09:46 bobmarley dhcpd: you want, please write a subnet declaration
Sep 1 16:09:46 bobmarley dhcpd: in your dhcpd.conf file for the network segment
Sep 1 16:09:46 bobmarley dhcpd: to which interface eth0 is attached. **
Sep 1 16:09:46 bobmarley dhcpd:
A linha No subnet declaration for eth0 (200.200.200.2) REDE WAN ** Ignoring requests on eth0
diz que requisições vinda pela ETH0 serão ignoradas.
Servidor: adicionando máquinas
Somente adicione o nomes das maquinas cliente no arquivo:
sudo nano /etc/hosts
127.0.0.1 localhost 127.0.1.1 bobmarley 192.168.0.10 jimicliff 192.168.0.11 natirutis
- listar todas seus clientes aqui
- não remover nada, apenas adicionar. A ordem não tem efeito no resultado.
Vamos dar permissão para que todas as máquinas da rede local tenham acesso ao portmap, adicione a seguinte linha no arquivo:
sudo nano /etc/hosts.allow
ALL : 192.168.0.0
Servidor: TFPT-HPA
Antes de qualquer coisa, instale o pacote necessário:
sudo apt-get install tftpd-hpa
Alterar o arquivo sudo nano /etc/inetd.conf como mostra a seguir:
De:
tftp dgram udp wait root /usr/sbin/in.tftpd /usr/sbin/in.tftpd -s /var/lib/tftpboot
Para:
tftp dgram udp wait root /usr/sbin/in.tftpd -s /export/tftpboot/ -r blksize -vvvvvv
Debootstrap
Debootstrap é uma ferramenta que cria a estrutura do sistema operacional, nesse momento os arquivos da Diskless serão instalado em /export/hardy.
Instale o pacote:
sudo apt-get install debootstrap
E em seguinda execute o debootstrap:
sudo debootstrap hardy /export/hardy
e espere, isso pode levar horas dependendo a máquina.
I: Configuring libc6... I: Configuring initramfs-tools... I: Base system installed successfully.
Se terminar a instalação com frase acima...foi tudo certo.
Servidor: NFS
Criar links de boot
cd /export/tftpboot/boot
sudo ln -s ../../diskless/vmlinuz vmlinuz
sudo ln -s ../../diskless/initrd.img initrd.img
NFS
Network File System, é com essa serviço que vamos acessar e tornar os arquivos remotos com se fossem locais.
Instalando pacotes:
sudo apt-get install nfs-common nfs-kernel-server
Editar o arquivo sudo nano /etc/exports para permitir a montagem do cliente
/home 192.168.0.0/255.255.255.0(no_root_squash,rw,no_subtree_check,async) /export 192.168.0.0/255.255.255.0(no_root_squash,rw,no_subtree_check,sync,insecure_locks)
Reiniciar
sudo /etc/init.d/nfs-common restart
sudo /etc/init.d/nfs-kernel-server restart
SERVIDOR: NIS
NIS (Network Information Service), responsável pela validação do usuário e senha criados no Servidor.
Instalando pacotes:
sudo apt-get install portmap nis
Durante instalação, será solicitado um nome para o NIS, para exemplo vamos usar: rock
Poderá ocorrer um erro (verá um [Fail]), mas não se preocupe.
VERIFICAR (?????????????????????)
Adicione o nome do servidor NIS da instalação no:
sudo nano /etc/hosts
127.0.0.1 localhost 192.168.0.1 servidor # referente ao NIS 192.168.0.10 cliente_diskless0 192.168.0.11 cliente_diskless1 # abaixo deixar sem retirar..somente adicionar
Edite o arquivo sudo nano /etc/default/nis e altere o parâmentro NISSERVER:
# Are we a NIS server and if so what kind (values: false, slave, master)? de NISSERVER=false para NISSERVER=master
Edite o arquivo sudo nano /etc/yp.conf e adicione a seguinte linha:
# ypserver ypserver.network.com ypserver 192.168.0.1
Edite o arquivo sudo nano /etc/ypserv.securenets coloque as seguintes linhas para que apenas os membros da sua rede local tenham acesso.
# Always allow access for localhost 255.0.0.0 127.0.0.0
# This line gives access to everybody. PLEASE ADJUST! # 0.0.0.0 0.0.0.0 # comente esta linha acima
# esta e sua rede local do diskless 255.255.255.0 192.168.0.0
Agora que temos tudo configurado, vamos iniciar servidor NIS:
sudo /etc/init.d/nis restart
E também temos que gerar o base de dados no NIS pela primeira vez, execute:
sudo /usr/lib/yp/ypinit -m
Vai aparecer o nome do servidor bobmarley e as seguintes linhas, verifique o nome do servidor está correto e tecle CTRL+D e veja se o resultado é o mesmo que segue abaixo, seguido de UPDATING
bobmarley@bobmarley:/export/tftpboot/boot$ sudo /usr/lib/yp/ypinit -m
At this point, we have to construct a list of the hosts which will run NIS servers. bobmarley is in the list of NIS server hosts. Please continue to add the names for the other hosts, one per line. When you are done with the list, type a <control D>.
next host to add: bobmarley next host to add:
The current list of NIS servers looks like this:
bobmarley
Is this correct? [y/n: y] y We need a few minutes to build the databases... Building /var/yp/rock/ypservers... Running /var/yp/Makefile... make[1]: Entrando no diretório `/var/yp/rock' Updating passwd.byname... Updating passwd.byuid... Updating group.byname... Updating group.bygid... Updating hosts.byname... Updating hosts.byaddr... Updating rpc.byname... Updating rpc.bynumber... Updating services.byname... Updating services.byservicename... Updating netid.byname... Updating protocols.bynumber... Updating protocols.byname... Updating netgroup... Updating netgroup.byhost... Updating netgroup.byuser... Updating shadow.byname... make[1]: Saindo do diretório `/var/yp/rock'
bobmarley has been set up as a NIS master server.
Now you can run ypinit -s bobmarley on all slave server.
=========== LIXO
Digite o nome do servidor que escolhemos na instalação do NIS: servidor e para sai.
Em seguida deve aparecer varias linhas contendo a palavra Updating... , fora isso ouve algum erro.
At this point, we have to construct a list of the hosts which will run NIS servers. diskless-laptop is in the list of NIS server hosts. Please continue to add the names for the other hosts, one per line. When you are done with the list, type a <control D>. next host to add: diskless-desktop next host to add: The current list of NIS servers looks like this:
diskless-desktop
Is this correct? [y/n: y] y We need a few minutes to build the databases... Building /var/yp/nserver/ypservers... Running /var/yp/Makefile... make[1]: Entering directory `/var/yp/nserver' Updating passwd.byname... Updating passwd.byuid... .....................varios Updating Updating netgroup.byuser... Updating shadow.byname... make[1]: Leaving directory `/var/yp/nserver'
diskless-desktop has been set up as a NIS master server.
Now you can run ypinit -s diskless-desktop on all slave server.
Para testar o NIS digitamos: ypcat passwd, se tudo estiver ok!, aparecerá uma linha nesse formato:
usuario:x:1000::1000:usuario,,,:/home/usuario:/bin/bash
Aqui finalizamos as configurações do servidor.
Cliente
Todas as configurações intituladas Cliente deve ser feitas no ambiente chroot.
NIS no Cliente
Aumentar o tempo para a execução do NIS, pois o NIS necessita de outros serviços para iniciar.
sudo chroot /export/diskless
update-rc.d -f nis remove
ln -s /etc/init.d/nis /etc/rcS.d/S70nis
SAIA DO CHROOT ANTES DE EXCUTAR OS PRÓXIMOS COMANDOS, DIGITE exit
Cliente/Diskless
Scripts de inicialização e /var
Esses scripts foram desenvolvidos para resolver o problema do /var.
Ele faz algumas verificações de diretórios, caso não exista, ele crie.
Isso é importante para os computadores que já estão funcionando como aqueles que serão inseridos no futuro.
Edite os dois arquivos e arrume o parametro SERVER de acordo com o IP do seu servidor.
DESC="NFS diskless common setup" SERVER="192.168.0.1" # possivel alterar para sua rede
Para executar o próximo passo, temos que ter o sistema da Diskless montado, pois ele irá criar os links:
Remover /etc/hostname do Cliente/Diskless
rm /etc/hostname
touch /etc/hostname
Criar arquivo dentro do Cliente
mkdir /var/run/network
Criar arquivo mountnfs-diskless.sh
nano /etc/init.d/mountnfs-diskless.sh
### BEGIN INIT INFO # Provides: mountnfs-diskless # Required-Start: mountnfs # Required-Stop: # Default-Start: S # Default-Stop: # Short-Description: Mount diskless file systems # Description: Mount diskless file systems ### END INIT INFO
. /lib/lsb/init-functions
DESC="NFS diskless common setup" SERVER="192.168.0.1"
log_daemon_msg "Mounting station-specific directories"
MTOPTS="rsize=32768,async,wsize=32768,nfsvers=3,tcp"
# Start off with mounting the state directory mount -o $MTOPTS $SERVER:/export/state /state
DIR="/state/`hostname`/var/spool/" if [ ! -d $DIR ] ; then log_daemon_msg "Creating spool directory $DIR" mkdir -p $DIR cd $DIR ln -s ../mail mail
# Copy postfix skeleton environment over #cp -R --preserve /etc/server-skel/postfix/ .
mkdir cron mkdir texmf
#mkdir cups #chown cupsys:lpadmin cups #chmod 710 cups fi mount -o $MTOPTS,nolock $SERVER:/export${DIR} /var/spool/
DIR="/state/`hostname`/var/log/" if [ ! -d $DIR ] ; then log_daemon_msg "Creating log directory $DIR" mkdir $DIR cd $DIR
mkdir apt mkdir ksymoops mkdir gdm mkdir news chown news:proxy news chmod 2755 news
#mkdir postgresql #chgrp postgres postgresql #chmod 775 postgresql
#mkdir cups #chown cupsys:lpadmin cups fi mount -o $MTOPTS,nolock $SERVER:/export${DIR} /var/log/
DIR="/state/`hostname`/etc/cups/" if [ -d $DIR ] ; then log_daemon_msg "Mounting station-specific CUPS directory" mount -o $MTOPTS $SERVER:/export${DIR} /etc/cups fi
log_end_msg $?
: exit 0
Criar arquivo: nfs-common-diskless
nano /etc/init.d/nfs-common-diskless
### BEGIN INIT INFO # Provides: nfs-common-diskless # Required-Start: $network # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: NFS support files common to client and server # Description: NFS is a popular protocol for file sharing across # TCP/IP networks. This service provides various # support functions for NFS mounts. ### END INIT INFO
. /lib/lsb/init-functions
DESC="NFS diskless common setup" SERVER="192.168.0.1"
log_daemon_msg "Starting $DESC"
DIR="/var/lib/nfs/`hostname`" if mount | grep -qs /var/lib/nfs; then log_daemon_msg "NFS state directory already mounted" exit 1 fi if [ ! -d $DIR ] ; then log_daemon_msg "New machine; creating NFS directory." mkdir -p $DIR fi mount -o $MTOPTS,nolock $SERVER:/export/diskless/${DIR} /var/lib/nfs/ log_end_msg $?
Dar permissao de execucao:
chmod +x /etc/init.d/mountnfs-diskless.sh
chmod +x /etc/init.d/nfs-common-diskless
Fazer links simbolicos
ln -s /etc/init.d/mountnfs-diskless.sh /etc/rcS.d/S45mountnfs-diskless
ln -s /etc/init.d/nfs-common-diskless /etc/rcS.d/S43nfs-common-diskless
2.1 – Cliente
Execute:
sudo chroot /export/diskless
mount none /proc -t proc
a partir de agora estamos dentro da imagem da Diskless.
- Instalando a imagem:
apt-get install linux-image nano nis
- Precisamos alterar o arquivo:
nano /etc/initramfs-tools/initramfs.conf
para poder bootar via NFS, alterar
de BOOT=local para BOOT=nfs
- Recriando o initrd.img:
update-initramfs -u
A partir de agora estaremos configurando a imagem/ambiente Diskless que será passada aos clientes.
Antes de começarmos, vamos instalar o alguns pacotes necessários com o comando:
apt-get update
mount none /proc -t proc
apt-get install language-pack-br language-pack-br-base
apt-get install nfs-common portmap
- 2.2 Configurando partições
Inserir estas linhas no arquivo nano /etc/fstab
/dev/root / nfs defaults,rw,nolock,tcp 0 0 none /tmp tmpfs defaults 0 0 none /media tmpfs defaults 0 0 none /var/tmp tmpfs noexec 0 0 none /var/yp/binding tmpfs defaults,mode=755 0 0 192.168.0.1:/home /home nfs defaults,nfsvers=3,tcp,async,noatime,rw,rsize=32768,wsize=32768 0 0
Altere o valor do ip dentro do /etc/fstab, referente a sua rede:
192.168.0.1:/home
- 2.3 Configurando rede de cliente/Ambiente Diskless
Vamos editar o arquivo nano /etc/network/interfaces e adicionar as linhas abaixo, por padrão esse arquivo está vazio.
auto lo iface lo inet loopback
iface eth0 inet dhcp
!! NAO ADICIONAR AUTO ETH0 , QUEBRA O SISTEMA NA INICIALIZAÇÃO'
Edite o arquivo nano /etc/hosts.allow , para restrição de conexão, apenas o servidor pode conectar, adiciona a linha:
portmap : 192.168.0.1
- 2.4 NIS
Edite o arquivo nano /etc/yp.conf e configure a linha do servidor.
ypserver 192.168.0.1
para acessar o servidor NIS.
A diferença entre os três próximos arquivos é a quantidade de dois pontos (:) de uma para o outro, deve ser colocado no final de cada arquivo:
Abra os arquivo:
nano /etc/passwd e adicione
+:::::: #(seis :)
nano /etc/group e adicione
+::: #(três :)
nano /etc/shadow e adicione
+:::::::: #(oito :)
Para acesso admin dentro do cliente/Ambiente Diskless:
groupadd admin
Editar nano /etc/sudoers
Altere a linha ou adicione
#%sudo ALL=NOPASSWD: ALL
Para:
%admin ALL=(ALL) ALL
- 2.5 Instalando X Window e Desktop
apt-get install ubuntu-desktop
Este passo pode demorar, pois sera feito download de arquivos do sistema.
Adicionando mais terminais/maquinas na sua rede.
- 2.6 Instalando nova máquina
Editar o arquivo sudo nano /etc/dhcp3/dhcpd.conf, e colocar os parametros necessários para o novo cliente.
Não esquecendo que precisamos saber a marca e modelo da placa de rede, vai para o passo 1.3.1 caso não lembre.
host cliente_disklessX { # endereço fisico da placa de rede do cliente hardware ethernet XX:XX:XX:XX:XX; # IP que esse cliente irá receber fixed-address 192.168.0.X; if not exists gpxe.bus-id { # Drive da placa de rede do cliente, passo 1.3.1 filename "/export/tftpboot/pxe/rom-matic.pxe"; } else { # Script de inicialização com parametros do tftpboot filename "/export/tftpboot/boot/generic.script"; } }
/etc/init.d/dhcp3-server restart
Abre o arquivo sudo nano /etc/hosts e insere o nome e IP do novo cliente,
192.168.0.X cliente_disklessX
Adicionando mais usuarios no servidor para usar nos terminais
*4 - Adicionando mais usuarios.
Adicionando usuario teste
adduser teste
Colocar na base de dados do NIS
cd /var/yp
make
*** SAIA DO CHROOT ANTES DE EXCUTAR OS PRÓXIMOS COMANDOS, DIGITE exit ***