Mudanças entre as edições de "Minicluster:DRBL"

De WikiLICC
Ir para: navegação, pesquisa
m (O cliente possui placa rede PXE)
m (Passo 3)
 
(52 revisões intermediárias pelo mesmo usuário não estão sendo mostradas)
Linha 1: Linha 1:
Diskless Remote Boot in Linux (DRBL)
+
Este documento descreve como configurar o ambiente "DRBL" em '''Fedora 25'''
* Versão completa em inglês desta página: http://drbl.sourceforge.net/one4all/
+
* para outros sistemas e detalhes veja o [http://drbl.sourceforge.net/one4all/ original]) e [http://drbl.sourceforge.net/installation/]
 +
* para versão Fedora13 veja [[Minicluster:DRBL:Fedora13]]
  
==Preamble==
+
= Configure o ambiente Diskless Remote Boot in Linux (DRBL)=
Este documento descreve como setup o ambiente "DRBL" em (para outros sistemas veja o original):
 
 
 
* Fedora Core 13
 
 
 
= Setup the Diskless Remote boot in Linux (DRBL) Environment=
 
  
 
==I. Configuração do Servidor Linux==
 
==I. Configuração do Servidor Linux==
  
*  Instale o Linux e configure todas as placas de rede. Neste texto, usamos '''eth0''' para conectar a internet, enquanto que eth1, eth2, eth3 são para o DRBL (coloque o IP das placas de rede como IP privado (i.e. 192.168.x.x, no exemplo: eth1:192.168.101.254, eth2:192.168.102.254, eth3:192.168.103.254...)); IPs privados (e.g. 192.168.x.x) são usados para o ambiente DRBL. Se no seu Linux o serviço NetworkManager é iniciado automaticamente, é recomendado desligar ou remover. No Fedora você pode: chkconfig --del NetworkManager, chkconfig --del NetworkManagerDispatcher, e ligar o serviço de rede com  "chkconfig network on". Suas regras para o firewall serão reescritas no servidor DRBL. Depois de completar o setup do DRBL e testar com sucesso, você pode reconfigurar o firewall. Lembre que os serviços NIS, tftp e dhcp são necessários, assim NÃO bloqueie eles no firewall.
+
*  Instale o Linux e configure todas as placas de rede. Usamos a placa de rede integrada '''enp0s25''' para conectar a internet (IP ...), enquanto que a placa extra '''enp7s4''' é usada para o DRBL se conectar ao switch (use um IP privado: 192.168.0.99).
 +
* É recomendado desligar ou remover o serviço NetworkManager se estiver sendo é iniciado automaticamente (não fiz):
 +
  chkconfig --del NetworkManager
 +
  chkconfig --del NetworkManagerDispatcher
 +
: e para ligar o serviço de rede use
 +
  chkconfig network on
 +
* As regras para o firewall serão reescritas no servidor DRBL. Depois de completar o setup do DRBL e testar com sucesso, você pode reconfigurar o firewall. Lembre que os serviços NIS, tftp e dhcp são necessários, assim NÃO bloqueie eles no firewall.
  
 
*    Para melhor performance (opcional):
 
*    Para melhor performance (opcional):
**  Se você usa o Gnome, pode apagar alguns arquivos de linguagem em ''/etc/gconf/gconf.xml.defaults/''. Isto economiza espaço no servidor (Ex.: mantendo somente %gconf-tree.xml e %gconf-tree-zh_TW.xml economizará 40 MB (Com 16 clientes economizará 640 MB no servidor) e o carregamento no servidor NFS será menor.
+
**  Se tu usa o Gnome, apague alguns arquivos de linguagem em ''/etc/gconf/gconf.xml.defaults/''. Isto economiza espaço no servidor (Ex.: mantendo somente %gconf-tree.xml e %gconf-tree-zh_TW.xml economizará 40 MB (Com 16 clientes economizará 640 MB no servidor) e o carregamento no servidor NFS será menor.
 
**  O sistema de arquivos reiserfs é recomendado (se disponível) por melhor performance (comparado com ext2/ext3).
 
**  O sistema de arquivos reiserfs é recomendado (se disponível) por melhor performance (comparado com ext2/ext3).
  
*    Depois de instalar o Linux no servidor, tenha certeza que o modo DMA está ativo. Isto acelera a velocidade de acesso ao disco do servidor. Use '''hdparm /dev/hdx''' para verificar se o modo está ativo ou não. Se estiver off, rode '''hdparm -d1 -c3 -k1 /dev/hdx''' para ativar. Troque /dev/hdx por /dev/hda se seu disco IDE para o sistema Linux está em "Primary IDE".
+
===SELinux===
 
+
Nota sobre Selinux: Desligue ao menos que entenda como usá-lo (senão poderá ter "Permission denied"). Para desabilitar SELinux, digite:
*    Nota sobre Selinux: Desligue ao menos que entenda como usá-lo (senão poderá ter "Permission denied"). Para desabilitar SELinux, digite SELINUX=disabled em /etc/sysconfig/selinux or /etc/selinux/config e reinicialize sua máquina.
+
$ vi /etc/sysconfig/selinux   # ou /etc/selinux/config
 
+
...
==II. Configuração dos clientes==
+
SELINUX=disabled
Nota: Este processo é feito no servidor para uso nos clientes.
+
...
 +
e reinicialize a máquina (reboot)
  
 +
==II. Configuração dos clientes (feito no servidor)==
 
=== Passo 2a ===
 
=== Passo 2a ===
 
*  Instale a DRBL key (ID: 1024D/D7E8DF3A, Key fingerprint = F532 A131 65AF 2168 1634 DB1B 4000 9511 D7E8 DF3A) no seu sistema rpm. Três modos de fazer isso:
 
*  Instale a DRBL key (ID: 1024D/D7E8DF3A, Key fingerprint = F532 A131 65AF 2168 1634 DB1B 4000 9511 D7E8 DF3A) no seu sistema rpm. Três modos de fazer isso:
Linha 29: Linha 33:
 
   ou
 
   ou
 
     rm -f GPG-KEY-DRBL; wget http://drbl.nchc.org.tw/GPG-KEY-DRBL; rpm --import GPG-KEY-DRBL
 
     rm -f GPG-KEY-DRBL; wget http://drbl.nchc.org.tw/GPG-KEY-DRBL; rpm --import GPG-KEY-DRBL
   ou  baixe a key do key server. O KeyID para DRBL é D7E8DF3A:
+
   ou  baixe a key do key server. O KeyID para DRBL é 45599AFD:
    gpg --keyserver subkeys.pgp.net --recv-key D7E8DF3A
+
  gpg --keyserver subkeys.pgp.net --recv-key 45599AFD
e rode (para adicionar ao sistema rpm)
+
e para adicionar ao sistema rpm, rode
 
     gpg -a --export D7E8DF3A > GPG-KEY-DRBL; rpm --import GPG-KEY-DRBL
 
     gpg -a --export D7E8DF3A > GPG-KEY-DRBL; rpm --import GPG-KEY-DRBL
  
*   Baixe o arquivo '''drbl-1.9.6-35.i386.rpm''' (por exemplo, a versão estável está no Sourceforge)
+
 
*   Se conecte como root '''su - root'''
+
 
*   Instale o arquivo que você baixou:
+
* Baixe o arquivo [http://sourceforge.net/projects/drbl/files/drbl_stable/1.9.6-35/drbl-1.9.6-35.i386.rpm/download drbl-1.9.6-35.i386.rpm] (versão estável)
    yum install drbl-XXX.i386.rpm
+
* Se conecte como root
 +
  su - root
 +
* Instale o arquivo que você baixou:
 +
  yum install drbl-XXX.i386.rpm
 
     ou
 
     ou
    rpm -Uvh drbl-XXX.i386.rpm
+
  rpm -Uvh drbl-XXX.i386.rpm
*  Nota: Um módulo perl é necessário (Algo como "perl-Digest-SHA1"). Usando yum baixará automaticamente, senão use
+
*  Nota: Um módulo perl é necessário (perl-Digest-SHA1). Usando yum baixará automaticamente, senão use
 
   yum install perl-Digest-SHA1
 
   yum install perl-Digest-SHA1
Se usar rpm, instale com (Fedora 8)
+
:  ou usando rpm
   rpm -Uvh http://opensource.nchc.org.tw/fedora/linux/releases/8/Fedora/i386/os/Packages/perl-Digest-SHA1-2.11-4.fc8.i386.rpm
+
   rpm -Uvh http://opensource.nchc.org.tw/fedora/linux/releases/13/Fedora/i386/os/Packages/perl-Digest-SHA1-2.12-2.fc13.i686.rpm
  
 
PS. Os arquivos DRBL estão em http://ftp.twaren.net/local-distfiles/drbl-core/ ou http://free.nchc.org.tw/drbl-core
 
PS. Os arquivos DRBL estão em http://ftp.twaren.net/local-distfiles/drbl-core/ ou http://free.nchc.org.tw/drbl-core
Linha 49: Linha 56:
 
=== Passo 2b ===
 
=== Passo 2b ===
 
==== Cenário 1 - Internet rápida:====
 
==== Cenário 1 - Internet rápida:====
Pressione Enter para aceitar a opção default:
+
Pressione Enter para aceitar a opção padrão (veja [[Minicluster:DRBL:drblsrv]]):
 
   /opt/drbl/sbin/drblsrv -i
 
   /opt/drbl/sbin/drblsrv -i
 +
 
==== Cenário 2 - Sem internet ou internet lenta:====
 
==== Cenário 2 - Sem internet ou internet lenta:====
 
Liste os pacotes necessários com
 
Liste os pacotes necessários com
Linha 62: Linha 70:
 
   /opt/drbl/sbin/drblsrv-offline --help
 
   /opt/drbl/sbin/drblsrv-offline --help
  
=== Para o impaciente ===
+
==== Cenário 3 - Para o impaciente ====
 
Rode
 
Rode
 
  /opt/drbl/sbin/drbl4imp
 
  /opt/drbl/sbin/drbl4imp
para terminar o passo ''2b'' e ''3a''. '''drbl4imp''' usa os valores padrão para configurar o servidor DRBL. THIS IS VERY IMPORTANT! O padrão pode não ser o ideal, pois usa a opção ''range'' no servidor e assim seu cliente não terá sempre o mesmo IP (também é limitado a 12 clientes por placa de rede).
+
para terminar o passo ''2b'' e ''3a''. '''drbl4imp''' usa os valores padrões para configurar o servidor DRBL. IMPORTANTE! O padrão pode não ser o ideal, pois usa a opção ''range'' no servidor e assim seu cliente não terá sempre o mesmo IP (também é limitado a 12 clientes por placa de rede).
  
 
==III. Configure o sistema de arquivos para o cliente no Servidor==
 
==III. Configure o sistema de arquivos para o cliente no Servidor==
  
* Arrume seu ambiente e tenha certeza que você o conhece.
 
 
* Temos um servidor e 16 clientes (mais um IP no switch?? O IP do ambiente DRBL (LAN) é 192.168.0.99. Os serviços DHCP, TFTP, NFS, etc rodam em [eth0].
 
* Temos um servidor e 16 clientes (mais um IP no switch?? O IP do ambiente DRBL (LAN) é 192.168.0.99. Os serviços DHCP, TFTP, NFS, etc rodam em [eth0].
 
           [NIC ]  NIC IP          Clientes
 
           [NIC ]  NIC IP          Clientes
Linha 88: Linha 95:
 
:; Clonezilla Box: É baseado no modo DRBL SSI, especialmente para o sistema clone.  Se for usar o modo DRBL SSI, tenha certeza que o cliente tem memória grande (digamos > 512 MB) e que todo o equipamento (especialmente a placa gráfica) nos clientes é o mesmo.
 
:; Clonezilla Box: É baseado no modo DRBL SSI, especialmente para o sistema clone.  Se for usar o modo DRBL SSI, tenha certeza que o cliente tem memória grande (digamos > 512 MB) e que todo o equipamento (especialmente a placa gráfica) nos clientes é o mesmo.
  
* Antes do passo 3a, você pode fazer uma configuração personalizada:
+
* Antes do passo 3, você pode fazer uma configuração personalizada:
**  Se possui diretórios para compartilhar no servidor, tal como /home/export, então modifique o arquivo (Cuidado ao editá-lo)!!!
+
**  Se possui diretórios para compartilhar no servidor, tal como /home/export, então edite o arquivo (indicando ro=somente leitura, rw=leitura e escrita)
     vi /opt/drbl/conf/drbl.conf
+
     [root] $ vi /etc/drbl/drbl.conf
::  e edite (Somente leitura _ro ou Leitura_e_escrita _rw)
+
    ..
     diskless_root_dir_ro_user_add="/home/export"
+
     diskless_root_dir_ro_user_add="/home/somenteleitura"
 
     diskless_root_dir_rw_user_add="/home/export"  
 
     diskless_root_dir_rw_user_add="/home/export"  
 +
    ..
 
:*  Se os clientes possuem disco rígido local e a partição é formatada (por exemplo, /dev/hda1, com arquivo de sistema ext3), então possivelmente você quer que o cliente monte  /dev/hda1 como  /localwork quando inicializando. Portanto edite /opt/drbl/conf/client-append-fstab (a sintaxe é como /etc/fstab). Neste exemplo, podemos editar  /opt/drbl/conf/client-append-fstab como:
 
:*  Se os clientes possuem disco rígido local e a partição é formatada (por exemplo, /dev/hda1, com arquivo de sistema ext3), então possivelmente você quer que o cliente monte  /dev/hda1 como  /localwork quando inicializando. Portanto edite /opt/drbl/conf/client-append-fstab (a sintaxe é como /etc/fstab). Neste exemplo, podemos editar  /opt/drbl/conf/client-append-fstab como:
 
     /dev/hda1 /localwork ext3 defaults 0 0
 
     /dev/hda1 /localwork ext3 defaults 0 0
(PS: Você não precisa criar o diretório  /tftpboot/node_root/localwork no servidor DRBL manualmente; ele será criado mais tarde pelo  drblpush.
+
::  PS: Não é necessário criar o diretório  /tftpboot/node_root/localwork no servidor DRBL manualmente; ele será criado mais tarde pelo  drblpush.
  
 
:*  Para ter serviços extras no cliente (como apmd ou bluetooth) If you have extra services (such as apmd and bluetooth), edite
 
:*  Para ter serviços extras no cliente (como apmd ou bluetooth) If you have extra services (such as apmd and bluetooth), edite
     vi  /opt/drbl/conf/client-extra-service
+
     vi  /etc/drbl/client-extra-service
 
::  e adicione
 
::  e adicione
 
     service_extra_added="apmd bluetooth".
 
     service_extra_added="apmd bluetooth".
 
:*  Se você quer renomear algum ou todos os hostnames criados automaticamente por "drblpush -i", edite agora
 
:*  Se você quer renomear algum ou todos os hostnames criados automaticamente por "drblpush -i", edite agora
     vi /opt/drbl/conf/client-ip-hostname  
+
     vi /etc/drbl/client-ip-hostname  
 +
..
 +
192.168.0.50 switch
 +
192.168.0.100 one
 +
192.168.0.108 cell108
 +
192.168.0.109 cell109
 +
192.168.0.110 cell110
 +
192.168.0.111 cell111
 +
192.168.0.112 cell112
 +
192.168.0.113 cell113
 +
192.168.0.114 cell114
 +
192.168.0.115 cell115
 +
192.168.0.116 cell116
 +
192.168.0.117 cell117
 +
192.168.0.118 cell118
 +
192.168.0.119 cell119
 +
192.168.0.120 cell120
 +
192.168.0.121 cell121
 +
192.168.0.122 cell122
 +
192.168.0.123 cell123
 +
 
::  Se as máquinas não estão designadas, drblpush usará o hostname criado automaticamente.
 
::  Se as máquinas não estão designadas, drblpush usará o hostname criado automaticamente.
  
=== Passo 3a ===
+
=== Passo 3 ===
Rode
+
O programa auto-detecta os argumentos do sistema, caso não achar, perguntará a você ([[Minicluster:DRBL:exemploFC25]],[[Minicluster:DRBL:exemplo]]:FC13, [http://drbl.sourceforge.net/one4all/examples/drblcli_desktop_example.txt veja no site]). Rode
  /opt/drbl/sbin/drblpush -i
+
  /usr/sbin/drblpush -i
O programa auto-detecta o sistema para descobrir os argumentos. Se os argumentos não são dados no sistema, o sistema pedirá a você ([http://drbl.sourceforge.net/one4all/examples/drblcli_desktop_example.txt veja no site]).
+
 
  
* Nota!!! Se pacotes mais novos são instalados no servidor depois desse paso, você deve rodar (isto carrega as configurações salvas anteriormente)
+
* Nota!!! Se pacotes mais novos são instalados no servidor depois desse passo, você deve rodar (isto carrega as configurações salvas anteriormente)
   /opt/drbl/sbin/drblpush -i
+
   /usr/sbin/drblpush -i
 
     ou  
 
     ou  
   /opt/drbl/sbin/drblpush -c /etc/drbl/drblpush.conf
+
   /usr/sbin/drblpush -c /etc/drbl/drblpush.conf
 
: novamente tal que os novos pacotes sejam entregues aos cliente.
 
: novamente tal que os novos pacotes sejam entregues aos cliente.
  
 
* Nota!!! Não é recomendado ativar o sistema de atualização automática. Se novos pacotes são instalados no servidor, sem rodar '''/opt/drbl/sbin/drblpush -i''', o programa para o cliente pode não ser compatível com o mais novo no servidor. Se quiser deixar ativo o sistema de atualização, lembre de seguir o passo acima para atualizar os arquivos no cliente automaticamente.
 
* Nota!!! Não é recomendado ativar o sistema de atualização automática. Se novos pacotes são instalados no servidor, sem rodar '''/opt/drbl/sbin/drblpush -i''', o programa para o cliente pode não ser compatível com o mais novo no servidor. Se quiser deixar ativo o sistema de atualização, lembre de seguir o passo acima para atualizar os arquivos no cliente automaticamente.
  
==IV. Configurando os clientes para usar o ambiente DRBL==
+
==IV. Configurando os clientes para usar o DRBL==
 
Existem quatro cenários diferentes para dar o boot nos clientes (veja o original para usar Etherboot com 2)disquete , 3) CDROM ou 4) disco rígido).
 
Existem quatro cenários diferentes para dar o boot nos clientes (veja o original para usar Etherboot com 2)disquete , 3) CDROM ou 4) disco rígido).
  
Linha 126: Linha 154:
 
* anotado na sala.
 
* anotado na sala.
  
==V. Additional usage for the DRBL environment==
+
Pronto! Basta reinicializar a máquina.
 
 
          o Some useful scripts are located in the directories /opt/drbl/sbin and /opt/drbl/bin in the server, Take a look at them. Usage will appear by running them without parameters.
 
          o The most useful command is /opt/drbl/sbin/dcs which sets the client's default boot mode. Here's a screenshot of what it looks like:
 
  
            drbl_client_switch screenshot
+
==V. Uso adicional do ambiente DRBL==
  
          o Another useful command is drbl-SL.sh, it can load Small GNU/Linux (DSL, PuppyLinux, INSERT, PLD, Debian Live, GeeXbox, PUD-Linux...) into DRBL environment. By doing this, the client can use that Small GNU/Linu after booting via PXE. The client still can work even if the network cable is unplugged. It's fire and forget. For more info, check here.
+
* Alguns scripts estão em /opt/drbl/sbin e /opt/drbl/bin no servidor. Dê uma olhada. Para descobrir como usar rode eles sem parâmetros.
 +
* O comando mais útil é /opt/drbl/sbin/dcs que seta o modo de boot padrão dos clientes.
 +
* Outro comando útil é  drbl-SL.sh, que carrega um Linux pequeno (DSL, PuppyLinux, INSERT, PLD, Debian Live, GeeXbox, PUD-Linux...) no ambiente DRBL. Assim o cliente pode usar o Linux Pequeno depois de dar o boot via PXE. O cliente pode ser usado ainda que o cabo de rede seja desconectado.
  
=6. Upgrade=
+
=Upgrade=
  
 
Para upgrade para uma versão mais nova:
 
Para upgrade para uma versão mais nova:
Linha 144: Linha 171:
 
Algumas vezes, se as versões são próximas, podes tentar upgrade sem reinstalar e reconfigurar (i.e. somente yum upgrade). Entretanto, não é recomendado, pois alguns arquivos serão enviados aos clientes somente depois que drblsrv e drblpush são rodados.
 
Algumas vezes, se as versões são próximas, podes tentar upgrade sem reinstalar e reconfigurar (i.e. somente yum upgrade). Entretanto, não é recomendado, pois alguns arquivos serão enviados aos clientes somente depois que drblsrv e drblpush são rodados.
  
=7. Uninstall=
+
==Mais nós==
 +
* Edite o arquivo
 +
  vi /etc/drbl/macadr-eth0.txt
 +
  00:24:73:d7:a5:41
 +
  18:a9:05:e8:0e:b8
 +
  18:a9:05:e8:ae:0b
 +
 
 +
=Desinstalar=
  
 
Para desinstalar drbl e pacotes relacionados, rode:
 
Para desinstalar drbl e pacotes relacionados, rode:
Linha 150: Linha 184:
 
e siga os passos.
 
e siga os passos.
  
==References==
+
=Dicas=
        <ul>
+
* As imagens salvas ficam em /home/partimag
          <li><a href="http://drbl.nchc.org.tw">http;//drbl.nchc.org.tw</a></li>
+
 
          <li><a href="http://drbl.sf.net">http://drbl.sf.net</a><br>
+
=Referências =
          </li>
+
* [http://drbl.nchc.org.tw http://drbl.nchc.org.tw]
 +
* [http://drbl.sf.net http://drbl.sf.net]
 +
 
 +
* [http://free.nchc.org.tw http://free.nchc.org.tw]
 +
* [http://www.study-area.org/ http://www.study-area.org/]
 +
* [http://etherboot.sourceforge.org/ http://etherboot.sourceforge.org/]
 +
* [http://www.rom-o-matic.net/ http://www.rom-o-matic.net/]
 +
* [http://www.ltsp.org/ http://www.ltsp.org/]
 +
* [http://www.tldp.org/HOWTO/Diskless-HOWTO.html Diskless HOWTO]
  
          <li><a href="http://free.nchc.org.tw">http://free.nchc.org.tw</a></li>
+
* [http://www.tldp.org/HOWTO/Diskless-root-NFS-HOWTO.html Diskless-nfs-root HOWTO]
          <li><a href="http://www.study-area.org/">http://www.study-area.org/</a></li>
+
* [http://www.tldp.org/HOWTO/Diskless-root-NFS-other-HOWTO.html Diskless-nfs-root-other HOWTO]
          <li><a href="http://etherboot.sourceforge.org/">http://etherboot.sourceforge.org/</a></li>
+
* [http://www.tldp.org/HOWTO/Network-boot-HOWTO/index.html" Network-boot-HOWTO]
          <li><a href="http://www.rom-o-matic.net/">http://www.rom-o-matic.net/</a></li>
 
          <li><a href="http://www.ltsp.org/">http://www.ltsp.org/</a></li>
 
          <li><a href="http://www.tldp.org/HOWTO/Diskless-HOWTO.html">Diskless
 
HOWTO</a></li>
 
  
          <li><a
+
* [http://www.tldp.org/HOWTO/NIS-HOWTO/index.html NIS HOWTO]
href="http://www.tldp.org/HOWTO/Diskless-root-NFS-HOWTO.html">Diskless-nfs-root
+
* [http://www.tldp.org/HOWTO/NFS-HOWTO/index.html NFS HOWTO]
HOWTO</a></li>
 
          <li><a
 
href="http://www.tldp.org/HOWTO/Diskless-root-NFS-other-HOWTO.html">Diskless-nfs-root-other
 
HOWTO</a></li>
 
          <li><a
 
href="http://www.tldp.org/HOWTO/Network-boot-HOWTO/index.html"
 
target="_top">Network-boot-HOWTO</a><br>
 
          </li>
 
          <li><a href="http://www.tldp.org/HOWTO/NIS-HOWTO/index.html">NIS
 
HOWTO</a></li>
 
          <li><a href="http://www.tldp.org/HOWTO/NFS-HOWTO/index.html">NFS
 
HOWTO</a></li>
 
  
          <li><a href="./etherboot_doc">Etherboot User Manual</a> </li>
+
* Etherboot User Manual
          <li><a href="http://disklessworkstations.com/">http://disklessworkstations.com/</a>
+
* [http://disklessworkstations.com/ http://disklessworkstations.com/]
          </li>
+
* [http://www.ltsp.org/documentation/eproms.txt How to pick a bootrom]
          <li><a href="http://www.ltsp.org/documentation/eproms.txt">How
+
* [http://diet-pc.sourceforge.net/ DIET-PC]
to pick a bootrom</a> </li>
 
          <li><a href="http://diet-pc.sourceforge.net/">DIET-PC</a></li>
 
        </ul>
 

Edição atual tal como às 10h46min de 5 de julho de 2017

Este documento descreve como configurar o ambiente "DRBL" em Fedora 25

Configure o ambiente Diskless Remote Boot in Linux (DRBL)

I. Configuração do Servidor Linux

  • Instale o Linux e configure todas as placas de rede. Usamos a placa de rede integrada enp0s25 para conectar a internet (IP ...), enquanto que a placa extra enp7s4 é usada para o DRBL se conectar ao switch (use um IP privado: 192.168.0.99).
  • É recomendado desligar ou remover o serviço NetworkManager se estiver sendo é iniciado automaticamente (não fiz):
 chkconfig --del NetworkManager
 chkconfig --del NetworkManagerDispatcher
e para ligar o serviço de rede use
 chkconfig network on
  • As regras para o firewall serão reescritas no servidor DRBL. Depois de completar o setup do DRBL e testar com sucesso, você pode reconfigurar o firewall. Lembre que os serviços NIS, tftp e dhcp são necessários, assim NÃO bloqueie eles no firewall.
  • Para melhor performance (opcional):
    • Se tu usa o Gnome, apague alguns arquivos de linguagem em /etc/gconf/gconf.xml.defaults/. Isto economiza espaço no servidor (Ex.: mantendo somente %gconf-tree.xml e %gconf-tree-zh_TW.xml economizará 40 MB (Com 16 clientes economizará 640 MB no servidor) e o carregamento no servidor NFS será menor.
    • O sistema de arquivos reiserfs é recomendado (se disponível) por melhor performance (comparado com ext2/ext3).

SELinux

Nota sobre Selinux: Desligue ao menos que entenda como usá-lo (senão poderá ter "Permission denied"). Para desabilitar SELinux, digite:

$ vi /etc/sysconfig/selinux    # ou /etc/selinux/config
...
SELINUX=disabled
...

e reinicialize a máquina (reboot)

II. Configuração dos clientes (feito no servidor)

Passo 2a

  • Instale a DRBL key (ID: 1024D/D7E8DF3A, Key fingerprint = F532 A131 65AF 2168 1634 DB1B 4000 9511 D7E8 DF3A) no seu sistema rpm. Três modos de fazer isso:
   rm -f GPG-KEY-DRBL; wget http://drbl.org/GPG-KEY-DRBL; rpm --import GPG-KEY-DRBL
 ou
   rm -f GPG-KEY-DRBL; wget http://drbl.nchc.org.tw/GPG-KEY-DRBL; rpm --import GPG-KEY-DRBL
 ou  baixe a key do key server. O KeyID para DRBL é 45599AFD:
  gpg --keyserver subkeys.pgp.net --recv-key 45599AFD

e para adicionar ao sistema rpm, rode

   gpg -a --export D7E8DF3A > GPG-KEY-DRBL; rpm --import GPG-KEY-DRBL


  su - root
  • Instale o arquivo que você baixou:
  yum install drbl-XXX.i386.rpm
    ou
  rpm -Uvh drbl-XXX.i386.rpm
  • Nota: Um módulo perl é necessário (perl-Digest-SHA1). Usando yum baixará automaticamente, senão use
  yum install perl-Digest-SHA1
ou usando rpm
  rpm -Uvh http://opensource.nchc.org.tw/fedora/linux/releases/13/Fedora/i386/os/Packages/perl-Digest-SHA1-2.12-2.fc13.i686.rpm

PS. Os arquivos DRBL estão em http://ftp.twaren.net/local-distfiles/drbl-core/ ou http://free.nchc.org.tw/drbl-core

Passo 2b

Cenário 1 - Internet rápida:

Pressione Enter para aceitar a opção padrão (veja Minicluster:DRBL:drblsrv):

 /opt/drbl/sbin/drblsrv -i

Cenário 2 - Sem internet ou internet lenta:

Liste os pacotes necessários com

 /opt/drbl/sbin/drblsrv-offline -r

Depois de instalar estes pacotes, se estiver certo que o kernel no servidor é compatível com a CPU do cliente, rode

 /opt/drbl/sbin/drblsrv-offline -s `uname -r`

ou baixe o arquivo rpm do kernel apropriado (compatível com o cliente). Rode

 /opt/drbl/sbin/drblsrv-offline -k $KERNEL_PKG

onde $KERNEL_PKG é o nome do arquivo rpm do kernel com o caminho. Na dúvida, tecle Enter para aceitar os valores padrões.

  • Para ajuda e opções use
 /opt/drbl/sbin/drblsrv-offline --help

Cenário 3 - Para o impaciente

Rode

/opt/drbl/sbin/drbl4imp

para terminar o passo 2b e 3a. drbl4imp usa os valores padrões para configurar o servidor DRBL. IMPORTANTE! O padrão pode não ser o ideal, pois usa a opção range no servidor e assim seu cliente não terá sempre o mesmo IP (também é limitado a 12 clientes por placa de rede).

III. Configure o sistema de arquivos para o cliente no Servidor

  • Temos um servidor e 16 clientes (mais um IP no switch?? O IP do ambiente DRBL (LAN) é 192.168.0.99. Os serviços DHCP, TFTP, NFS, etc rodam em [eth0].
         [NIC ]   NIC IP          Clientes
+------------------------------+
|         DRBL SERVER          |
|                              |
|    +-- [eth1] 143.54.226.166 +- to WAN (rede da matemática)
|                              |
|    +-- [eth0] 192.168.0.99   +- to clients group 0 [ 2 clients, their IP
|                              |            from 192.168.0.100 - 192.168.0.101]                                                   
+------------------------------+ 
  • Existem 4 modos no DRBL:
Full DRBL e Full Clonezilla
A banda e o espaço em disco necessários são maiores, mas a configuração do sistema será salva no servidor e cada cliente terá sua própria configuração.
DRBL SSI (Single System Image)
Uma única imagem para todos os clientes. A configuração individual é criada em run-time no momento do boot. Isto reduz o espaço em disco já que é necessário uma única imagem no disco. A desvantagem é que cada cliente NÃO pode ter sua configuração própria (Configuração do usuário será salva no servidor). Se novos clientes forem adicionados, a única coisa a fazer é modificar o arquivo de configuração dhcpd (dhcpd.conf). Use "/opt/drbl/sbin/dcs -> others -> gen_3N_conf" para criar ou rode "/opt/drbl/sbin/drbl-3n-conf generate", os arquivos necessário serão criados. Neste modo, uma placa de rede no servidor pode ter 253 clientes.
Clonezilla Box
É baseado no modo DRBL SSI, especialmente para o sistema clone. Se for usar o modo DRBL SSI, tenha certeza que o cliente tem memória grande (digamos > 512 MB) e que todo o equipamento (especialmente a placa gráfica) nos clientes é o mesmo.
  • Antes do passo 3, você pode fazer uma configuração personalizada:
    • Se possui diretórios para compartilhar no servidor, tal como /home/export, então edite o arquivo (indicando ro=somente leitura, rw=leitura e escrita)
   [root] $ vi /etc/drbl/drbl.conf
   ..
   diskless_root_dir_ro_user_add="/home/somenteleitura"
   diskless_root_dir_rw_user_add="/home/export" 
   ..
  • Se os clientes possuem disco rígido local e a partição é formatada (por exemplo, /dev/hda1, com arquivo de sistema ext3), então possivelmente você quer que o cliente monte /dev/hda1 como /localwork quando inicializando. Portanto edite /opt/drbl/conf/client-append-fstab (a sintaxe é como /etc/fstab). Neste exemplo, podemos editar /opt/drbl/conf/client-append-fstab como:
   /dev/hda1 /localwork ext3 defaults 0 0
PS: Não é necessário criar o diretório /tftpboot/node_root/localwork no servidor DRBL manualmente; ele será criado mais tarde pelo drblpush.
  • Para ter serviços extras no cliente (como apmd ou bluetooth) If you have extra services (such as apmd and bluetooth), edite
   vi  /etc/drbl/client-extra-service
e adicione
   service_extra_added="apmd bluetooth".
  • Se você quer renomear algum ou todos os hostnames criados automaticamente por "drblpush -i", edite agora
   vi /etc/drbl/client-ip-hostname 
..
192.168.0.50 switch
192.168.0.100 one
192.168.0.108 cell108
192.168.0.109 cell109
192.168.0.110 cell110
192.168.0.111 cell111
192.168.0.112 cell112
192.168.0.113 cell113
192.168.0.114 cell114
192.168.0.115 cell115
192.168.0.116 cell116
192.168.0.117 cell117
192.168.0.118 cell118
192.168.0.119 cell119
192.168.0.120 cell120
192.168.0.121 cell121
192.168.0.122 cell122
192.168.0.123 cell123

Se as máquinas não estão designadas, drblpush usará o hostname criado automaticamente.

Passo 3

O programa auto-detecta os argumentos do sistema, caso não achar, perguntará a você (Minicluster:DRBL:exemploFC25,Minicluster:DRBL:exemplo:FC13, veja no site). Rode

 /usr/sbin/drblpush -i


  • Nota!!! Se pacotes mais novos são instalados no servidor depois desse passo, você deve rodar (isto carrega as configurações salvas anteriormente)
 /usr/sbin/drblpush -i
   ou 
 /usr/sbin/drblpush -c /etc/drbl/drblpush.conf
novamente tal que os novos pacotes sejam entregues aos cliente.
  • Nota!!! Não é recomendado ativar o sistema de atualização automática. Se novos pacotes são instalados no servidor, sem rodar /opt/drbl/sbin/drblpush -i, o programa para o cliente pode não ser compatível com o mais novo no servidor. Se quiser deixar ativo o sistema de atualização, lembre de seguir o passo acima para atualizar os arquivos no cliente automaticamente.

IV. Configurando os clientes para usar o DRBL

Existem quatro cenários diferentes para dar o boot nos clientes (veja o original para usar Etherboot com 2)disquete , 3) CDROM ou 4) disco rígido).

O cliente possui placa rede PXE

  • Edite o BIOS do cliente para dar o boot da "LAN" ou "network".
  • anotado na sala.

Pronto! Basta reinicializar a máquina.

V. Uso adicional do ambiente DRBL

  • Alguns scripts estão em /opt/drbl/sbin e /opt/drbl/bin no servidor. Dê uma olhada. Para descobrir como usar rode eles sem parâmetros.
  • O comando mais útil é /opt/drbl/sbin/dcs que seta o modo de boot padrão dos clientes.
  • Outro comando útil é drbl-SL.sh, que carrega um Linux pequeno (DSL, PuppyLinux, INSERT, PLD, Debian Live, GeeXbox, PUD-Linux...) no ambiente DRBL. Assim o cliente pode usar o Linux Pequeno depois de dar o boot via PXE. O cliente pode ser usado ainda que o cabo de rede seja desconectado.

Upgrade

Para upgrade para uma versão mais nova:

  1. Backup the important files, such as those files in /etc/drbl and /etc/dhcpd.conf or /etc/dhcp3/dhcpd.conf, etc...
  2. Run "/opt/drbl/sbin/drblsrv -u" to uninstall all the DRBL-related packages
  3. Follow the step II, download the drbl main program, re-install and configure it again (i.e. /opt/drbl/sbin/drblsrv -i and /opt/drbl/sbin/drblpush -i)

Algumas vezes, se as versões são próximas, podes tentar upgrade sem reinstalar e reconfigurar (i.e. somente yum upgrade). Entretanto, não é recomendado, pois alguns arquivos serão enviados aos clientes somente depois que drblsrv e drblpush são rodados.

Mais nós

  • Edite o arquivo
 vi /etc/drbl/macadr-eth0.txt
 00:24:73:d7:a5:41
 18:a9:05:e8:0e:b8
 18:a9:05:e8:ae:0b

Desinstalar

Para desinstalar drbl e pacotes relacionados, rode:

/opt/drbl/sbin/drblsrv -u

e siga os passos.

Dicas

  • As imagens salvas ficam em /home/partimag

Referências