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

De WikiLICC
Ir para: navegação, pesquisa
m (6. Upgrade)
m (Passo 3)
 
(86 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'''
 +
* 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]]
  
==Copyright==
+
= Configure o ambiente Diskless Remote Boot in Linux (DRBL)=
  
This copyright is preserved for the author and publisher. Anyone is permitted to copy and distribute verbatim copies of this document under the terms of the GNU FDL Free Documentation License. If you do make any distribution and modification on the documents, please add your name in the author list.
+
==I. Configuração do Servidor Linux==
  
We recommend this document principally for works whose purpose is instruction or reference. The author and publisher will not take any responsibility if there is any damage caused by this document.
+
*  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.
  
==Preamble==
+
*    Para melhor performance (opcional):
Este documento descreve como setup o ambiente "DRBL" em:
+
**  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).
  
* Fedora Core 13
+
===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)
  
Para outros sistemas veja o original.
+
==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
  
==Requerimentos básicos==
 
  
* Check here for more details.
 
  
= Setup the Diskless Remote boot in Linux (DRBL) Environment=
+
*  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)
 +
*  Se conecte como root
 +
  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
  
==I. Setup the Linux Server==
+
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
  
      Install the GNU/Linux distribution and configure all network cards. In the following, we use "eth0" to connect the Internet, while eth1, eth2, eth3 are for DRBL environment(set the network card's IP addresses to be private IPs (i.e. 192.168.x.x, the following example, we set eth1:192.168.101.254, eth2:192.168.102.254, eth3:192.168.103.254...); Please remember this principle, private IP (e.g. 192.168.x.x) is used for DRBL environment. If on your GNU/Linux, the NetworkManager service is startup automatically, it is recommended to turn off it or remove it. For Fedora, you can: chkconfig --del NetworkManager, chkconfig --del NetworkManagerDispatcher, and turn on network service by "chkconfig network on". For Debian or Ubuntu, it is recommended to remove it completely by: apt-get remove network-manager. Your firewall rules will be overwritten when setting up the DRBL server. After completing the DRBL setup and successfully testing it, you can config your firewall using your own rules. Remember, in the DRBL environment, NFS, NIS, tftp, and dhcp services are required, so dot NOT block them in your firwall rules.
+
==== 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
  
    * If you want to get better performance, you can do some tuning as following. This is just an option, not a must:
+
==== Cenário 3 - Para o impaciente ====
          o If you are using Gnome as the desktop environment, for example, Fedora Core 6, you can delete some language files in /etc/gconf/gconf.xml.defaults/ if you are sure they are useless to you (For Ubuntu 6.10, those files are in directory /var/lib/gconf/defaults/). This will save a lot of disk space in the server (For example, if you just keep %gconf-tree.xml and %gconf-tree-zh_TW.xml, then 40 MB space will be released. Say, if you have 40 clients, then you will save 1.6 GB disk space in this server), and the loading of NFS server will be lower. In Debian or Ubuntu, you can also install localepurge, then run "localepurge" to remove those unnecessary locale files.
+
Rode
          o If reiserfs filesystem is available in your GNU/Linux distribution, it is recommended for its better performance compared with ext2/ext3. You can refer to this benchmark.
+
/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).
  
      After Linux is installed on the server, make sure the hard disk drive DMA mode is on. It will accelerate the access speed of the server's hard disk drive. Use "hdparm /dev/hdx" to check to see if the DMA mode is on or off. If it is off, run "hdparm -d1 -c3 -k1 /dev/hdx" to turn it on. Replace the /dev/hdx to the /dev/hda if your IDE HD for this Linux system is in "Primary IDE."
+
==III. Configure o sistema de arquivos para o cliente no Servidor==
    *
 
  
      Note:Regarding Selinux in Fedora Core 3 or later version - Unless you are an administrator who thoroughly understands SELinux, we recommend you turn SELinux off, otherwise you will probably encounter some unusual problems such as "Permission denied." To disable SELinux, set SELINUX=disabled in /etc/sysconfig/selinux or /etc/selinux/config and then reboot your machine.
+
* 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]                                                 
 +
+------------------------------+
  
    * If you have only one NIC, you may set two IP addresses, i.e. one in eth0 and another alias IP address in eth0:1. eth0 will be used for the DRBL server to connect to the public Internet while eth0:1 will be used for the DRBL environment. Here's how to setup eth0:1 in RedHat-like Linux. NOTE! This alias IP address will cause some problems if you do not provide static IP address to DRBL client via its MAC address. In this example, the DRBL server will lease IP address to any machine connected to eth0 if no MAC address is set in the DHCP service. Hence you'd better not to use alias IP if you do not know exactly what you are doing! Two or more NICs are recommended!
+
* 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.
  
==II. Setup the clients==
+
:; 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.
Note: This process is done in the server but its purpose is for use by the clients. NOTE! You have to finish the step 1 before doing the step 2 here.
 
  
    * Before downloading or installing, read the "Change log" for different branches: stable, testing, unstable. Also refer to "Known issues" for different branches. This is especially important when your client machine has an annoying SIS network interface card:stable, testing, unstable. Besides, please also refer to "Release Notes" for different branches:stable, testing, unstable.
+
* 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.
  
* <Step 2a> According different distribution, we have different method to get and install program "drbl"
+
=== Passo 3 ===
**  RedHat/Fedora Core/Mandriva (Mandrake)/CentOS
+
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
***  Install the DRBL key (ID: 1024D/D7E8DF3A, Key fingerprint = F532 A131 65AF 2168 1634 DB1B 4000 9511 D7E8 DF3A) to your rpm system. There are two ways to do this. First one: "rm -f GPG-KEY-DRBL; wget http://drbl.org/GPG-KEY-DRBL; rpm --import GPG-KEY-DRBL" or "rm -f GPG-KEY-DRBL; wget http://drbl.nchc.org.tw/GPG-KEY-DRBL; rpm --import GPG-KEY-DRBL". Second one: Download the key from key server. The KeyID for DRBL is D7E8DF3A, you can do it by "gpg --keyserver subkeys.pgp.net --recv-key D7E8DF3A", then run "gpg -a --export D7E8DF3A > GPG-KEY-DRBL; rpm --import GPG-KEY-DRBL" to add it to your rpm system.
+
  /usr/sbin/drblpush -i
*** Download the DRBL RPM file (file name e.g. drbl-1.9.6-35.i386.rpm)
 
                  Stable branch: sourceforge site or NCHC site
 
                  Testing branch: NCHC site
 
                  Unstable branch: NCHC site
 
*** If you do not login as a system administrator (root), execute the command "su - root", then enter root password to sign in at the root
 
***  Execute "rpm -Uvh drbl-XXX.i386.rpm" or "yum install drbl-XXX.i386.rpm" (If your GNU/Linux supports yum) to install package DRBL, the "drbl-XXX.i386.rpm" is the program name you just downloaded. If you just download the drbl rpm in the stable branch, then execute "rpm -Uvh drbl-current.i386.rpm" or "yum install drbl-current.i386.rpm".
 
***  Note: A perl module is necessary for drbl rpm. Most of the distribution will install package "perl-Digest-SHA1" by default, if rpm complains perl-Digest-SHA1 is necessary, install it manually. As an example, in Fedora 8, you can install it by "rpm -Uvh http://opensource.nchc.org.tw/fedora/linux/releases/8/Fedora/i386/os/Packages/perl-Digest-SHA1-2.11-4.fc8.i386.rpm" or by "yum install perl-Digest-SHA1" if you have already configured your yum config.
 
**  PS. There are two DRBL-core mirror sites: (1) http://ftp.twaren.net/local-distfiles/drbl-core/ (2) http://free.nchc.org.tw/drbl-core
 
  
* <Step 2b>
 
**  Scenario 1: If your network bandwidth to Internet is good, and your GNU/Linux distribution provides apt, urpmi or yum repository: Execute "/opt/drbl/sbin/drblsrv -i".  Note: There is a space before the "-i". This is the example execution. If you are uncertain, just press Enter to accept the default value.
 
**  Scenario 2: If you can not access Internet, the network bandwidth is narrow, you do not want drblsrv to install the required packages for you, or your GNU/Linux distribution does NOT provides apt, urpmi or yum repository (such as RHEL): You can install the required packages by yourself (such as by apt-get, up2date, yum, yast or urpmi), then use "/opt/drbl/sbin/drblsrv-offline" to finish this step <2b>. (drblsrv-offline is available from drbl version 1.7.6-22). Those required packages can be listed by "/opt/drbl/sbin/drblsrv-offline -r". After you install those required packages, if you are sure the kernel in the server meets the client's CPU arch, you can run "/opt/drbl/sbin/drblsrv-offline -s `uname -r`", or you can download appropriate kernel rpm/deb file, which meets the client's CPU arch. Then run "/opt/drbl/sbin/drblsrv-offline -k $KERNEL_PKG" (Replace $KERNEL_PKG with the downloaded kernel rpm or deb file name with path). If you are uncertain, just press Enter to accept the default value when you run drblsrv-offline. (PS 1. More options for drblsrv-offline can be shown by "/opt/drbl/sbin/drblsrv-offline --help". PS 2. To install DRBL in Scientific Linux 5.0, you can refer to this FAQ)
 
  
* For the impatient: If you are impatient, your network bandwidth to Internet is good, and your GNU/Linux distribution provides apt, urpmi or yum repository, you can run "/opt/drbl/sbin/drbl4imp" to finish step "2b" and "3a". "drbl4imp" uses the default values to setup the DRBL server. THIS IS VERY IMPORTANT! The default value might not fit your environment! It uses the "range" option in dhcp server so your DRBL client will not always get the same IP address. It also assumes each of the server's network card (except eth0) provides DRBL services to 12 clients. If you want the setup to fit your environment, please run steps "2b" and "3a" step-by-step.
+
* 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.
  
==III. Set up the file system for the client in the Server==
+
* 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.
  
* Arrange your environment and make sure you know it.
+
==IV. Configurando os clientes para usar o DRBL==
* Taking NCHC's computer class room C as an example: There are 40 computers. In order to get DRBL to work more efficiently, we separated them to 4 subnets: 192.168.100.0, 192.168.101.0, 192.168.102.0 and 192.168.103.0. There are four Ethernet cards in DRBL server. One is for WAN and the others are for LAN. The IPs of DRBL environment (LAN) are 192.168.100.254, 192.168.101.254, 192.168.102.254 and 192.168.3.254. The services DHCP, TFTP, NFS, etc will run on eth0:1, eth1, eth2, and eth3.
+
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).
  
              NIC    NIC IP                    Clients
+
=== O cliente possui placa rede PXE ===
      +-----------------------------+
+
* Edite o BIOS do cliente para dar o boot da "LAN" ou "network".
      |        DRBL SERVER        |
+
* anotado na sala.
      |                            |
 
      |+-- [eth0] public IP        +- to WAN
 
      |    (ex. 61.216.116.23)    |
 
      |                            |
 
      |+-- [eth0:1] 192.168.100.254 +- to clients group 1 [ 10 clients, their IP
 
      |                            |            from 192.168.100.1 - 192.168.100.10]
 
      |+-- [eth1] 192.168.101.254  +- to clients group 1 [ 10 clients, their IP
 
      |                            |            from 192.168.101.1 - 192.168.101.10]
 
      |+-- [eth2] 192.168.102.254  +- to clients group 2 [ 10 clients, their IP
 
      |                            |            from 192.168.102.1 - 192.168.102.10]
 
      |+-- [eth3] 192.168.103.254  +- to clients group 3 [ 10 clients, their IP
 
      |                            |            from 192.168.103.1 - 192.168.103.10]
 
      +-----------------------------+
 
  
    * There are four modes available from DRBL version 1.6.3 or later: Full DRBL, Full Clonezilla, DRBL SSI (Single System Image) and Clonezilla Box. The network bandwidth and disk space requirement are higher in the former two modes, but all the system setting will be saved to server's disk, and every client can have its own individual setting. On the other hand, the DRBL SSI uses single system image for all clients, and the necessary individual settings of clients are created run-time when they boot. This will reduce the required disk space in the server since only one image is necessary. However, the disadvantage is every client can NOT have its own individual system setting (Users' setting will be saved to server). In DRBL SSI mode, once there are extra client nodes want to join DRBL environment, all you have to do is modify the dhcpd config file (dhcpd.conf), then use "/opt/drbl/sbin/dcs -> others -> gen_3N_conf" to create or run "/opt/drbl/sbin/drbl-3n-conf generate", the necessary files will be created. In this mode, theoretically one network card in the server can provide 253 clients. The fourth mode, Clonezilla box mode, is based on DRBL SSI mode, especially for clone system. If you want to use DRBL SSI mode, make sure your client has large memory (say > 512 MB), and all the hardware (especially the graphic card) in the clients are the same. Check this comparison table for these four modes.
+
Pronto! Basta reinicializar a máquina.
  
    * Notes for network switch and NICs when using multiple NICs:
+
==V. Uso adicional do ambiente DRBL==
  
      When you use multiple NICs to expand the bandwidth, we recommend you set the MAC addresses so that every node will get the same IP address all the time. (i.e. in the following step 3a, when you run "/opt/drbl/sbin/drblpush -i", it prompts "Do you want to fix the IP address of client connected to eth1 by giving MAC address ? [y/N]", choose "Y"). If you do NOT set MAC address (we will call it "range" from now), and you have only one 48-port network switch (or many switches but connected to be one), and you use four NICs (or more than two...) in DRBL server to expand the network bandwidth, a problem will occur (i.e. some clients will not lease IP from DHCP server) so it will not be able to boot.
+
* 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.
      On the other hand, if your DRBL server uses four NICs to expand the network bandwidth (meaning that four NICs with four private subnets such as 192.168.100.x, 192.168,101,x, 192.168.102.x, 192.168.103.x), and you have exactly four switches that are separated and not connected to each other, then you can use range (i.e. you do not have to set the MAC address of clients).
+
* O comando mais útil é /opt/drbl/sbin/dcs que seta o modo de boot padrão dos clientes.
      Remember, if you use N NICs to expand network bandwidth in the DRBL server, if using the "range" method, then you must have N switches and they can NOT be connected to each other.
+
* 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.
    * Before executing step <3a>, you can do some customized config:
 
        1. If you have some specific directories in this DRBL server to share, such as /work1, then you can use text editor to open file /opt/drbl/conf/drbl.conf, edit the diskless_root_dir_ro_user_add="/work1"(If you want /work1 can only be read by clients, not writable), or diskless_root_dir_rw_user_add="/work1"(If you want /work1 to be readable and writable by clients. (Warning!!! drbl.conf is VERY IMPORTANT, be careful when you edit it!!!)
 
        2. If all the clients have their local harddisk, and the partition is formated (For example, /dev/hda1, its filesystem is ext3), then if you want the client to mount /dev/hda1 as /localwork when booting. Therefore you can edit /opt/drbl/conf/client-append-fstab, and its syntax is just like /etc/fstab. In this example, you can make /opt/drbl/conf/client-append-fstab like this:
 
            /dev/hda1 /localwork ext3 defaults 0 0
 
            (PS: You do not have to create the directory /tftpboot/node_root/localwork in DRBL server manually, later drblpush will do that for you)
 
        3. If you have extra services (such as apmd and bluetooth) to be on when client boots, you can edit /opt/drbl/conf/client-extra-service, let service_extra_added="apmd bluetooth".
 
        4. If you want to overwrite some or all automatically created hostnames later by "drblpush -i", you can edit "/opt/drbl/conf/client-ip-hostname" now. Check that file for the format. If some machines are not assigned, drblpush will use those automatically created hostname.  
 
  
    * <Step 3a> run "/opt/drbl/sbin/drblpush -i". The software will auto-detect the system to figure out the argument. If the argument is not set up in the system, the system will request you to do that. Example: see here.
+
=Upgrade=
 
 
    * Note!!! If newer packages are installed in the server after this step, you have to run "/opt/drbl/sbin/drblpush -i" or "/opt/drbl/sbin/drblpush -c /etc/drbl/drblpush.conf" (This will loaded the previously saved settings) again so that newer packages will be deployed to clients.
 
    * Note!!! It is not recommended to turn on the system update automatically. Since If newer packages are installed in the server automatically, without running "/opt/drbl/sbin/drblpush -i", the programs for client might not be compatible with that newer in server. If you want to turn on system update automatically, remember to follow the above step to update the files in client automatically.
 
 
 
 
 
==IV. Setting up clients to use the DRBL environment==
 
 
 
          o There are four different scenarios where you can make clients boot from network: 1) the client has PXE network interface card, 2) the client has a floppy drive, 3) the client has a CDROM, 4) the client has a local hard drive. We use etherboot 5.4.3 as an example for cases 2-4. NOTE! With DRBL version 1.3.9 or later, if you want to use Etherboot, Etherboot bersion 5.4.0 or newer is required.
 
 
 
          o Case 1: The client has a PXE network interface card
 
                + Set the client's BIOS to boot from "LAN" or "network".
 
                + Take one of the Asus motherboards for example, in this manual file.
 
                    1. Page 4-24, you will see OnBoard LAN, there is a subfuncton "OnBoard LAN BOOT ROM", normally it's disabled, you have to enable it.
 
                    2. Usually you have to reboot it now, make the function re-read by BIOS.
 
                    3. After rebooting, enter BIOS setting again, this time, in Page 4-35, you have to make LAN boot as the 1st boot device.
 
                + That's it. Let client boot and enjoy DRBL!!!
 
 
 
          o Case 2: The client has a floppy drive.
 
                + <Step 4a> Get the image file first.
 
                      # Use the "universal" image /opt/drbl-etherboot/etherboot-net.zdsk in the DRBL server. It supports most modern network cards. (Ref: here. If this universal image fails, try using specific image for client's network card, the image file is located in /opt/drbl-etherboot/. As an example, if you have a Realtek 8139 network card, use the image /opt/drbl-etherboot/rtl8139.zdsk.
 
                + <Step 4b> Insert the floppy to floppy drive in DRBL server
 
                      # Run "cat /opt/drbl-etherboot/etherboot-net.zdsk > /dev/fd0" in the DRBL server.
 
                      # If you want to create the image floppy in M$ windows, download rawrite.exe or "RawWrite for windows" (http://uranus.it.swin.edu.au/~jn/linux/) to write the ROM image to floppy.
 
                + <Step 4c> Put this floppy to client's floppy drive, make sure the floppy is the first boot device in the client's BIOS. If everything was done correctly, after a few minutes, the clients will be waiting for you to login, All the accounts are same as the ones in server.
 
 
 
          o Case 3: Client has a CDROM (Reference):
 
                + 1) The "universal" image is located in /opt/drbl-etherboot/etherboot-net.iso
 
                  2) Burn the ISO to a CD:
 
                  cdrecord -v speed=12 fs=16m dev=0,0,0 -data etherboot-net.iso
 
                  (If necessary, modify "dev=0,0,0", run "cdrecord -scanbus" to get your CD burner.)
 
                  3) Ensure the PC is set to boot from CDROM, place the burned CD in the drive, and reboot. Done!
 
 
 
          o Case 4: client has a local hard drive
 
                + If the client has a local hard drive which is installed with the bootloader grub in GNU/Linux:
 
                  1. Copy the file "/opt/drbl-etherboot/etherboot-net.zlilo" to client's directory "/boot/" in its harddisk
 
                  2. Append one block in the client's /boot/grub/menu.lst or /boot/grub/grub.conf (depends on your distribution) like this:
 
                  ---------------
 
                  title Etherboot-PXE
 
                  kernel /boot/etherboot-net.zlilo
 
                  ---------------
 
                  3. Change the default boot to the corresponding one above, like "default 1", in menu.lst or grub.conf in client.
 
                + If the client is running M$ Windows XP/2K on its hard disk:
 
                  You can install WINGRUB. Put the file etherboot-net.zlilo in C:\, and the files: C:\boot.ini and C:\GRUB\MENU.LST look like: (This method is only suitable for installing wingrub in BOOT.INI (Tool -> Install grub -> Boot from BOOT.INI). If necessary, you can use other modes provides by WinGRUB):
 
                  boot.ini:
 
                  ---------------
 
                  [boot loader]
 
                  timeout=30
 
                  default=C:\GRLDR
 
                  [operating systems]
 
                  multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional" /fastdetect
 
                  C:\GRLDR="Etherboot"
 
                  ---------------
 
                  MENU.LST:
 
                  ---------------
 
                  timeout 7
 
 
 
                  title etherboot
 
                  root (hd0,0)
 
                  kernel /etherboot-net.zlilo
 
 
 
                  title Windows at (hd0,0)
 
                  root (hd0,0)
 
                  chainloader +1
 
                  ---------------
 
                + If the client has local hard drive which is installed with M$ Windows 9x:
 
                  1. Copy the file "/opt/drbl-etherboot/etherboot-net.com" to client's hard disk
 
                  2. Rename it so that it is shorter in client, for example, "eb-net.com".
 
                  3. Write a multi-boot config file in the client (e.g. add one paragraph to run "eb-net.com").
 
 
 
 
 
==V. Additional usage for the DRBL environment==
 
 
 
          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
 
 
 
          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.
 
 
 
=6. Upgrade=
 
  
 
Para upgrade para uma versão mais nova:
 
Para upgrade para uma versão mais nova:
Linha 189: 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 195: 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