Appunti per l'installazione di Debian Lenny DiskLess

Lo scopo e' di avere delle macchine diskless con la /home e la /usr montate via NFS, mentre il resto e' montato dall'InitRamFS al boot, quindi in RAM.

dhcp server

  option root-path "/var/tftproot_64/";
  # trick from Peter Rundle <peter.rundle@au.interpath.net>
  if substring (option vendor-class-identifier, 0, 9) = "PXEClient"
   {
    filename      "pxelinux.0";
    next-server 192.168.2.8; # Server con il tftpd
    # NOTE: kernels are specified in boot/pxelinux.cfg/
   }
  else
   {
    filename    "vmlinuz.nb";
   }

tftp server

(nb: se usi pxe allora il demone dev'essere tftpd.hpa - netbsd)

XDM server

Supponedo di installare solo un xdm server senza grafica locale.

Creazione dell'immagine del Sistema Operativo delle macchine diskless

nb: Per macchine di cacolo si intende una macchina con accesso utenti e /home, tipicamente un client MPI.

  1. debootstrap in una directory
    • vedi il man di debootstrap che continene l'esempio completo per la creazione di una macchina. Ovvio che la macchina deve avere poco o niente, vedi sotto.

      nb: Fai l'operaizione su un server non operativo, almeno nella parte del mount /proc, senno rischi di rimanere con alcuni demoni lanciati dentro la macchina chroot attivi e devi fare re-boot (nfs-common)

     mkdir lenny-i386
     debootstrap --arch=i386 lenny lenny-i386/ http://ftp.it.debian.org/debian/
  2. etc/apt/sources.list
     deb http://ftp.it.debian.org/debian lenny main
  3. etc/apt/apt.conf.d/proxy-guess # solo se avete proxy http nella rete.
     Acquire::http::Proxy "http://proxy-cache:3128/";
  4. etc/network/interfaces # usa auto e non hot-plug
    # Used by ifup(8) and ifdown(8). See the interfaces(5) manpage or
    # /usr/share/doc/ifupdown/examples for more information.
    
    # The loopback network interface
    auto lo
    iface lo inet loopback
    
    # The primary network interface
    auto eth0
    iface eth0 inet dhcp
  5. etc/hosts (nfs1.mynet solo per le macchine di calcolo, opzionale per le altre)
     127.0.0.1      localhost
     192.168.2.7    rootfs.mynet    rootfs # ip della macchina che ha il root filesystem
     192.168.2.7    nfs1.mynet      nfs1 # eventuale ip della macchine che ospita la /home
    
     # The following lines are desirable for IPv6 capable hosts
     ::1     ip6-localhost ip6-loopback
     fe00::0 ip6-localnet
     ff00::0 ip6-mcastprefix
     ff02::1 ip6-allnodes
     ff02::2 ip6-allrouters
     ff02::3 ip6-allhosts
  6. etc/hostname # Diventa uguale per tutte le macchine.
    Debian
  7. etc/fstab (nfs1 NON deve essere messo nei client grafici)
    # UNCONFIGURED FSTAB FOR BASE SYSTEM
    none /proc proc none 0 0
    tmpfs /tmp tmpfs rw 0 0
    tmpfs / tmpfs rw 0 0
    rootfs:/var/lib/tftpboot/lenny-i386/usr /usr    nfs     ro      0       0
    
    # Solo per macchine di calcolo che richiedono la presenza della /home
    nfs1:/home                      /home           nfs     rw      0       0
  8. ./init (Impedisci che il kernel sganci il ramFS dopo il boot)
    echo "Loading, please wait..."
    exec /sbin/init </dev/console >/dev/console
  9. chmod +x ./init
  10. passwd root
  11. syslog su log remoto/console? file: etc/syslog.conf
      *.* @log
  12. svuota la home (dovrebbe essere gia vuota)
  13. da aptitude in chroot devi installare nfs-common, xorg, xbase-clients.
  14. etc/X11/xorg.conf # la tastiera italiana
    [...]
    Section "InputDevice"
            Identifier      "Generic Keyboard"
            Driver          "kbd"
            Option          "XkbRules"      "xorg"
            Option          "XkbModel"      "pc104"
            Option          "XkbLayout"     "it"
    EndSection
    [...]
  15. Puoi mettere in italiano anche la tastiera della console, ma non e' necessario. # scrivi come...
  16. etc/inittab # L'ultima riga SOLO per i client grafici, le macchine per calcolo non la devono avere.
    [...]
    # What to do when CTRL-ALT-DEL is pressed.
    ca:12345:ctrlaltdel:/sbin/shutdown -t1 -a -h now
    
    [...]
    x:2:respawn:/usr/bin/X -query xdm.mynet
  17. Nella macchina chroot installa anche il kernel che vuoi usare, evitando pero' il boot manager.
  18. Aggiungi la parte Aggiunta per client di calcolo SOLO per le macchine per il calcolo.

  19. Crea il file initramfs
    cd "lenny-i386/" && find . ! -path "./usr/*" ! -path "./var/lib/a*" ! -path "./var/lib/dpkg/*" ! -path "./var/cache/apt/*" ! -path "./boot/*"| cpio --quiet -o -H newc | gzip -9 >"/var/lib/tftpboot/initrd.cpio.lenny-i386.gz"
  20. File di configurazione di pxe. # L'installazione di pxe non viene descritta.
    prompt=0
    label linux
    
     kernel vmlinuz-lenny-i386
     append initrd=initrd-lenny-i386.gz rw

Aggiunta delle macchine diskless di calcolo

UPDATE delle macchine RAM

?? rm dei file nella var/log var/run ??


CategoryHowTo

TecnoBrain: DiskLessHowTo (last edited 2008-11-11 12:49:14 by EnricoRossi)

© Tecno Brain di Rossi Enrico, via G. Marcovigi 2 - 40133 Bologna (Italy) - P.IVA: 04275850370
This work is licensed under a Creative Commons Attribution-Noncommercial-Share Al ike 2.5 Italy License.